123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package skip_tests
- import (
- "encoding/json"
- "errors"
- "github.com/json-iterator/go"
- "github.com/stretchr/testify/require"
- "io"
- "reflect"
- "testing"
- )
- type testCase struct {
- ptr interface{}
- inputs []string
- }
- var testCases []testCase
- func Test_skip(t *testing.T) {
- for _, testCase := range testCases {
- valType := reflect.TypeOf(testCase.ptr).Elem()
- for _, input := range testCase.inputs {
- t.Run(input, func(t *testing.T) {
- should := require.New(t)
- ptrVal := reflect.New(valType)
- stdErr := json.Unmarshal([]byte(input), ptrVal.Interface())
- 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)
- }
- })
- }
- }
- }
|