aboutsummaryrefslogtreecommitdiffstats
path: root/client/go/internal/vespa/document/queue_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'client/go/internal/vespa/document/queue_test.go')
-rw-r--r--client/go/internal/vespa/document/queue_test.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/client/go/internal/vespa/document/queue_test.go b/client/go/internal/vespa/document/queue_test.go
new file mode 100644
index 00000000000..992e7410053
--- /dev/null
+++ b/client/go/internal/vespa/document/queue_test.go
@@ -0,0 +1,29 @@
+package document
+
+import (
+ "sync"
+ "testing"
+)
+
+func TestQueue(t *testing.T) {
+ q := NewQueue[int](&sync.Pool{})
+ assertPoll(t, q, 0, false)
+ q.Add(1, false)
+ q.Add(2, false)
+ assertPoll(t, q, 1, true)
+ assertPoll(t, q, 2, true)
+ q.Add(3, false)
+ q.Add(4, true)
+ assertPoll(t, q, 4, true)
+ assertPoll(t, q, 3, true)
+}
+
+func assertPoll(t *testing.T, q *Queue[int], want int, wantOk bool) {
+ got, ok := q.Poll()
+ if ok != wantOk {
+ t.Fatalf("got ok=%t, want %t", ok, wantOk)
+ }
+ if got != want {
+ t.Fatalf("got v=%d, want %d", got, want)
+ }
+}