mirror of
https://github.com/json-iterator/go.git
synced 2025-03-23 21:09:11 +02:00
fix tests
This commit is contained in:
parent
9670a03165
commit
9d1feb5431
@ -49,7 +49,7 @@ func (any *nilAny) ToFloat64() float64 {
|
||||
}
|
||||
|
||||
func (any *nilAny) ToString() string {
|
||||
return "nil"
|
||||
return ""
|
||||
}
|
||||
|
||||
func (any *nilAny) WriteTo(stream *Stream) {
|
||||
|
@ -197,7 +197,9 @@ func (iter *Iterator) skipFixedBytes(n int) {
|
||||
if (iter.head >= iter.tail) {
|
||||
more := iter.head - iter.tail;
|
||||
if !iter.loadMore() {
|
||||
iter.reportError("skipFixedBytes", "unexpected end");
|
||||
if more > 0 {
|
||||
iter.reportError("skipFixedBytes", "unexpected end");
|
||||
}
|
||||
return
|
||||
}
|
||||
iter.head += more;
|
||||
|
@ -3,6 +3,7 @@ package jsoniter
|
||||
import (
|
||||
"io"
|
||||
"testing"
|
||||
"github.com/json-iterator/go/require"
|
||||
)
|
||||
|
||||
func Test_string_end(t *testing.T) {
|
||||
@ -89,52 +90,41 @@ func (reader *StagedReader) Read(p []byte) (n int, err error) {
|
||||
}
|
||||
|
||||
func Test_skip_string(t *testing.T) {
|
||||
should := require.New(t)
|
||||
iter := ParseString(`"abc`)
|
||||
iter.skipString()
|
||||
if iter.head != 1 {
|
||||
t.Fatal(iter.head)
|
||||
}
|
||||
should.Equal(1, iter.head)
|
||||
iter = ParseString(`\""abc`)
|
||||
iter.skipString()
|
||||
if iter.head != 3 {
|
||||
t.Fatal(iter.head)
|
||||
}
|
||||
should.Equal(3, iter.head)
|
||||
reader := &StagedReader{
|
||||
r1: `abc`,
|
||||
r2: `"`,
|
||||
}
|
||||
iter = Parse(reader, 4096)
|
||||
iter.skipString()
|
||||
if iter.head != 1 {
|
||||
t.Fatal(iter.head)
|
||||
}
|
||||
should.Equal(1, iter.head)
|
||||
reader = &StagedReader{
|
||||
r1: `abc`,
|
||||
r2: `1"`,
|
||||
}
|
||||
iter = Parse(reader, 4096)
|
||||
iter.skipString()
|
||||
if iter.head != 2 {
|
||||
t.Fatal(iter.head)
|
||||
}
|
||||
should.Equal(2, iter.head)
|
||||
reader = &StagedReader{
|
||||
r1: `abc\`,
|
||||
r2: `"`,
|
||||
}
|
||||
iter = Parse(reader, 4096)
|
||||
iter.skipString()
|
||||
if iter.Error != io.EOF {
|
||||
t.Fatal(iter.Error)
|
||||
}
|
||||
should.NotNil(iter.Error)
|
||||
reader = &StagedReader{
|
||||
r1: `abc\`,
|
||||
r2: `""`,
|
||||
}
|
||||
iter = Parse(reader, 4096)
|
||||
iter.skipString()
|
||||
if iter.head != 2 {
|
||||
t.Fatal(iter.head)
|
||||
}
|
||||
should.Equal(2, iter.head)
|
||||
}
|
||||
|
||||
func Test_skip_object(t *testing.T) {
|
||||
|
@ -221,12 +221,11 @@ func Test_write_object(t *testing.T) {
|
||||
should.Equal("{\n \"hello\":1,\n \"world\":2\n}", buf.String())
|
||||
}
|
||||
|
||||
type TestObj struct {
|
||||
Field1 string
|
||||
Field2 uint64
|
||||
}
|
||||
|
||||
func Benchmark_jsoniter_object(b *testing.B) {
|
||||
type TestObj struct {
|
||||
Field1 string
|
||||
Field2 uint64
|
||||
}
|
||||
for n := 0; n < b.N; n++ {
|
||||
iter := ParseString(`{"field1": "1", "field2": 2}`)
|
||||
obj := TestObj{}
|
||||
@ -244,6 +243,10 @@ func Benchmark_jsoniter_object(b *testing.B) {
|
||||
}
|
||||
|
||||
func Benchmark_json_object(b *testing.B) {
|
||||
type TestObj struct {
|
||||
Field1 string
|
||||
Field2 uint64
|
||||
}
|
||||
for n := 0; n < b.N; n++ {
|
||||
result := TestObj{}
|
||||
json.Unmarshal([]byte(`{"field1": "1", "field2": 2}`), &result)
|
||||
|
Loading…
x
Reference in New Issue
Block a user