diff options
Diffstat (limited to '')
-rw-r--r-- | module/hnh/util/uuid.scm | 14 | ||||
-rw-r--r-- | tests/test/uuid.scm | 5 |
2 files changed, 9 insertions, 10 deletions
diff --git a/module/hnh/util/uuid.scm b/module/hnh/util/uuid.scm index 68455243..8e0434e3 100644 --- a/module/hnh/util/uuid.scm +++ b/module/hnh/util/uuid.scm @@ -1,19 +1,19 @@ (define-module (hnh util uuid) :use-module (ice-9 format) - :export (uuid uuid-v4)) + :export (seed uuid uuid-v4)) -(define %seed (random-state-from-platform)) +(define seed (make-parameter (random-state-from-platform))) (define (uuid-v4) (define version 4) (define variant #b10) (format #f "~8'0x-~4'0x-~4'0x-~4'0x-~12'0x" - (random (ash 1 (* 4 8)) %seed) - (random (ash 1 (* 4 4)) %seed) + (random (ash 1 (* 4 8)) (seed)) + (random (ash 1 (* 4 4)) (seed)) (logior (ash version (* 4 3)) - (random (1- (ash 1 (* 4 3))) %seed)) + (random (1- (ash 1 (* 4 3))) (seed))) (logior (ash variant (+ 2 (* 4 3))) - (random (ash 1 (+ 2 (* 4 3))) %seed)) - (random (ash 1 (* 4 12)) %seed))) + (random (ash 1 (+ 2 (* 4 3))) (seed))) + (random (ash 1 (* 4 12)) (seed)))) (define uuid uuid-v4) diff --git a/tests/test/uuid.scm b/tests/test/uuid.scm index 6a2bd92a..1cedb59e 100644 --- a/tests/test/uuid.scm +++ b/tests/test/uuid.scm @@ -4,9 +4,8 @@ :use-module (srfi srfi-88) :use-module (hnh util uuid)) -(set! (@@ (hnh util uuid) %seed) - (seed->random-state 0)) (test-equal "UUIDv4 fixed seed" "d19c9347-9a85-4432-a876-5fb9c0d24d2b" - (uuid-v4)) + (parameterize ((seed (seed->random-state 0))) + (uuid-v4))) |