OneByteReader
r := iotest.OneByteReader(strings.NewReader("hello"))
// forces your code through many small reads
testing/iotestReaders and writers that simulate slow, broken, or one-byte-at-a-time I/O. Useful for stress-testing parsers.
r := iotest.OneByteReader(strings.NewReader("hello"))
// forces your code through many small reads
r1 := iotest.HalfReader(src) // returns half at a time
r2 := iotest.DataErrReader(src) // returns final data+err together
r3 := iotest.ErrReader(io.ErrUnexpectedEOF) // always errors
r := iotest.TimeoutReader(src)
// second read returns ErrTimeout — exercise retry logic
if err := iotest.TestReader(myReader, wantBytes); err != nil {
t.Fatal(err)
}