aboutsummaryrefslogtreecommitdiff
path: root/src/bytes/buffer_test.go
diff options
context:
space:
mode:
authorIlia Choly <ilia.choly@gmail.com>2025-10-31 20:11:04 +0000
committerGopher Robot <gobot@golang.org>2025-11-03 09:39:00 -0800
commit5132158ac2dee721790ad4b9f745bb6364406ea0 (patch)
treec57251c591ec8b1a095d91c5cbeb1078aa55b1f5 /src/bytes/buffer_test.go
parent361d51a6b58bccaab0559e06737c918018a7a5fa (diff)
downloadgo-5132158ac2dee721790ad4b9f745bb6364406ea0.tar.xz
bytes: add Buffer.Peek
Fixes #73794 Change-Id: I0a57db05aacfa805213fe8278fc727e76eb8a65e GitHub-Last-Rev: 3494d93f803f21905dfd5a9d593644da69279f16 GitHub-Pull-Request: golang/go#73795 Reviewed-on: https://go-review.googlesource.com/c/go/+/674415 Reviewed-by: Sean Liao <sean@liao.dev> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Pratt <mpratt@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> Reviewed-by: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src/bytes/buffer_test.go')
-rw-r--r--src/bytes/buffer_test.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/bytes/buffer_test.go b/src/bytes/buffer_test.go
index b46ba1204e..5f5cc483b0 100644
--- a/src/bytes/buffer_test.go
+++ b/src/bytes/buffer_test.go
@@ -531,6 +531,34 @@ func TestReadString(t *testing.T) {
}
}
+var peekTests = []struct {
+ buffer string
+ n int
+ expected string
+ err error
+}{
+ {"", 0, "", nil},
+ {"aaa", 3, "aaa", nil},
+ {"foobar", 2, "fo", nil},
+ {"a", 2, "a", io.EOF},
+}
+
+func TestPeek(t *testing.T) {
+ for _, test := range peekTests {
+ buf := NewBufferString(test.buffer)
+ bytes, err := buf.Peek(test.n)
+ if string(bytes) != test.expected {
+ t.Errorf("expected %q, got %q", test.expected, bytes)
+ }
+ if err != test.err {
+ t.Errorf("expected error %v, got %v", test.err, err)
+ }
+ if buf.Len() != len(test.buffer) {
+ t.Errorf("bad length after peek: %d, want %d", buf.Len(), len(test.buffer))
+ }
+ }
+}
+
func BenchmarkReadString(b *testing.B) {
const n = 32 << 10