From 722cdf89ebafaf6bdc789176be5b5c2f6c98de08 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 16 Nov 2025 00:00:00 +0000 Subject: Extract bufpool into its own package --- internal/bufpool/buffers_test.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 internal/bufpool/buffers_test.go (limited to 'internal/bufpool/buffers_test.go') 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") + } +} -- cgit v1.3.1-10-gc9f91