mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-25 05:48:07 -05:00
098bd280f8
* 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;
|