9 BadFloat int `struc:"float64"`
12 func TestBadFloatField(t *testing.T) {
13 buf := bytes.NewReader([]byte("00000000"))
14 err := Unpack(buf, &badFloat{})
16 t.Fatal("failed to error on bad float unpack")
20 type emptyLengthField struct {
21 Strlen int `struc:"sizeof=Str"`
25 func TestEmptyLengthField(t *testing.T) {
27 s := &emptyLengthField{0, []byte("test")}
28 o := &emptyLengthField{}
29 if err := Pack(&buf, s); err != nil {
32 if err := Unpack(&buf, o); err != nil {
35 if !bytes.Equal(s.Str, o.Str) {
36 t.Fatal("empty length field encode failed")
40 type fixedSlicePad struct {
41 Field []byte `struc:"[4]byte"`
44 func TestFixedSlicePad(t *testing.T) {
46 ref := []byte{0, 0, 0, 0}
48 if err := Pack(&buf, s); err != nil {
51 if !bytes.Equal(buf.Bytes(), ref) {
52 t.Fatal("implicit fixed slice pack failed")
54 if err := Unpack(&buf, s); err != nil {
57 if !bytes.Equal(s.Field, ref) {
58 t.Fatal("implicit fixed slice unpack failed")
62 type sliceCap struct {
63 Len int `struc:"sizeof=Field"`
67 func TestSliceCap(t *testing.T) {
69 tmp := &sliceCap{0, []byte("1234")}
70 if err := Pack(&buf, tmp); err != nil {
73 tmp.Field = make([]byte, 0, 4)
74 if err := Unpack(&buf, tmp); err != nil {