@@ -139,14 +139,14 @@ func TestArray(t *testing.T) {
139139 t .Parallel ()
140140
141141 input := tester.ArrayTestData {
142- "foo" ,
143- [2 ]string {"foo" , "bar" },
144- [2 ]int32 {1 , 2 },
145- [2 ]int64 {1 , 2 },
146- [2 ]uint32 {1 , 2 },
147- [2 ]uint64 {1 , 2 },
148- [2 ]float32 {1 , 2 },
149- [2 ]float64 {1 , 2 },
142+ Vfoo : "foo" ,
143+ Vbar : [2 ]string {"foo" , "bar" },
144+ Vint32Array : [2 ]int32 {1 , 2 },
145+ Vint64Array : [2 ]int64 {1 , 2 },
146+ Vuint32Array : [2 ]uint32 {1 , 2 },
147+ Vuint64Array : [2 ]uint64 {1 , 2 },
148+ Vfloat32Array : [2 ]float32 {1 , 2 },
149+ Vfloat64Array : [2 ]float64 {1 , 2 },
150150 }
151151 inputBuf , _ := newStructEncoder (0x3f , structEncoderOptionRoot (utils .RootToken )).Encode (input )
152152
@@ -170,14 +170,46 @@ func TestSlice(t *testing.T) {
170170 t .Parallel ()
171171
172172 input := tester.SliceTestData {
173- "foo" ,
174- []string {"foo" , "bar" },
175- []int32 {1 , 2 },
176- []int64 {1 , 2 },
177- []uint32 {1 , 2 },
178- []uint64 {1 , 2 },
179- []float32 {1 , 2 },
180- []float64 {1 , 2 },
173+ Vfoo : "foo" ,
174+ Vbar : []string {"foo" , "bar" },
175+ Vint32Slice : []int32 {1 , 2 },
176+ Vint64Slice : []int64 {1 , 2 },
177+ Vuint32Slice : []uint32 {1 , 2 },
178+ Vuint64Slice : []uint64 {1 , 2 },
179+ Vfloat32Slice : []float32 {1 , 2 },
180+ Vfloat64Slice : []float64 {1 , 2 },
181+ }
182+
183+ inputBuf , _ := newStructEncoder (0x3f , structEncoderOptionRoot (utils .RootToken )).Encode (input )
184+
185+ var result tester.SliceTestData
186+ _ , err := newStructDecoder (& result ).Decode (inputBuf )
187+ if err != nil {
188+ t .Errorf ("got an err: %s" , err .Error ())
189+ t .FailNow ()
190+ }
191+
192+ testSliceString (t , result .Vbar , input .Vbar )
193+ testSliceInt32 (t , result .Vint32Slice , input .Vint32Slice )
194+ testSliceInt64 (t , result .Vint64Slice , input .Vint64Slice )
195+ testSliceUint32 (t , result .Vuint32Slice , input .Vuint32Slice )
196+ testSliceUint64 (t , result .Vuint64Slice , input .Vuint64Slice )
197+ testSliceFloat32 (t , result .Vfloat32Slice , input .Vfloat32Slice )
198+ testSliceFloat64 (t , result .Vfloat64Slice , input .Vfloat64Slice )
199+ }
200+
201+ func TestEmptySlice (t * testing.T ) {
202+ t .Parallel ()
203+
204+ input := tester.SliceTestData {
205+ Vfoo : "foo" ,
206+ Vbar : []string {},
207+ Vint32Slice : []int32 {},
208+ Vint64Slice : []int64 {},
209+ Vuint32Slice : []uint32 {},
210+ Vuint64Slice : []uint64 {},
211+ Vfloat32Slice : []float32 {},
212+ Vfloat64Slice : []float64 {},
181213 }
182214
183215 inputBuf , _ := newStructEncoder (0x3f , structEncoderOptionRoot (utils .RootToken )).Encode (input )
@@ -373,9 +405,12 @@ func TestRootSliceWithSliceStruct(t *testing.T) {
373405func TestNested (t * testing.T ) {
374406 t .Parallel ()
375407
376- input := tester.NestedTestData {tester.Sub1NestedTestData {tester.Sub2NestedTestData {tester.Sub3NestedTestData {
377- BasicList : []tester.BasicTestData {newBasic (), newBasic ()},
378- }}}}
408+ input := tester.NestedTestData {
409+ SubNested : tester.Sub1NestedTestData {
410+ SubNested : tester.Sub2NestedTestData {
411+ SubNested : tester.Sub3NestedTestData {
412+ BasicList : []tester.BasicTestData {newBasic (), newBasic ()},
413+ }}}}
379414
380415 inputBuf , _ := newStructEncoder (0x3f , structEncoderOptionRoot (utils .RootToken )).Encode (input )
381416
0 commit comments