aboutsummaryrefslogtreecommitdiff
path: root/src/testing/iotest/reader.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/testing/iotest/reader.go')
-rw-r--r--src/testing/iotest/reader.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/testing/iotest/reader.go b/src/testing/iotest/reader.go
index 8d82018fd6..bc2f72a911 100644
--- a/src/testing/iotest/reader.go
+++ b/src/testing/iotest/reader.go
@@ -68,6 +68,7 @@ func (r *dataErrReader) Read(p []byte) (n int, err error) {
return
}
+// ErrTimeout is a fake timeout error.
var ErrTimeout = errors.New("timeout")
// TimeoutReader returns ErrTimeout on the second read
@@ -86,3 +87,16 @@ func (r *timeoutReader) Read(p []byte) (int, error) {
}
return r.r.Read(p)
}
+
+// ErrReader returns an io.Reader that returns 0, err from all Read calls.
+func ErrReader(err error) io.Reader {
+ return &alwaysErrReader{err: err}
+}
+
+type alwaysErrReader struct {
+ err error
+}
+
+func (aer *alwaysErrReader) Read(p []byte) (int, error) {
+ return 0, aer.err
+}