2
0
Fork 0
mirror of https://github.com/ii64/sonic.git synced 2026-06-21 00:46:43 +08:00
sonic/issue_test/issue263_test.go
Yi Duan 2eae594741
fix:(native) StreamDecoder returns error when run out of buffer while skiping value (#267)
* fix:(native) StreamDecoder return error when run out of input buffer while skiping value

* refactor
2022-07-25 15:17:52 +08:00

49 lines
No EOL
855 B
Go

package issue_test
import (
`bytes`
`strings`
`testing`
`github.com/bytedance/sonic/decoder`
`github.com/stretchr/testify/require`
)
type Response struct {
Menu Menu `json:"menu"`
}
type Menu struct {
Items []*Item `json:"items"`
}
type Item struct {
ID string `json:"id"`
}
func (i *Item) UnmarshalJSON(buf []byte) error {
return nil
}
func TestIssue263(t *testing.T) {
q := `{
"menu": {
"items": [
{`+strings.Repeat(" ", 1024)+`}
]
}
}`
var response Response
require.Nil(t, decoder.NewStreamDecoder(bytes.NewReader([]byte(q))).Decode(&response))
q = `{
"menu": {
"items": [
{"a":"`+strings.Repeat("b", 2048)+`"}
]
}
}`
require.Nil(t, decoder.NewStreamDecoder(bytes.NewReader([]byte(q))).Decode(&response))
}