cyclone/tests/test-shared-queue.scm
2019-07-02 13:27:00 -04:00

44 lines
1.3 KiB
Scheme

(import
(scheme base)
(cyclone concurrent)
(cyclone test))
(test-group "basic"
(define q (make-shared-queue))
(test "predicate" #t (shared-queue? q))
(test "empty" #t (shared-queue-empty? q))
(test "empty" 0 (shared-queue-size q))
(shared-queue-add! q 'a)
(test "add a" #f (shared-queue-empty? q))
(test "add a" 1 (shared-queue-size q))
(shared-queue-add! q 'b)
(test "add b" #f (shared-queue-empty? q))
(test "add b" 2 (shared-queue-size q))
(shared-queue-add! q 'c)
(shared-queue-add! q 'd)
(shared-queue-add! q 'e)
(shared-queue-add! q 'f)
(shared-queue-add! q 'g)
(shared-queue-add! q 'h)
(shared-queue-add! q 'i)
(shared-queue-add! q 'j)
(test "add many" #f (shared-queue-empty? q))
(test "add many" 10 (shared-queue-size q))
(test "remove" 'a (shared-queue-remove! q))
(test "remove a - size" 9 (shared-queue-size q))
(test "remove" 'b (shared-queue-remove! q))
(test "remove" 'c (shared-queue-remove! q))
(test "remove" 'd (shared-queue-remove! q))
(test "remove d - size" 6 (shared-queue-size q))
(shared-queue-add! q 'a)
(shared-queue-add! q 'b)
(shared-queue-add! q 'c)
(shared-queue-add! q 'd)
(test "add many back" 10 (shared-queue-size q))
(shared-queue-clear! q)
(test "clear" 0 (shared-queue-size q))
)
(test-exit)