[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Procps in core-updates
From: |
Andreas Enge |
Subject: |
Procps in core-updates |
Date: |
Sat, 18 Mar 2023 13:32:59 +0100 |
Hello,
procps fails its tests on core-updates when built with --system=i686-linux
(it succeeds on x86_64).
The error is completely not understandable (and Debian has disabled the test).
I modified the test file as attached; my changes are to compute the value val
separately before the "if" (interestingly enough, the variable declaration
"double val;" was already there), and I added the fprintf at the beginnings
of the lines.
The test then fails and prints
CMP 1
CMP 0
DIF 0.000000
FAIL: strtod_nol_or_err("123") != 123.000000
So val != tests[i].result when the "if" is executed,
this is still the case for the first fprintf,
and then changes for the second fprintf.
Has anyone got any explanation for this behaviour? A compiler error?
Here:
https://www.freelists.org/post/procps/strtod-nol-or-err-on-32bit-Was-procps-3312-released,2
the conclusion is
"Ive got a pending patch to just remove it. Floating point math sucks when
it comes to equality."
but this is not even floating point maths - whatever the contents of val
and tests[i].result, they should not be changed by a comparison (or an
fprintf; I can also make the test work just by adding some printf into
the strtod_nol_or_err function that is exercised by this test).
Andreas
test_strtod_nol.c
Description: Text document