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