Skip to content

Commit f4f527a

Browse files
committed
test: add benchamrk tests for orderedbuffer
1 parent 58fc76b commit f4f527a

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

orderedbuffer/orderedbuffer_test.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,45 @@ func TestOrderedBufferConcurrent(t *testing.T) {
5656
}
5757
}
5858
}
59+
60+
func BenchmarkOrderedBufferOrderedDelivery(b *testing.B) {
61+
ch := make(chan int, b.N)
62+
buf := NewOrderedBuffer(ch)
63+
go func() {
64+
for range ch {
65+
}
66+
}()
67+
for i := 0; b.Loop(); i++ {
68+
buf.Store(i, i)
69+
}
70+
close(ch)
71+
}
72+
73+
func BenchmarkOrderedBufferOutOfOrder(b *testing.B) {
74+
ch := make(chan int, b.N)
75+
buf := NewOrderedBuffer(ch)
76+
go func() {
77+
for range ch {
78+
}
79+
}()
80+
for i := b.N - 1; i >= 0; i-- {
81+
buf.Store(i, i)
82+
}
83+
close(ch)
84+
}
85+
86+
func BenchmarkOrderedBufferConcurrent(b *testing.B) {
87+
ch := make(chan int, b.N)
88+
buf := NewOrderedBuffer(ch)
89+
go func() {
90+
for range ch {
91+
}
92+
}()
93+
b.RunParallel(func(pb *testing.PB) {
94+
i := 0
95+
for pb.Next() {
96+
buf.Store(i, i)
97+
i++
98+
}
99+
})
100+
}

0 commit comments

Comments
 (0)