diff options
| author | 2025-11-16 00:00:00 +0000 | |
|---|---|---|
| committer | 2025-11-16 00:00:00 +0000 | |
| commit | 722cdf89ebafaf6bdc789176be5b5c2f6c98de08 (patch) | |
| tree | 410fcce6f03d7bf122e5210f8b375b23fedffde7 /internal/bufpool/buffers_test.go | |
| parent | Rename ObjType enum (diff) | |
| signature | ||
Extract bufpool into its own package
Diffstat (limited to 'internal/bufpool/buffers_test.go')
| -rw-r--r-- | internal/bufpool/buffers_test.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/internal/bufpool/buffers_test.go b/internal/bufpool/buffers_test.go new file mode 100644 index 00000000..87dbdd73 --- /dev/null +++ b/internal/bufpool/buffers_test.go @@ -0,0 +1,40 @@ +package bufpool + +import "testing" + +func TestBorrowBufferResizeAndAppend(t *testing.T) { + b := Borrow(1) + defer b.Release() + + if cap(b.buf) < DefaultBufferCap { + t.Fatalf("expected capacity >= %d, got %d", DefaultBufferCap, cap(b.buf)) + } + + b.Append([]byte("alpha")) + b.Append([]byte("beta")) + if got := string(b.Bytes()); got != "alphabeta" { + t.Fatalf("unexpected contents: %q", got) + } + + b.Resize(3) + if got := string(b.Bytes()); got != "alp" { + t.Fatalf("resize shrink mismatch: %q", got) + } + + b.Resize(8) + if len(b.Bytes()) != 8 { + t.Fatalf("expected len 8 after grow, got %d", len(b.Bytes())) + } + if prefix := string(b.Bytes()[:3]); prefix != "alp" { + t.Fatalf("prefix lost after grow: %q", prefix) + } +} + +func TestBorrowBufferRelease(t *testing.T) { + b := Borrow(DefaultBufferCap / 2) + b.Append([]byte("data")) + b.Release() + if b.buf != nil { + t.Fatal("expected buffer cleared after release") + } +} |
