diff --git a/internal/compressions/reader_brotli_test.go b/internal/compressions/reader_brotli_test.go index 0872887..ec61141 100644 --- a/internal/compressions/reader_brotli_test.go +++ b/internal/compressions/reader_brotli_test.go @@ -6,6 +6,7 @@ import ( "bytes" "github.com/TeaOSLab/EdgeNode/internal/compressions" "io" + "os" "testing" ) @@ -49,3 +50,45 @@ func TestBrotliReader(t *testing.T) { } } } + +func BenchmarkBrotliReader(b *testing.B) { + data, err := os.ReadFile("./reader_brotli.go") + if err != nil { + b.Fatal(err) + } + var buf = bytes.NewBuffer([]byte{}) + writer, err := compressions.NewBrotliWriter(buf, 5) + if err != nil { + b.Fatal(err) + } + _, err = writer.Write(data) + err = writer.Close() + if err != nil { + b.Fatal(err) + } + var compressedData = buf.Bytes() + + b.ResetTimer() + b.RunParallel(func(pb *testing.PB) { + for pb.Next() { + reader, readerErr := compressions.NewBrotliReader(bytes.NewBuffer(compressedData)) + if readerErr != nil { + b.Fatal(readerErr) + } + var readBuf = make([]byte, 1024) + for { + _, readErr := reader.Read(readBuf) + if readErr != nil { + if readErr != io.EOF { + b.Fatal(readErr) + } + break + } + } + closeErr := reader.Close() + if closeErr != nil { + b.Fatal(closeErr) + } + } + }) +}