Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit cf947ed

Browse files
committed
tests: Add sleep order testing
1 parent 8b8b915 commit cf947ed

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

tests/basic.scm

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
;;;;
1919

2020
(define-module (tests basic)
21-
#:use-module (fibers))
21+
#:use-module (fibers)
22+
#:use-module (srfi srfi-1))
2223

2324
(define failed? #f)
2425

@@ -96,6 +97,29 @@
9697

9798
;; sleep wakeup order
9899

100+
(define sleep-list-mtx (make-mutex 'unchecked-unlock 'allow-external-unlock ))
101+
102+
(define sleep-list '())
103+
(define (add-order n)
104+
(lock-mutex sleep-list-mtx)
105+
(set! sleep-list (cons n sleep-list))
106+
(unlock-mutex sleep-list-mtx))
107+
108+
(assert-run-fibers-terminates
109+
(begin
110+
(spawn-fiber (lambda () (sleep 0.0) (add-order 0)))
111+
(spawn-fiber (lambda () (sleep 0.0009) (add-order 9)))
112+
(spawn-fiber (lambda () (sleep 0.0007) (add-order 7)))
113+
(spawn-fiber (lambda () (sleep 0.0005) (add-order 5)))
114+
(spawn-fiber (lambda () (sleep 0.0003) (add-order 3)))
115+
(spawn-fiber (lambda () (sleep 0.0001) (add-order 1)))
116+
(spawn-fiber (lambda () (sleep 0.0002) (add-order 2)))
117+
(spawn-fiber (lambda () (sleep 0.0004) (add-order 4)))
118+
(spawn-fiber (lambda () (sleep 0.0006) (add-order 6)))
119+
(spawn-fiber (lambda () (sleep 0.0008) (add-order 8)))))
120+
121+
(assert-equal (iota 10 0) (reverse sleep-list))
122+
99123
;; fib using channels
100124

101125
;; sleep durations

0 commit comments

Comments
 (0)