summaryrefslogtreecommitdiffstats
path: root/xdr
diff options
context:
space:
mode:
authorJakob Borg <jakob@nym.se>2014-04-09 10:09:41 +0200
committerJakob Borg <jakob@nym.se>2014-04-09 10:09:41 +0200
commitc2f0c2225a9972d5d67f24517f880bac58c3c3e0 (patch)
tree3ca5c1e02feb1f59de989db209719889baca5100 /xdr
parent711587492c7dd2c150944b7bb68007d5660252c7 (diff)
Add tests for ReadBytesMaxInto(..., nil)
Diffstat (limited to 'xdr')
-rw-r--r--xdr/xdr_test.go26
1 files changed, 25 insertions, 1 deletions
diff --git a/xdr/xdr_test.go b/xdr/xdr_test.go
index 4800427067..8c3da1e1d9 100644
--- a/xdr/xdr_test.go
+++ b/xdr/xdr_test.go
@@ -56,7 +56,7 @@ func TestBytesGiven(t *testing.T) {
}
}
-func TestReadMaxInto(t *testing.T) {
+func TestReadBytesMaxInto(t *testing.T) {
var max = 64
for tot := 32; tot < 128; tot++ {
for diff := -32; diff <= 32; diff++ {
@@ -80,3 +80,27 @@ func TestReadMaxInto(t *testing.T) {
}
}
}
+
+func TestReadBytesMaxIntoNil(t *testing.T) {
+ for tot := 42; tot < 72; tot++ {
+ for max := 0; max < 128; max++ {
+ var b = new(bytes.Buffer)
+ var r = NewReader(b)
+ var w = NewWriter(b)
+
+ var toWrite = make([]byte, tot)
+ w.WriteBytes(toWrite)
+
+ var bs = r.ReadBytesMaxInto(max, nil)
+ var read = len(bs)
+
+ if max == 0 || tot <= max {
+ if read != tot {
+ t.Errorf("Incorrect read bytes, wrote=%d, max=%d, read=%d", tot, max, read)
+ }
+ } else if r.err != ErrElementSizeExceeded {
+ t.Errorf("Unexpected non-ErrElementSizeExceeded error for wrote=%d, max=%d, read=%d: %v", tot, max, read, r.err)
+ }
+ }
+ }
+}