You've already forked json-iterator
mirror of
https://github.com/json-iterator/go.git
synced 2025-11-26 22:40:13 +02:00
implement skip number and string strictly
This commit is contained in:
16
skip_tests/number/inputs.go
Normal file
16
skip_tests/number/inputs.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package test
|
||||
|
||||
type typeForTest float64
|
||||
|
||||
var inputs = []string{
|
||||
"+1", // invalid
|
||||
"-a", // invalid
|
||||
"-\x00", // invalid, zero byte
|
||||
"0.1", // valid
|
||||
"0..1", // invalid, more dot
|
||||
"1e+1", // valid
|
||||
"1+1", // invalid
|
||||
"1E1", // valid, e or E
|
||||
"1ee1", // invalid
|
||||
"100a", // invalid
|
||||
}
|
||||
34
skip_tests/number/skip_test.go
Normal file
34
skip_tests/number/skip_test.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io"
|
||||
"testing"
|
||||
"github.com/stretchr/testify/require"
|
||||
"github.com/json-iterator/go"
|
||||
"errors"
|
||||
)
|
||||
|
||||
func Test_skip(t *testing.T) {
|
||||
for _, input := range inputs {
|
||||
t.Run(input, func(t *testing.T) {
|
||||
should := require.New(t)
|
||||
dst := typeForTest(0)
|
||||
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)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
14
skip_tests/string/inputs.go
Normal file
14
skip_tests/string/inputs.go
Normal file
@@ -0,0 +1,14 @@
|
||||
package test
|
||||
|
||||
type typeForTest string
|
||||
|
||||
var inputs = []string{
|
||||
`""`, // valid
|
||||
`"hello"`, // valid
|
||||
`"`, // invalid
|
||||
`"\"`, // invalid
|
||||
`"\x00"`, // invalid
|
||||
"\"\x00\"", // invalid
|
||||
"\"\t\"", // invalid
|
||||
`"\t"`, // valid
|
||||
}
|
||||
1
skip_tests/string/skip_test.go
Symbolic link
1
skip_tests/string/skip_test.go
Symbolic link
@@ -0,0 +1 @@
|
||||
../number/skip_test.go
|
||||
Reference in New Issue
Block a user