|
|
@@ -0,0 +1,34 @@
|
|
|
+package test
|
|
|
+
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+ "errors"
|
|
|
+ "github.com/json-iterator/go"
|
|
|
+ "github.com/stretchr/testify/require"
|
|
|
+ "io"
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+func Test_skip(t *testing.T) {
|
|
|
+ for _, input := range inputs {
|
|
|
+ t.Run(input, func(t *testing.T) {
|
|
|
+ should := require.New(t)
|
|
|
+ var dst typeForTest
|
|
|
+ stdErr := json.Unmarshal([]byte(input), &dst)
|
|
|
+ iter := jsoniter.ParseString(jsoniter.ConfigDefault, input)
|
|
|
+ iter.Skip()
|
|
|
+ iter.ReadNil() // trigger looking forward
|
|
|
+ err := iter.Error
|
|
|
+ if err == io.EOF {
|
|
|
+ err = nil
|
|
|
+ } else {
|
|
|
+ err = errors.New("remaining bytes")
|
|
|
+ }
|
|
|
+ if stdErr == nil {
|
|
|
+ should.Nil(err)
|
|
|
+ } else {
|
|
|
+ should.NotNil(err)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+}
|