libcheck / check

A unit testing framework for C
GNU Lesser General Public License v2.1
1.07k stars 209 forks source link

PowerPC test suite failures #322

Closed cgzones closed 3 years ago

cgzones commented 3 years ago

On PowerPC architectures (ppc, ppc64el, powerp) 'long double' has a precision of 106-bit, compared to 80-bit precision on amd64.

This leads to the test_ckassert(float|double|ldouble)_eq_tol succeed rather than fail as expected, cause 0.003-0.002 will be actually slightly bigger than 0.001 and not slightly smaller.

Increase the change to the tolerance, so it will be on all architectures smaller than the difference of ~0.001 and the unit tests will fail as expected.

brarcher commented 3 years ago

I appreciate your identifying this issue and sending a patch our way.

I'm hesitant, as none of the platforms used for automated testing are PowerPC, so it is possible that this could be silently broken again in the future. The testing issue will be resolved for today, at least.