guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: guix-commits
Subject: 08/11: tests: Do not fetch and print the random seed from the top level.
Date: Tue, 20 Oct 2020 10:32:10 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit ccf3dcba3dbddd4fd8daf0b5641ba997de12647a
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Tue Oct 20 15:57:35 2020 +0200

    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.
---
 guix/tests.scm | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/guix/tests.scm b/guix/tests.scm
index 3ccf049..fc3d521 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))))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]