* gnu/packages/patches/procps-strtod-test.patch: New file. * gnu/packages/linux.scm (procps): Add patch. * gnu/local.mk (dist_patch_DATA): Register patch.
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| See https://gitlab.com/procps-ng/procps/-/issues/271
 | |
| 
 | |
| diff -u -r procps-ng-4.0.3.alt/src/tests/test_strtod_nol.c procps-ng-4.0.3/src/tests/test_strtod_nol.c
 | |
| --- procps-ng-4.0.3.alt/src/tests/test_strtod_nol.c	2022-12-18 23:44:18.383960834 +0100
 | |
| +++ procps-ng-4.0.3/src/tests/test_strtod_nol.c	2023-03-20 16:52:26.680032658 +0100
 | |
| @@ -1,6 +1,7 @@
 | |
|  
 | |
|  #include <stdio.h>
 | |
|  #include <stdlib.h>
 | |
| +#include <math.h>
 | |
|  #include "strutils.h"
 | |
|  
 | |
|  struct strtod_tests {
 | |
| @@ -25,6 +26,11 @@
 | |
|      {NULL, 0.0}
 | |
|  };
 | |
|  
 | |
| +#define EPSILON 1.0  // Really not trying for precision here
 | |
| +int dequal(const double d1, const double d2)
 | |
| +{
 | |
| +    return fabs(d1-d2) < EPSILON;
 | |
| +}
 | |
|  
 | |
|  
 | |
|  int main(int argc, char *argv[])
 | |
| @@ -33,8 +39,8 @@
 | |
|      double val;
 | |
|  
 | |
|      for(i=0; tests[i].string != NULL; i++) {
 | |
| -        if(strtod_nol_or_err(tests[i].string, "Cannot parse number") !=
 | |
| -           tests[i].result) {
 | |
| +        if(!dequal (strtod_nol_or_err(tests[i].string, "Cannot parse number"),
 | |
| +                    tests[i].result)) {
 | |
|              fprintf(stderr, "FAIL: strtod_nol_or_err(\"%s\") != %f\n",
 | |
|                      tests[i].string, tests[i].result);
 | |
|              return EXIT_FAILURE;
 |