gitee.com/quant1x/gox@v1.7.6/encoding/binary/cstruct/tests/nil_test.go (about) 1 package tests 2 3 import ( 4 "fmt" 5 "gitee.com/quant1x/gox/encoding/binary/cstruct" 6 "testing" 7 ) 8 9 type mystruct11 struct { 10 F5 []byte 11 S0 *mystruct2 12 F18 []bool 13 F19 []int8 14 F20 []uint8 15 F21 []int16 16 F22 []uint16 17 F23 []int32 18 F24 []uint32 19 F25 []int64 20 F26 []uint64 21 F27 []float32 22 F28 []float64 23 F29 []string 24 F30 []*mystruct4 25 F31 [][]byte 26 F32 [0]int8 27 } 28 29 func Test_NIL1(t *testing.T) { 30 a := &mystruct11{} 31 buf_l, _ := cstruct.Pack(a) 32 b := &mystruct11{} 33 if err := cstruct.Unpack(buf_l, b); err != nil { 34 fmt.Println(err) 35 t.Error("出错啦!#0") 36 return 37 } 38 } 39 40 func Test_NIL2(t *testing.T) { 41 a := &mystruct11{} 42 a.S0 = &mystruct2{} 43 a.S0.F3 = 988.07 44 a.S0.F4 = "world1" 45 a.S0.S1.F5 = []byte("world1") 46 a.F30 = []*mystruct4{&mystruct4{}, nil, &mystruct4{}} 47 a.F31 = [][]byte{[]byte("hello1"), []byte{}, nil, nil, []byte{}, []byte("world2")} 48 49 buf_l, _ := cstruct.Pack(a) 50 b := &mystruct11{} 51 if err := cstruct.Unpack(buf_l, b); err != nil { 52 fmt.Println(err) 53 t.Error("出错啦!#0") 54 return 55 } 56 57 if a.S0.F3 != b.S0.F3 { 58 t.Error("出错啦!#18") 59 return 60 } 61 t.Log(b.S0.F3) 62 if a.S0.F4 != b.S0.F4 { 63 t.Error("出错啦!#19") 64 return 65 } 66 t.Log(b.S0.F4) 67 if len(a.S0.S1.F5) != len(b.S0.S1.F5) { 68 t.Error("出错啦!#20") 69 return 70 } 71 t.Log(b.S0.S1.F5) 72 for i := 0; i < len(a.S0.S1.F5); i++ { 73 if a.S0.S1.F5[i] != b.S0.S1.F5[i] { 74 t.Error("出错啦!#20") 75 return 76 } 77 } 78 79 if len(a.F30) != len(b.F30) { 80 t.Error("出错啦!#33") 81 return 82 } 83 for i := 0; i < len(a.F30); i++ { 84 if a.F30[i] != nil && a.F30[i].F6 != b.F30[i].F6 { 85 t.Error("出错啦!#33") 86 return 87 } 88 if a.F30[i] != nil && a.F30[i].F7 != b.F30[i].F7 { 89 t.Error("出错啦!#33") 90 return 91 } 92 } 93 t.Log(b.F30) 94 95 if len(a.F31) != len(b.F31) { 96 t.Error("出错啦!#34") 97 return 98 } 99 for i := 0; i < len(a.F31); i++ { 100 if string(a.F31[i]) != string(b.F31[i]) { 101 t.Error("出错啦!#34") 102 return 103 } 104 } 105 t.Log(b.F31) 106 }