1
0
Fork 0

Adding upstream version 0.8.9.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-05-22 10:16:14 +02:00
parent 3b2c48b5e4
commit c0c4addb85
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
285 changed files with 25880 additions and 0 deletions

View file

@ -0,0 +1,36 @@
package testutils
import (
"errors"
"fmt"
"io"
)
var ErrWriteLimitReached = errors.New("reached write limit")
type failWriter struct {
writeLimit int
writeCount int
}
// Close is just a dummy function to implement io.Closer.
func (fw *failWriter) Close() error {
return nil
}
// Write returns an error if the write limit has been reached.
func (fw *failWriter) Write(data []byte) (int, error) {
fw.writeCount++
if fw.writeCount > fw.writeLimit {
return 0, fmt.Errorf("%w: %d", ErrWriteLimitReached, fw.writeLimit)
}
return len(data), nil
}
// CreateFailWriter returns a io.WriteCloser that returns an error after the amount of writes indicated by writeLimit.
func CreateFailWriter(writeLimit int) io.WriteCloser {
return &failWriter{
writeLimit: writeLimit,
}
}