From bc9aa60bd574f44b0a75363d59c43a23cda6bdb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Nov 2018 19:02:18 +0100 Subject: [PATCH] gnu: nss: Make tests deterministic. Tests would fail once certificates had expired, along these lines: chains.sh: Verifying certificate(s) PayPalEE.cert with flags -d AllDB -pp -o OID.2.16.840.1.114412.1.1 vfychain -d AllDB -pp -vv -o OID.2.16.840.1.114412.1.1 /tmp/guix-build-nss-3.39.drv-0/nss-3.39/nss/tests/libpkix/certs/PayPalEE.cert Chain is bad! PROBLEM WITH THE CERT CHAIN: CERT 0. PayPalEE : ERROR -8181: Peer's Certificate has expired. Returned value is 1, expected result is pass Using 'faketime' allows us to get deterministic results. * gnu/packages/gnuzilla.scm (nss)[arguments]: In 'check' phase, run 'all.sh' under 'faketime'. [native-inputs]: Add LIBFAKETIME. --- gnu/packages/gnuzilla.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index e1abe8c2cd..d6b1f4c2d6 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -39,6 +39,7 @@ (define-module (gnu packages gnuzilla) #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages check) #:use-module (gnu packages databases) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) @@ -417,7 +418,12 @@ (define-public nss (setenv "DOMSUF" "(none)") (setenv "USE_IP" "TRUE") (setenv "IP_ADDRESS" "127.0.0.1") - (invoke "./nss/tests/all.sh"))) + + ;; The "PayPalEE.cert" certificate expires every six months, + ;; leading to test failures: + ;; . To + ;; work around that, set the time to roughly the release date. + (invoke "faketime" "2018-09-01" "./nss/tests/all.sh"))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -453,7 +459,8 @@ (define-public nss `(("sqlite" ,sqlite) ("zlib" ,zlib))) (propagated-inputs `(("nspr" ,nspr))) ; required by nss.pc. - (native-inputs `(("perl" ,perl))) + (native-inputs `(("perl" ,perl) + ("libfaketime" ,libfaketime))) ;for tests ;; The NSS test suite takes around 48 hours on Loongson 3A (MIPS) when ;; another build is happening concurrently on the same machine.