diff options
| author | Rose Hogenson <rosehogenson@posteo.net> | 2026-01-25 07:03:15 -0800 |
|---|---|---|
| committer | Rose Hogenson <rosehogenson@posteo.net> | 2026-01-25 07:03:15 -0800 |
| commit | fafe0213c9022f298ec391c7907ed92762fbcd1b (patch) | |
| tree | 659d25b7838393b931cca5349b666678e3b7a8f1 | |
| parent | 1743be7b30655fe13ae0e60e3480f25d31eaea8f (diff) | |
| download | oae2-fafe0213c9022f298ec391c7907ed92762fbcd1b.tar.zst | |
Add a benchmark
| -rw-r--r-- | oae2_test.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/oae2_test.go b/oae2_test.go index e326ef2..b60be24 100644 --- a/oae2_test.go +++ b/oae2_test.go @@ -312,3 +312,50 @@ func FuzzSeekCurrent(f *testing.F) { } }) } + +func encrypt(buf *bytes.Buffer, data []byte) error { + w := NewWriter(buf, []byte("asdf"), 4*1024*1024) + if _, err := w.Write(data); err != nil { + return err + } + return w.Close() +} + +func BenchmarkWriter(b *testing.B) { + data := make([]byte, 10*1024*1024) + outBuffer := bytes.NewBuffer(make([]byte, 0, 32+3*16+len(data))) + for b.Loop() { + outBuffer.Reset() + if err := encrypt(outBuffer, data); err != nil { + b.Fatal(err) + } + } +} + +func decrypt(out []byte, data []byte) error { + r := NewReader(bytes.NewReader(data), []byte("asdf"), 4*1024*1024) + _, err := io.ReadFull(r, out) + return err +} + +func BenchmarkReader(b *testing.B) { + const ( + segmentSize = 4 * 1024 * 1024 + password = "asdf" + ) + data := make([]byte, 10*1024*1024) + encryptedBuf := new(bytes.Buffer) + w := NewWriter(encryptedBuf, []byte(password), segmentSize) + if _, err := w.Write(data); err != nil { + b.Fatal(err) + } + if err := w.Close(); err != nil { + b.Fatal(err) + } + encryptedData := encryptedBuf.Bytes() + for b.Loop() { + if err := decrypt(data, encryptedData); err != nil { + b.Fatal(err) + } + } +} |
