aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix/tests.scm10
1 files changed, 6 insertions, 4 deletions
diff --git a/guix/tests.scm b/guix/tests.scm
index 3ccf049a7d..fc3d521163 100644
--- a/guix/tests.scm
+++ b/guix/tests.scm
@@ -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))))