2014-02-15 11:08:55 +00:00
|
|
|
package xdr
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
"testing"
|
|
|
|
"testing/quick"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestPad(t *testing.T) {
|
|
|
|
tests := [][]int{
|
|
|
|
{0, 0},
|
|
|
|
{1, 3},
|
|
|
|
{2, 2},
|
|
|
|
{3, 1},
|
|
|
|
{4, 0},
|
|
|
|
{32, 0},
|
|
|
|
{33, 3},
|
|
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
|
|
if p := pad(tc[0]); p != tc[1] {
|
|
|
|
t.Errorf("Incorrect padding for %d bytes, %d != %d", tc[0], p, tc[1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestBytesNil(t *testing.T) {
|
|
|
|
fn := func(bs []byte) bool {
|
|
|
|
var b = new(bytes.Buffer)
|
|
|
|
var w = NewWriter(b)
|
|
|
|
var r = NewReader(b)
|
|
|
|
w.WriteBytes(bs)
|
|
|
|
w.WriteBytes(bs)
|
2014-02-20 16:40:15 +00:00
|
|
|
r.ReadBytes()
|
|
|
|
res := r.ReadBytes()
|
2014-02-15 11:08:55 +00:00
|
|
|
return bytes.Compare(bs, res) == 0
|
|
|
|
}
|
|
|
|
if err := quick.Check(fn, nil); err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestBytesGiven(t *testing.T) {
|
|
|
|
fn := func(bs []byte) bool {
|
|
|
|
var b = new(bytes.Buffer)
|
|
|
|
var w = NewWriter(b)
|
|
|
|
var r = NewReader(b)
|
|
|
|
w.WriteBytes(bs)
|
|
|
|
w.WriteBytes(bs)
|
|
|
|
res := make([]byte, 12)
|
2014-02-20 16:40:15 +00:00
|
|
|
res = r.ReadBytesInto(res)
|
|
|
|
res = r.ReadBytesInto(res)
|
2014-02-15 11:08:55 +00:00
|
|
|
return bytes.Compare(bs, res) == 0
|
|
|
|
}
|
|
|
|
if err := quick.Check(fn, nil); err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
}
|