Chris Marusich <cmmarus...@gmail.com> writes: > [...] I've reported this issue upstream: > https://github.com/libcheck/check/issues/333
Branden Archer replied in the above issue. In short, the unreleased upstream commit 4fbe702fa4f35bee8a90512f9f59d1441c4ae82e fixes this issue on PPC platforms. Here's what the commit does: https://github.com/libcheck/check/commit/4fbe702fa4f35bee8a90512f9f59d1441c4ae82e.patch Adjust test suite for 106-bit long double precision 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_ck_assert_(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. This commit was merged to the check repository's master branch after its latest release (0.15.2). It will be included in the next check release, but until then, we will have to apply the fix as a patch to our check package. I've attached a patch that does this. -- Chris
From 7692295f970a292a3f3db31fc21d05efd97dcb25 Mon Sep 17 00:00:00 2001 From: Chris Marusich <cmmarus...@gmail.com> Date: Thu, 3 Jun 2021 23:12:24 -0700 Subject: [PATCH] gnu: check: Fix failing tests on powerpc64le-linux. * gnu/packages/check.scm (check)[source]: Apply unreleased upstream commit 4fbe702 as a patch. --- gnu/packages/check.scm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 6641a0de58..069d4e05fc 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -146,7 +146,27 @@ like Jasmine or Mocha.") version "/check-" version ".tar.gz")) (sha256 (base32 - "02m25y9m46pb6n46s51av62kpd936lkfv3b13kfpckgvmh5lxpm8")))) + "02m25y9m46pb6n46s51av62kpd936lkfv3b13kfpckgvmh5lxpm8")) + (patches + (list + ;; This patch fixes some tests that would otherwise fail on + ;; powerpc64le-linux. Without this patch, the tests make certain + ;; assumptions about floating point number precision that are not true + ;; on that platform. + ;; + ;; TODO: Remove this patch when updating to the next check release, + ;; since it will be included there. See: + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=47698 + (origin + (method url-fetch) + (uri + (string-append "https://github.com/libcheck/check/commit/" + "4fbe702fa4f35bee8a90512f9f59d1441c4ae82e.patch")) + (file-name (string-append name + "-fix-test-precision-for-ppc.patch")) + (sha256 + (base32 + "04qg1p9afdd6453k18qskazrvscysdcjz9j6w4i6p5x4xyma19v6"))))))) (build-system gnu-build-system) (home-page "https://libcheck.github.io/check/") (synopsis "Unit test framework for C") -- 2.30.2
signature.asc
Description: PGP signature