1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

tests: Do not fetch and print the random seed from the top level.

* guix/tests.scm (%seed): Turn into a memoizing procedure.
(random-text, random-bytevector): Adjust accordingly.
This commit is contained in:
Ludovic Courtès
2020-10-20 15:57:35 +02:00
parent f59ec1de94
commit ccf3dcba3d

View File

@@ -160,15 +160,17 @@ too expensive to build entirely in the test store."
number->string)
(logxor (getpid) (car (gettimeofday)))))
(define %seed
(define (%seed)
(let ((seed (random-seed)))
(format (current-error-port) "random seed for tests: ~a~%"
seed)
(seed->random-state seed)))
(let ((result (seed->random-state seed)))
(set! %seed (lambda () result))
result)))
(define (random-text)
"Return the hexadecimal representation of a random number."
(number->string (random (expt 2 256) %seed) 16))
(number->string (random (expt 2 256) (%seed)) 16))
(define (random-bytevector n)
"Return a random bytevector of N bytes."
@@ -176,7 +178,7 @@ too expensive to build entirely in the test store."
(let loop ((i 0))
(if (< i n)
(begin
(bytevector-u8-set! bv i (random 256 %seed))
(bytevector-u8-set! bv i (random 256 (%seed)))
(loop (1+ i)))
bv))))