Browse Source

fix tests

Tao Wen 8 years ago
parent
commit
9d1feb5431
4 changed files with 20 additions and 25 deletions
  1. 1 1
      feature_any_nil.go
  2. 3 1
      feature_iter_skip.go
  3. 8 18
      jsoniter_find_end_test.go
  4. 8 5
      jsoniter_object_test.go

+ 1 - 1
feature_any_nil.go

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

+ 3 - 1
feature_iter_skip.go

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

+ 8 - 18
jsoniter_find_end_test.go

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

+ 8 - 5
jsoniter_object_test.go

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