1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
package msgp
import (
"bytes"
"math/rand"
"testing"
"time"
)
var extSizes = [...]int{0, 1, 2, 4, 8, 16, int(tint8), int(tuint16), int(tuint32)}
func randomExt() RawExtension {
e := RawExtension{}
e.Type = int8(rand.Int())
e.Data = RandBytes(extSizes[rand.Intn(len(extSizes))])
return e
}
func TestReadWriteExtension(t *testing.T) {
rand.Seed(time.Now().Unix())
var buf bytes.Buffer
en := NewWriter(&buf)
dc := NewReader(&buf)
for i := 0; i < 25; i++ {
buf.Reset()
e := randomExt()
en.WriteExtension(&e)
en.Flush()
err := dc.ReadExtension(&e)
if err != nil {
t.Errorf("error with extension (length %d): %s", len(buf.Bytes()), err)
}
}
}
func TestReadWriteExtensionBytes(t *testing.T) {
var bts []byte
rand.Seed(time.Now().Unix())
for i := 0; i < 24; i++ {
e := randomExt()
bts, _ = AppendExtension(bts[0:0], &e)
_, err := ReadExtensionBytes(bts, &e)
if err != nil {
t.Errorf("error with extension (length %d): %s", len(bts), err)
}
}
}
|