aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRose Hogenson <rosehogenson@posteo.net>2026-01-25 07:03:15 -0800
committerRose Hogenson <rosehogenson@posteo.net>2026-01-25 07:03:15 -0800
commitfafe0213c9022f298ec391c7907ed92762fbcd1b (patch)
tree659d25b7838393b931cca5349b666678e3b7a8f1
parent1743be7b30655fe13ae0e60e3480f25d31eaea8f (diff)
downloadoae2-fafe0213c9022f298ec391c7907ed92762fbcd1b.tar.zst
Add a benchmark
-rw-r--r--oae2_test.go47
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)
+ }
+ }
+}