1
0
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:
Tao Wen 2017-02-12 22:49:45 +08:00
parent 9670a03165
commit 9d1feb5431
4 changed files with 20 additions and 25 deletions

View File

@ -49,7 +49,7 @@ func (any *nilAny) ToFloat64() float64 {
}
func (any *nilAny) ToString() string {
return "nil"
return ""
}
func (any *nilAny) WriteTo(stream *Stream) {

View File

@ -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;

View File

@ -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) {

View File

@ -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)