Use iotest.OneByteReader instead of self implemented one
Client: go
This is a trivial unit test improvement from the last commit. Of course
I only discovered the existence of testing/iotest package after I
re-invented the wheel.
diff --git a/lib/go/thrift/framed_transport_test.go b/lib/go/thrift/framed_transport_test.go
index 4e7d9ca..d23ec59 100644
--- a/lib/go/thrift/framed_transport_test.go
+++ b/lib/go/thrift/framed_transport_test.go
@@ -24,6 +24,7 @@
"io"
"strings"
"testing"
+ "testing/iotest"
)
func TestFramedTransport(t *testing.T) {
@@ -51,7 +52,7 @@
}
// read
- read, err := io.ReadAll(oneAtATimeReader{reader})
+ read, err := io.ReadAll(iotest.OneByteReader(reader))
if err != nil {
t.Errorf("Failed to read on #%d: %v", i, err)
}
@@ -80,9 +81,9 @@
var buf []byte
var err error
if i%2 == 0 {
- // on even calls, use oneAtATimeReader to make
+ // on even calls, use OneByteReader to make
// sure that small reads are fine
- buf, err = io.ReadAll(io.LimitReader(oneAtATimeReader{reader}, int64(size)))
+ buf, err = io.ReadAll(io.LimitReader(iotest.OneByteReader(reader), int64(size)))
} else {
// on odd calls, make sure that we don't read
// more than written per frame
diff --git a/lib/go/thrift/header_transport_test.go b/lib/go/thrift/header_transport_test.go
index 44d0284..125a5fd 100644
--- a/lib/go/thrift/header_transport_test.go
+++ b/lib/go/thrift/header_transport_test.go
@@ -25,6 +25,7 @@
"io"
"strings"
"testing"
+ "testing/iotest"
"testing/quick"
)
@@ -325,7 +326,7 @@
}
// read
- read, err := io.ReadAll(oneAtATimeReader{reader})
+ read, err := io.ReadAll(iotest.OneByteReader(reader))
if err != nil {
t.Errorf("Failed to read on #%d: %v", i, err)
}
@@ -354,9 +355,9 @@
var buf []byte
var err error
if i%2 == 0 {
- // on even calls, use oneAtATimeReader to make
+ // on even calls, use OneByteReader to make
// sure that small reads are fine
- buf, err = io.ReadAll(io.LimitReader(oneAtATimeReader{reader}, int64(size)))
+ buf, err = io.ReadAll(io.LimitReader(iotest.OneByteReader(reader), int64(size)))
} else {
// on odd calls, make sure that we don't read
// more than written per frame
@@ -374,16 +375,3 @@
}
})
}
-
-type oneAtATimeReader struct {
- io.Reader
-}
-
-// oneAtATimeReader forces every Read call to only read 1 byte out,
-// thus forces the underlying reader's Read to be called multiple times.
-func (o oneAtATimeReader) Read(buf []byte) (int, error) {
- if len(buf) < 1 {
- return o.Reader.Read(buf)
- }
- return o.Reader.Read(buf[:1])
-}