36 lines
732 B
Go
36 lines
732 B
Go
package filters
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
"realy.lol/chk"
|
|
)
|
|
|
|
func TestT_MarshalUnmarshal(t *testing.T) {
|
|
var err error
|
|
dst := make([]byte, 0, 4000000)
|
|
dst1 := make([]byte, 0, len(dst))
|
|
dst2 := make([]byte, 0, len(dst))
|
|
for _ = range 1000 {
|
|
var f1 *T
|
|
if f1, err = GenFilters(5); chk.E(err) {
|
|
t.Fatal(err)
|
|
}
|
|
// now unmarshal
|
|
dst = f1.Marshal(dst)
|
|
dst1 = append(dst1, dst...)
|
|
// now unmarshal
|
|
var rem []byte
|
|
f2 := New()
|
|
if rem, err = f2.Unmarshal(dst); chk.E(err) {
|
|
t.Fatalf("unmarshal error: %v\n%s\n%s", err, dst, rem)
|
|
}
|
|
dst2 = f2.Marshal(dst2)
|
|
if !bytes.Equal(dst1, dst2) {
|
|
t.Fatalf("marshal error: %v\n%s\n%s", err, dst1, dst2)
|
|
}
|
|
dst, dst1, dst2 = dst[:0], dst1[:0], dst2[:0]
|
|
}
|
|
}
|