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