From 7f04517ce6ffa4b0d13cda8da440607cefc655a0 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Wed, 26 Jun 2019 13:41:40 -0400 Subject: [PATCH] WIP --- libs/cyclone/shared-queue.sld | 11 +++---- libs/cyclone/test-shared-queue.scm | 46 ++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 libs/cyclone/test-shared-queue.scm diff --git a/libs/cyclone/shared-queue.sld b/libs/cyclone/shared-queue.sld index 8337553e..1b8f1136 100644 --- a/libs/cyclone/shared-queue.sld +++ b/libs/cyclone/shared-queue.sld @@ -28,7 +28,8 @@ queue queue-add! %queue-add! ;; DEBUG - %queue-remove! + queue-remove! + %queue-remove! ;; DEBUG queue-clear! queue-size queue-capacity @@ -113,10 +114,10 @@ (loop (+ i 1) (inc start (vector-length old-store)))))) ) -(define (queue-remove! q obj) +(define (queue-remove! q) (let ((result #f)) (mutex-lock! (q:lock q)) - (set! result (%queue-remove! q obj)) + (set! result (%queue-remove! q)) (mutex-unlock! (q:lock q)) result)) @@ -167,8 +168,4 @@ result) ;- queue->list - -;(test-group "basic") -;(test #t (shared-queue? (make-queue))) -;(test-exit) )) diff --git a/libs/cyclone/test-shared-queue.scm b/libs/cyclone/test-shared-queue.scm new file mode 100644 index 00000000..182996ed --- /dev/null +++ b/libs/cyclone/test-shared-queue.scm @@ -0,0 +1,46 @@ +(import + (scheme base) + ;(cyclone concurrent) + ;(srfi 18) + (shared-queue) + (cyclone test)) + +(test-group "basic" + (define q (make-queue)) + (test "predicate" #t (queue? q)) + (test "empty" #t (queue-empty? q)) + (test "empty" 0 (queue-size q)) + (queue-add! q 'a) + (test "add a" #f (queue-empty? q)) + (test "add a" 1 (queue-size q)) + (queue-add! q 'b) + (test "add b" #f (queue-empty? q)) + (test "add b" 2 (queue-size q)) + (queue-add! q 'c) + (queue-add! q 'd) + (queue-add! q 'e) + (queue-add! q 'f) + (queue-add! q 'g) + (queue-add! q 'h) + (queue-add! q 'i) + (queue-add! q 'j) + (test "add many" #f (queue-empty? q)) + (test "add many" 10 (queue-size q)) + (test "remove" 'a (queue-remove! q)) + (test "remove a - size" 9 (queue-size q)) + (test "remove" 'b (queue-remove! q)) + (test "remove" 'c (queue-remove! q)) + (test "remove" 'd (queue-remove! q)) + (test "remove d - size" 6 (queue-size q)) + + (queue-add! q 'a) + (queue-add! q 'b) + (queue-add! q 'c) + (queue-add! q 'd) + (test "add many back" 10 (queue-size q)) + + (queue-clear! q) + (test "clear" 0 (queue-size q)) +) + +(test-exit)