summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/lunixbochs/struc/struc_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/lunixbochs/struc/struc_test.go')
-rw-r--r--vendor/github.com/lunixbochs/struc/struc_test.go200
1 files changed, 0 insertions, 200 deletions
diff --git a/vendor/github.com/lunixbochs/struc/struc_test.go b/vendor/github.com/lunixbochs/struc/struc_test.go
deleted file mode 100644
index 4b50707..0000000
--- a/vendor/github.com/lunixbochs/struc/struc_test.go
+++ /dev/null
@@ -1,200 +0,0 @@
-package struc
-
-import (
- "bytes"
- "encoding/binary"
- "reflect"
- "testing"
-)
-
-type Nested struct {
- Test2 int `struc:"int8"`
-}
-
-type Example struct {
- Pad []byte `struc:"[5]pad"` // 00 00 00 00 00
- I8f int `struc:"int8"` // 01
- I16f int `struc:"int16"` // 00 02
- I32f int `struc:"int32"` // 00 00 00 03
- I64f int `struc:"int64"` // 00 00 00 00 00 00 00 04
- U8f int `struc:"uint8,little"` // 05
- U16f int `struc:"uint16,little"` // 06 00
- U32f int `struc:"uint32,little"` // 07 00 00 00
- U64f int `struc:"uint64,little"` // 08 00 00 00 00 00 00 00
- Boolf int `struc:"bool"` // 01
- Byte4f []byte `struc:"[4]byte"` // "abcd"
-
- I8 int8 // 09
- I16 int16 // 00 0a
- I32 int32 // 00 00 00 0b
- I64 int64 // 00 00 00 00 00 00 00 0c
- U8 uint8 `struc:"little"` // 0d
- U16 uint16 `struc:"little"` // 0e 00
- U32 uint32 `struc:"little"` // 0f 00 00 00
- U64 uint64 `struc:"little"` // 10 00 00 00 00 00 00 00
- BoolT bool // 01
- BoolF bool // 00
- Byte4 [4]byte // "efgh"
- Float1 float32 // 41 a0 00 00
- Float2 float64 // 41 35 00 00 00 00 00 00
-
- Size int `struc:"sizeof=Str,little"` // 0a 00 00 00
- Str string `struc:"[]byte"` // "ijklmnopqr"
- Strb string `struc:"[4]byte"` // "stuv"
-
- Size2 int `struc:"uint8,sizeof=Str2"` // 04
- Str2 string // "1234"
-
- Size3 int `struc:"uint8,sizeof=Bstr"` // 04
- Bstr []byte // "5678"
-
- Nested Nested // 00 00 00 01
- NestedP *Nested // 00 00 00 02
- TestP64 *int `struc:"int64"` // 00 00 00 05
-
- NestedSize int `struc:"sizeof=NestedA"` // 00 00 00 02
- NestedA []Nested // [00 00 00 03, 00 00 00 04]
-
- Skip int `struc:"skip"`
-
- CustomTypeSize Int3 `struc:"sizeof=CustomTypeSizeArr"` // 00 00 00 04
- CustomTypeSizeArr []byte // "ABCD"
-}
-
-var five = 5
-
-var reference = &Example{
- nil,
- 1, 2, 3, 4, 5, 6, 7, 8, 0, []byte{'a', 'b', 'c', 'd'},
- 9, 10, 11, 12, 13, 14, 15, 16, true, false, [4]byte{'e', 'f', 'g', 'h'},
- 20, 21,
- 10, "ijklmnopqr", "stuv",
- 4, "1234",
- 4, []byte("5678"),
- Nested{1}, &Nested{2}, &five,
- 6, []Nested{{3}, {4}, {5}, {6}, {7}, {8}},
- 0,
- Int3(4), []byte("ABCD"),
-}
-
-var referenceBytes = []byte{
- 0, 0, 0, 0, 0, // pad(5)
- 1, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, // fake int8-int64(1-4)
- 5, 6, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, // fake little-endian uint8-uint64(5-8)
- 0, // fake bool(0)
- 'a', 'b', 'c', 'd', // fake [4]byte
-
- 9, 0, 10, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, // real int8-int64(9-12)
- 13, 14, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, // real little-endian uint8-uint64(13-16)
- 1, 0, // real bool(1), bool(0)
- 'e', 'f', 'g', 'h', // real [4]byte
- 65, 160, 0, 0, // real float32(20)
- 64, 53, 0, 0, 0, 0, 0, 0, // real float64(21)
-
- 10, 0, 0, 0, // little-endian int32(10) sizeof=Str
- 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', // Str
- 's', 't', 'u', 'v', // fake string([4]byte)
- 04, '1', '2', '3', '4', // real string
- 04, '5', '6', '7', '8', // fake []byte(string)
-
- 1, 2, // Nested{1}, Nested{2}
- 0, 0, 0, 0, 0, 0, 0, 5, // &five
-
- 0, 0, 0, 6, // int32(6)
- 3, 4, 5, 6, 7, 8, // [Nested{3}, ...Nested{8}]
-
- 0, 0, 4, 'A', 'B', 'C', 'D', // Int3(4), []byte("ABCD")
-}
-
-func TestCodec(t *testing.T) {
- var buf bytes.Buffer
- if err := Pack(&buf, reference); err != nil {
- t.Fatal(err)
- }
- out := &Example{}
- if err := Unpack(&buf, out); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(reference, out) {
- t.Fatal("encode/decode failed")
- }
-}
-
-func TestEncode(t *testing.T) {
- var buf bytes.Buffer
- if err := Pack(&buf, reference); err != nil {
- t.Fatal(err)
- }
- if !bytes.Equal(buf.Bytes(), referenceBytes) {
- t.Fatal("encode failed")
- }
-}
-
-func TestDecode(t *testing.T) {
- buf := bytes.NewReader(referenceBytes)
- out := &Example{}
- if err := Unpack(buf, out); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(reference, out) {
- t.Fatal("decode failed")
- }
-}
-
-func TestSizeof(t *testing.T) {
- size, err := Sizeof(reference)
- if err != nil {
- t.Fatal(err)
- }
- if size != len(referenceBytes) {
- t.Fatal("sizeof failed")
- }
-}
-
-type ExampleEndian struct {
- T int `struc:"int16,big"`
-}
-
-func TestEndianSwap(t *testing.T) {
- var buf bytes.Buffer
- big := &ExampleEndian{1}
- if err := PackWithOrder(&buf, big, binary.BigEndian); err != nil {
- t.Fatal(err)
- }
- little := &ExampleEndian{}
- if err := UnpackWithOrder(&buf, little, binary.LittleEndian); err != nil {
- t.Fatal(err)
- }
- if little.T != 256 {
- t.Fatal("big -> little conversion failed")
- }
-}
-
-func TestNilValue(t *testing.T) {
- var buf bytes.Buffer
- if err := Pack(&buf, nil); err == nil {
- t.Fatal("failed throw error for bad struct value")
- }
- if err := Unpack(&buf, nil); err == nil {
- t.Fatal("failed throw error for bad struct value")
- }
- if _, err := Sizeof(nil); err == nil {
- t.Fatal("failed to throw error for bad struct value")
- }
-}
-
-type sliceUnderrun struct {
- Str string `struc:"[10]byte"`
- Arr []uint16 `struc:"[10]uint16"`
-}
-
-func TestSliceUnderrun(t *testing.T) {
- var buf bytes.Buffer
- v := sliceUnderrun{
- Str: "foo",
- Arr: []uint16{1, 2, 3},
- }
- if err := Pack(&buf, &v); err != nil {
- t.Fatal(err)
- }
-}