package textfmt_test import ( "errors" "io" ) type failingWriter struct { out io.Writer failAfter int err error } func (w *failingWriter) Write(p []byte) (int, error) { if w.err != nil { return 0, w.err } if w.failAfter <= len(p) { p = p[:w.failAfter] } if len(p) > 0 && w.out != nil { if n, err := w.out.Write(p); err != nil { w.err = err return n, w.err } } w.failAfter -= len(p) if w.failAfter == 0 { w.err = errors.New("test write error") } return len(p), w.err }