diff options
Diffstat (limited to 'queue_test.go')
| -rw-r--r-- | queue_test.go | 17 |
1 files changed, 13 insertions, 4 deletions
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() +} |