1
0
Fork 0

Adding upstream version 1.2.0.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-05-18 16:42:16 +02:00
parent 6a5b4a9666
commit 82a6c39bcf
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
24 changed files with 2727 additions and 0 deletions

62
limio/limit_test.go Normal file
View file

@ -0,0 +1,62 @@
package limio
import (
"bytes"
"crypto/rand"
"io"
"testing"
)
func TestLimits(t *testing.T) {
LimitTestN(0, t)
LimitTestN(1, t)
LimitTestN(2, t)
LimitTestN(1024, t)
OverLimitTestN(0, t)
OverLimitTestN(1, t)
OverLimitTestN(2, t)
OverLimitTestN(1024, t)
}
func OverLimitTestN(N int64, t *testing.T) {
got := bytes.NewBuffer(nil)
exp := bytes.NewBuffer(nil)
lw := LimitWriter(got, N)
w := io.MultiWriter(exp, lw)
_, err := io.CopyN(w, rand.Reader, 2*N)
if err != io.ErrShortWrite && N != 2*N {
t.Error("did not throw io.ErrShortWrite!")
if err != nil {
t.Error(err.Error())
}
}
if !bytes.Equal(got.Bytes(), exp.Bytes()[:N]) {
t.Errorf("Exp: %s\n Got: %s\n",
string(exp.Bytes()[:N]),
string(got.Bytes()))
}
if int64(got.Len()) != N {
t.Errorf("LimitWriter did not cap at %d", N)
}
}
func LimitTestN(N int64, t *testing.T) {
got := bytes.NewBuffer(nil)
exp := bytes.NewBuffer(nil)
lw := LimitWriter(got, N)
w := io.MultiWriter(lw, exp)
io.CopyN(w, rand.Reader, N)
if !bytes.Equal(got.Bytes(), exp.Bytes()) {
t.Errorf("Exp: %s\n Got: %s\n",
string(exp.Bytes()[:N]),
string(got.Bytes()))
}
}