Adding upstream version 1.2.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
6a5b4a9666
commit
82a6c39bcf
24 changed files with 2727 additions and 0 deletions
62
limio/limit_test.go
Normal file
62
limio/limit_test.go
Normal 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()))
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue