From 1f84fdd33932cb16986445561ea6cf3db7166011 Mon Sep 17 00:00:00 2001 From: "Nicolas S. Dade" Date: Fri, 23 Sep 2016 21:05:30 -0700 Subject: [PATCH] array unmarshal under/overflow unit tests make sure the behavior matches that of encoding/json --- tests/basic_test.go | 22 ++++++++++++++++++++++ tests/data.go | 19 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/tests/basic_test.go b/tests/basic_test.go index 7e454ae..a5d6236 100644 --- a/tests/basic_test.go +++ b/tests/basic_test.go @@ -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) + } +} diff --git a/tests/data.go b/tests/data.go index 1694a55..0fe15d5 100644 --- a/tests/data.go +++ b/tests/data.go @@ -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 {