From abdfc41f64938dc77a23e35db2768e46e19f6d18 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Mon, 15 Sep 2025 11:45:04 -0400 Subject: deque --- queue_test.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'queue_test.go') diff --git a/queue_test.go b/queue_test.go index 9e7d397..a994620 100644 --- a/queue_test.go +++ b/queue_test.go @@ -1,6 +1,7 @@ package share_test import ( + "sync" "testing" "github.com/sam-rba/share" @@ -8,21 +9,27 @@ import ( func TestQueue(t *testing.T) { q := share.NewQueue[string]() - vals := []string{"foo", "bar", "baz", "xyz"} - + var wg sync.WaitGroup + + // Producer + wg.Add(1) go func() { + defer wg.Done() for _, v := range vals { q.Enqueue <- v } close(q.Enqueue) }() + // Consumer + wg.Add(1) go func() { + defer wg.Done() i := 0 for front := range q.Dequeue { t.Log("received", front, "from queue") - if i > len(vals)-1 { + if i >= len(vals) { t.Fatal("received too many elements from queue") } if front != vals[i] { @@ -34,4 +41,6 @@ func TestQueue(t *testing.T) { t.Fatal("did not receive enough values from queue") } }() -} \ No newline at end of file + + wg.Wait() +} -- cgit v1.2.3