summaryrefslogtreecommitdiffstats
path: root/queue_test.go
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2025-09-15 11:45:04 -0400
committerSam Anthony <sam@samanthony.xyz>2025-09-15 11:45:04 -0400
commitabdfc41f64938dc77a23e35db2768e46e19f6d18 (patch)
tree651492ebaf9fd3d90834ca2f1f5499ec1d315480 /queue_test.go
parenta26dcba10a0d02a2e74784d87d93f5f5e53c5c24 (diff)
downloadshare-master.zip
Diffstat (limited to 'queue_test.go')
-rw-r--r--queue_test.go17
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()
+}