aboutsummaryrefslogtreecommitdiff
path: root/src/bufio
diff options
context:
space:
mode:
authorDmitri Shuralyov <dmitshur@golang.org>2020-06-16 13:08:47 -0400
committerDmitri Shuralyov <dmitshur@golang.org>2020-06-17 14:47:32 +0000
commitdea6d928f6c293631ce93bd3a3bb8b4020188954 (patch)
tree1bea18c69f56a4e83a85b1e8e613db8a143aed3b /src/bufio
parent340efd3608c2dc69b8786a8e7ca472e9f78d9002 (diff)
downloadgo-dea6d928f6c293631ce93bd3a3bb8b4020188954.tar.gz
go-dea6d928f6c293631ce93bd3a3bb8b4020188954.zip
bufio: test for exact error value in TestNegativeEOFReader and TestLargeReader
CL 225357 added tests for Scanner not panicking on bad readers. CL 225557 created a named error value that is returned instead. CL 237739 documents that the bufio.ErrBadReadCount is returned when bufio.Scanner is used with an invalid io.Reader. This suggests we wouldn't want that behavior to be able to change without a test noticing it, so modify the tests to check for the exact error value instead of just any non-nil one. For #38053. Change-Id: I4b0b8eb6804ebfe2c768505ddb94f0b1017fcf8b Reviewed-on: https://go-review.googlesource.com/c/go/+/238217 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/bufio')
-rw-r--r--src/bufio/scan_test.go14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/bufio/scan_test.go b/src/bufio/scan_test.go
index ceb813ae8d..e99b09f66f 100644
--- a/src/bufio/scan_test.go
+++ b/src/bufio/scan_test.go
@@ -558,8 +558,8 @@ func (r *negativeEOFReader) Read(p []byte) (int, error) {
return -1, io.EOF
}
-// Test that the scanner doesn't panic on a reader that returns a
-// negative count of bytes read (issue 38053).
+// Test that the scanner doesn't panic and returns ErrBadReadCount
+// on a reader that returns a negative count of bytes read (issue 38053).
func TestNegativeEOFReader(t *testing.T) {
r := negativeEOFReader(10)
scanner := NewScanner(&r)
@@ -571,8 +571,8 @@ func TestNegativeEOFReader(t *testing.T) {
break
}
}
- if scanner.Err() == nil {
- t.Error("scanner.Err returned nil, expected an error")
+ if got, want := scanner.Err(), ErrBadReadCount; got != want {
+ t.Errorf("scanner.Err: got %v, want %v", got, want)
}
}
@@ -584,11 +584,13 @@ func (largeReader) Read(p []byte) (int, error) {
return len(p) + 1, nil
}
+// Test that the scanner doesn't panic and returns ErrBadReadCount
+// on a reader that returns an impossibly large count of bytes read (issue 38053).
func TestLargeReader(t *testing.T) {
scanner := NewScanner(largeReader{})
for scanner.Scan() {
}
- if scanner.Err() == nil {
- t.Error("scanner.Err returned nil, expected an error")
+ if got, want := scanner.Err(), ErrBadReadCount; got != want {
+ t.Errorf("scanner.Err: got %v, want %v", got, want)
}
}