32 lines
448 B
Go
32 lines
448 B
Go
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")
|
|
}
|