diff options
| author | Ondřej Surý <ondrej@sury.org> | 2011-04-20 15:44:41 +0200 | 
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2011-04-20 15:44:41 +0200 | 
| commit | 50104cc32a498f7517a51c8dc93106c51c7a54b4 (patch) | |
| tree | 47af80be259cc7c45d0eaec7d42e61fa38c8e4fb /src/pkg/json/decode_test.go | |
| parent | c072558b90f1bbedc2022b0f30c8b1ac4712538e (diff) | |
| download | golang-50104cc32a498f7517a51c8dc93106c51c7a54b4.tar.gz | |
Imported Upstream version 2011.03.07.1upstream/2011.03.07.1
Diffstat (limited to 'src/pkg/json/decode_test.go')
| -rw-r--r-- | src/pkg/json/decode_test.go | 35 | 
1 files changed, 29 insertions, 6 deletions
| diff --git a/src/pkg/json/decode_test.go b/src/pkg/json/decode_test.go index 9cb27af41..ad6026363 100644 --- a/src/pkg/json/decode_test.go +++ b/src/pkg/json/decode_test.go @@ -40,6 +40,11 @@ var (  	umtrue   = unmarshaler{true}  ) +type badTag struct { +	X string +	Y string "y" +	Z string "@#*%(#@" +}  type unmarshalTest struct {  	in  string @@ -62,6 +67,9 @@ var unmarshalTests = []unmarshalTest{  	{`{"X": [1,2,3], "Y": 4}`, new(T), T{Y: 4}, &UnmarshalTypeError{"array", reflect.Typeof("")}},  	{`{"x": 1}`, new(tx), tx{}, &UnmarshalFieldError{"x", txType, txType.Field(0)}}, +	// skip invalid tags +	{`{"X":"a", "y":"b", "Z":"c"}`, new(badTag), badTag{"a", "b", "c"}, nil}, +  	// syntax errors  	{`{"X": "foo", "Y"}`, nil, nil, SyntaxError("invalid character '}' after object key")}, @@ -164,6 +172,25 @@ func TestUnmarshalMarshal(t *testing.T) {  	}  } +func TestLargeByteSlice(t *testing.T) { +	s0 := make([]byte, 2000) +	for i := range s0 { +		s0[i] = byte(i) +	} +	b, err := Marshal(s0) +	if err != nil { +		t.Fatalf("Marshal: %v", err) +	} +	var s1 []byte +	if err := Unmarshal(b, &s1); err != nil { +		t.Fatalf("Unmarshal: %v", err) +	} +	if bytes.Compare(s0, s1) != 0 { +		t.Errorf("Marshal large byte slice") +		diff(t, s0, s1) +	} +} +  type Xint struct {  	X int  } @@ -412,11 +439,7 @@ var allValueIndent = `{  		"str25",  		"str26"  	], -	"ByteSlice": [ -		27, -		28, -		29 -	], +	"ByteSlice": "Gxwd",  	"Small": {  		"Tag": "tag30"  	}, @@ -502,7 +525,7 @@ var pallValueIndent = `{  	"EmptySlice": [],  	"NilSlice": [],  	"StringSlice": [], -	"ByteSlice": [], +	"ByteSlice": "",  	"Small": {  		"Tag": ""  	}, | 
