You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
646 B
36 lines
646 B
package kind |
|
|
|
import ( |
|
"testing" |
|
|
|
"lol.mleku.dev/chk" |
|
"lukechampine.com/frand" |
|
) |
|
|
|
func TestUnmarshalKindsArray(t *testing.T) { |
|
k := &S{make([]*K, 100)} |
|
for i := range k.K { |
|
k.K[i] = New(uint16(frand.Intn(65535))) |
|
} |
|
var dst []byte |
|
var err error |
|
if dst = k.Marshal(dst); chk.E(err) { |
|
t.Fatal(err) |
|
} |
|
k2 := &S{} |
|
var rem []byte |
|
if rem, err = k2.Unmarshal(dst); chk.E(err) { |
|
return |
|
} |
|
if len(rem) > 0 { |
|
t.Fatalf("failed to unmarshal, remnant afterwards '%s'", rem) |
|
} |
|
for i := range k.K { |
|
if *k.K[i] != *k2.K[i] { |
|
t.Fatalf( |
|
"failed to unmarshal at element %d; got %x, expected %x", |
|
i, k.K[i], k2.K[i], |
|
) |
|
} |
|
} |
|
}
|
|
|