Package iotest implements Readers and Writers useful mainly for testing.
- func DataErrReader(r io.Reader) io.Reader
- func HalfReader(r io.Reader) io.Reader
- func NewReadLogger(prefix string, r io.Reader) io.Reader
- func NewWriteLogger(prefix string, w io.Writer) io.Writer
- func OneByteReader(r io.Reader) io.Reader
- func TimeoutReader(r io.Reader) io.Reader
- func TruncateWriter(w io.Writer, n int64) io.Writer
func DataErrReader ¶
DataErrReader changes the way errors are handled by a Reader. Normally, a Reader returns an error (typically EOF) from the first Read call after the last piece of data is read. DataErrReader wraps a Reader and changes its behavior so the final error is returned along with the final data, instead of in the first call after the final data.
func HalfReader ¶
HalfReader returns a Reader that implements Read by reading half as many requested bytes from r.
func NewReadLogger ¶
NewReadLogger returns a reader that behaves like r except that it logs (using log.Printf) each read to standard error, printing the prefix and the hexadecimal data read.
func NewWriteLogger ¶
NewWriteLogger returns a writer that behaves like w except that it logs (using log.Printf) each write to standard error, printing the prefix and the hexadecimal data written.
func OneByteReader ¶
OneByteReader returns a Reader that implements each non-empty Read by reading one byte from r.
func TimeoutReader ¶
TimeoutReader returns ErrTimeout on the second read with no data. Subsequent calls to read succeed.