package iotest

Import Path
	testing/iotest (on

Dependency Relation
	imports 5 packages, and imported by one package

Involved Source Files logger.go Package iotest implements Readers and Writers useful mainly for testing. writer.go
Code Examples package main import ( "errors" "fmt" "testing/iotest" ) func main() { // A reader that always returns a custom error. r := iotest.ErrReader(errors.New("custom error")) n, err := r.Read(nil) fmt.Printf("n: %d\nerr: %q\n", n, err) }
Package-Level Functions (total 9)
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.
ErrReader returns an [io.Reader] that returns 0, err from all Read calls.
HalfReader returns a Reader that implements Read by reading half as many requested bytes from r.
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.
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.
OneByteReader returns a Reader that implements each non-empty Read by reading one byte from r.
TestReader tests that reading from r returns the expected file content. It does reads of different sizes, until EOF. If r implements [io.ReaderAt] or [io.Seeker], TestReader also checks that those operations behave as they should. If TestReader finds any misbehaviors, it returns an error reporting them. The error text may span multiple lines.
TimeoutReader returns [ErrTimeout] on the second read with no data. Subsequent calls to read succeed.
TruncateWriter returns a Writer that writes to w but stops silently after n bytes.
Package-Level Variables (only one)
ErrTimeout is a fake timeout error.