array unmarshal under/overflow unit tests

make sure the behavior matches that of encoding/json
This commit is contained in:
Nicolas S. Dade
2016-09-23 21:10:22 -07:00
parent 4b3499f325
commit 1f84fdd339
2 changed files with 41 additions and 0 deletions
+22
View File
@@ -133,3 +133,25 @@ func TestSpecialCases(t *testing.T) {
}
}
}
func TestOverflowArray(t *testing.T) {
var a Arrays
err := easyjson.Unmarshal([]byte(arrayOverflowString), &a)
if err != nil {
t.Error(err)
}
if a != arrayValue {
t.Errorf("Unmarshal(%v) = %+v; want %+v", arrayOverflowString, a, arrayValue)
}
}
func TestUnderflowArray(t *testing.T) {
var a Arrays
err := easyjson.Unmarshal([]byte(arrayUnderflowString), &a)
if err != nil {
t.Error(err)
}
if a != arrayUnderflowValue {
t.Errorf("Unmarshal(%v) = %+v; want %+v", arrayUnderflowString, a, arrayUnderflowValue)
}
}
+19
View File
@@ -466,6 +466,25 @@ var arrayString = `{` +
`"EmptyIntArray":[]` +
`}`
var arrayOverflowString = `{` +
`"ByteArray":"YWJjbnNk",` +
`"EmptyByteArray":"YWJj",` +
`"IntArray":[1,2,3,4,5,6],` +
`"EmptyIntArray":[7,8]` +
`}`
var arrayUnderflowValue = Arrays{
ByteArray: [3]byte{'x', 0, 0},
EmptyByteArray: [0]byte{},
IntArray: [5]int{1, 2, 0, 0, 0},
EmptyIntArray: [0]int{},
}
var arrayUnderflowString = `{` +
`"ByteArray":"eA==",` +
`"IntArray":[1,2]` +
`}`
type Str string
type Maps struct {