diff --git a/Makefile b/Makefile index b2e4f39..2ac133b 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,5 @@ test: - @go run github.com/onsi/ginkgo/ginkgo -keepGoing -progress -timeout 1m -race --randomizeAllSpecs --randomizeSuites + go run github.com/onsi/ginkgo/ginkgo -keepGoing -progress -timeout 1m -race --randomizeAllSpecs --randomizeSuites + +bench: + go test -bench=. -run=Benchmark diff --git a/bench_test.go b/bench_test.go new file mode 100644 index 0000000..3633c29 --- /dev/null +++ b/bench_test.go @@ -0,0 +1,41 @@ +package buffer_test + +import ( + "testing" + + "github.com/globocom/go-buffer" +) + +func BenchmarkBuffer(b *testing.B) { + noop := buffer.FlusherFunc(func([]interface{}) {}) + + b.Run("push only", func(b *testing.B) { + sut := buffer.New( + buffer.WithSize(uint(b.N)+1), + buffer.WithFlusher(noop), + ) + defer sut.Close() + + for i := 0; i < b.N; i++ { + err := sut.Push(i) + if err != nil { + b.Fail() + } + } + }) + + b.Run("push and flush", func(b *testing.B) { + sut := buffer.New( + buffer.WithSize(1), + buffer.WithFlusher(noop), + ) + defer sut.Close() + + for i := 0; i < b.N; i++ { + err := sut.Push(i) + if err != nil { + b.Fail() + } + } + }) +}