8 func TestBadType(t *testing.T) {
9 defer func() { recover() }()
11 t.Fatal("failed to panic for invalid Type.Size()")
14 func TestTypeString(t *testing.T) {
15 if Pad.String() != "pad" {
16 t.Fatal("type string representation failed")
20 type sizeOffTest struct {
25 func TestSizeOffTypes(t *testing.T) {
26 bits := []int{8, 16, 32, 64}
28 test := &sizeOffTest{1, 2}
29 for _, b := range bits {
30 if err := PackWithOptions(&buf, test, &Options{PtrSize: b}); err != nil {
37 0, 0, 0, 1, 0, 0, 0, 2,
38 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2,
40 if !bytes.Equal(reference, buf.Bytes()) {
41 t.Errorf("reference != bytes: %v", reference, buf.Bytes())
43 reader := bytes.NewReader(buf.Bytes())
44 for _, b := range bits {
46 if err := UnpackWithOptions(reader, out, &Options{PtrSize: b}); err != nil {
49 if out.Size != 1 || out.Off != 2 {
50 t.Errorf("Size_t/Off_t mismatch: {%d, %d}\n%v", out.Size, out.Off, buf.Bytes())