mirror of
https://github.com/json-iterator/go.git
synced 2025-05-19 21:53:05 +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 {
|
func (any *nilAny) ToString() string {
|
||||||
return "nil"
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (any *nilAny) WriteTo(stream *Stream) {
|
func (any *nilAny) WriteTo(stream *Stream) {
|
||||||
|
@ -197,7 +197,9 @@ func (iter *Iterator) skipFixedBytes(n int) {
|
|||||||
if (iter.head >= iter.tail) {
|
if (iter.head >= iter.tail) {
|
||||||
more := iter.head - iter.tail;
|
more := iter.head - iter.tail;
|
||||||
if !iter.loadMore() {
|
if !iter.loadMore() {
|
||||||
|
if more > 0 {
|
||||||
iter.reportError("skipFixedBytes", "unexpected end");
|
iter.reportError("skipFixedBytes", "unexpected end");
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
iter.head += more;
|
iter.head += more;
|
||||||
|
@ -3,6 +3,7 @@ package jsoniter
|
|||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
"testing"
|
"testing"
|
||||||
|
"github.com/json-iterator/go/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test_string_end(t *testing.T) {
|
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) {
|
func Test_skip_string(t *testing.T) {
|
||||||
|
should := require.New(t)
|
||||||
iter := ParseString(`"abc`)
|
iter := ParseString(`"abc`)
|
||||||
iter.skipString()
|
iter.skipString()
|
||||||
if iter.head != 1 {
|
should.Equal(1, iter.head)
|
||||||
t.Fatal(iter.head)
|
|
||||||
}
|
|
||||||
iter = ParseString(`\""abc`)
|
iter = ParseString(`\""abc`)
|
||||||
iter.skipString()
|
iter.skipString()
|
||||||
if iter.head != 3 {
|
should.Equal(3, iter.head)
|
||||||
t.Fatal(iter.head)
|
|
||||||
}
|
|
||||||
reader := &StagedReader{
|
reader := &StagedReader{
|
||||||
r1: `abc`,
|
r1: `abc`,
|
||||||
r2: `"`,
|
r2: `"`,
|
||||||
}
|
}
|
||||||
iter = Parse(reader, 4096)
|
iter = Parse(reader, 4096)
|
||||||
iter.skipString()
|
iter.skipString()
|
||||||
if iter.head != 1 {
|
should.Equal(1, iter.head)
|
||||||
t.Fatal(iter.head)
|
|
||||||
}
|
|
||||||
reader = &StagedReader{
|
reader = &StagedReader{
|
||||||
r1: `abc`,
|
r1: `abc`,
|
||||||
r2: `1"`,
|
r2: `1"`,
|
||||||
}
|
}
|
||||||
iter = Parse(reader, 4096)
|
iter = Parse(reader, 4096)
|
||||||
iter.skipString()
|
iter.skipString()
|
||||||
if iter.head != 2 {
|
should.Equal(2, iter.head)
|
||||||
t.Fatal(iter.head)
|
|
||||||
}
|
|
||||||
reader = &StagedReader{
|
reader = &StagedReader{
|
||||||
r1: `abc\`,
|
r1: `abc\`,
|
||||||
r2: `"`,
|
r2: `"`,
|
||||||
}
|
}
|
||||||
iter = Parse(reader, 4096)
|
iter = Parse(reader, 4096)
|
||||||
iter.skipString()
|
iter.skipString()
|
||||||
if iter.Error != io.EOF {
|
should.NotNil(iter.Error)
|
||||||
t.Fatal(iter.Error)
|
|
||||||
}
|
|
||||||
reader = &StagedReader{
|
reader = &StagedReader{
|
||||||
r1: `abc\`,
|
r1: `abc\`,
|
||||||
r2: `""`,
|
r2: `""`,
|
||||||
}
|
}
|
||||||
iter = Parse(reader, 4096)
|
iter = Parse(reader, 4096)
|
||||||
iter.skipString()
|
iter.skipString()
|
||||||
if iter.head != 2 {
|
should.Equal(2, iter.head)
|
||||||
t.Fatal(iter.head)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_skip_object(t *testing.T) {
|
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())
|
should.Equal("{\n \"hello\":1,\n \"world\":2\n}", buf.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
type TestObj struct {
|
func Benchmark_jsoniter_object(b *testing.B) {
|
||||||
|
type TestObj struct {
|
||||||
Field1 string
|
Field1 string
|
||||||
Field2 uint64
|
Field2 uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
func Benchmark_jsoniter_object(b *testing.B) {
|
|
||||||
for n := 0; n < b.N; n++ {
|
for n := 0; n < b.N; n++ {
|
||||||
iter := ParseString(`{"field1": "1", "field2": 2}`)
|
iter := ParseString(`{"field1": "1", "field2": 2}`)
|
||||||
obj := TestObj{}
|
obj := TestObj{}
|
||||||
@ -244,6 +243,10 @@ func Benchmark_jsoniter_object(b *testing.B) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Benchmark_json_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++ {
|
for n := 0; n < b.N; n++ {
|
||||||
result := TestObj{}
|
result := TestObj{}
|
||||||
json.Unmarshal([]byte(`{"field1": "1", "field2": 2}`), &result)
|
json.Unmarshal([]byte(`{"field1": "1", "field2": 2}`), &result)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user