Skip to content

Commit b0c5899

Browse files
committed
fix: ut
1 parent 19c9367 commit b0c5899

File tree

4 files changed

+33
-32
lines changed

4 files changed

+33
-32
lines changed

src/encoding/json/decode_test.go

+21-20
Original file line numberDiff line numberDiff line change
@@ -467,21 +467,21 @@ var unmarshalTests = []struct {
467467
{CaseName: Name(""), in: `{"alphabet": "xyz"}`, ptr: new(U), err: fmt.Errorf("json: unknown field \"alphabet\""), disallowUnknownFields: true},
468468

469469
// syntax errors
470-
{CaseName: Name(""), in: `{"X": "foo", "Y"}`, err: &SyntaxError{"invalid character '}' after object key", 17}},
471-
{CaseName: Name(""), in: `[1, 2, 3+]`, err: &SyntaxError{"invalid character '+' after array element", 9}},
472-
{CaseName: Name(""), in: `{"X":12x}`, err: &SyntaxError{"invalid character 'x' after object key:value pair", 8}, useNumber: true},
470+
{CaseName: Name(""), in: `{"X": "foo", "Y"}`, err: &SyntaxError{invalidChar: '}', invalidCharContext: "after object key", Offset: 17}},
471+
{CaseName: Name(""), in: `[1, 2, 3+]`, err: &SyntaxError{invalidChar: '+', invalidCharContext: "after array element", Offset: 9}},
472+
{CaseName: Name(""), in: `{"X":12x}`, err: &SyntaxError{invalidChar: 'x', invalidCharContext: "after object key:value pair", Offset: 8}, useNumber: true},
473473
{CaseName: Name(""), in: `[2, 3`, err: &SyntaxError{msg: "unexpected end of JSON input", Offset: 5}},
474-
{CaseName: Name(""), in: `{"F3": -}`, ptr: new(V), err: &SyntaxError{msg: "invalid character '}' in numeric literal", Offset: 9}},
474+
{CaseName: Name(""), in: `{"F3": -}`, ptr: new(V), err: &SyntaxError{invalidChar: '}', invalidCharContext: "in numeric literal", Offset: 9}},
475475

476476
// raw value errors
477-
{CaseName: Name(""), in: "\x01 42", err: &SyntaxError{"invalid character '\\x01' looking for beginning of value", 1}},
478-
{CaseName: Name(""), in: " 42 \x01", err: &SyntaxError{"invalid character '\\x01' after top-level value", 5}},
479-
{CaseName: Name(""), in: "\x01 true", err: &SyntaxError{"invalid character '\\x01' looking for beginning of value", 1}},
480-
{CaseName: Name(""), in: " false \x01", err: &SyntaxError{"invalid character '\\x01' after top-level value", 8}},
481-
{CaseName: Name(""), in: "\x01 1.2", err: &SyntaxError{"invalid character '\\x01' looking for beginning of value", 1}},
482-
{CaseName: Name(""), in: " 3.4 \x01", err: &SyntaxError{"invalid character '\\x01' after top-level value", 6}},
483-
{CaseName: Name(""), in: "\x01 \"string\"", err: &SyntaxError{"invalid character '\\x01' looking for beginning of value", 1}},
484-
{CaseName: Name(""), in: " \"string\" \x01", err: &SyntaxError{"invalid character '\\x01' after top-level value", 11}},
477+
{CaseName: Name(""), in: "\x01 42", err: &SyntaxError{invalidChar: '\x01', invalidCharContext: "looking for beginning of value", Offset: 1}},
478+
{CaseName: Name(""), in: " 42 \x01", err: &SyntaxError{invalidChar: '\x01', invalidCharContext: "after top-level value", Offset: 5}},
479+
{CaseName: Name(""), in: "\x01 true", err: &SyntaxError{invalidChar: '\x01', invalidCharContext: "looking for beginning of value", Offset: 1}},
480+
{CaseName: Name(""), in: " false \x01", err: &SyntaxError{invalidChar: '\x01', invalidCharContext: "after top-level value", Offset: 8}},
481+
{CaseName: Name(""), in: "\x01 1.2", err: &SyntaxError{invalidChar: '\x01', invalidCharContext: "looking for beginning of value", Offset: 1}},
482+
{CaseName: Name(""), in: " 3.4 \x01", err: &SyntaxError{invalidChar: '\x01', invalidCharContext: "after top-level value", Offset: 6}},
483+
{CaseName: Name(""), in: "\x01 \"string\"", err: &SyntaxError{invalidChar: '\x01', invalidCharContext: "looking for beginning of value", Offset: 1}},
484+
{CaseName: Name(""), in: " \"string\" \x01", err: &SyntaxError{invalidChar: '\x01', invalidCharContext: "after top-level value", Offset: 11}},
485485

486486
// array tests
487487
{CaseName: Name(""), in: `[1, 2, 3]`, ptr: new([3]int), out: [3]int{1, 2, 3}},
@@ -1096,8 +1096,9 @@ var unmarshalTests = []struct {
10961096
in: `invalid`,
10971097
ptr: new(Number),
10981098
err: &SyntaxError{
1099-
msg: "invalid character 'i' looking for beginning of value",
1100-
Offset: 1,
1099+
invalidChar: 'i',
1100+
invalidCharContext: "looking for beginning of value",
1101+
Offset: 1,
11011102
},
11021103
},
11031104
{
@@ -1178,7 +1179,7 @@ var unmarshalTests = []struct {
11781179
CaseName: Name(""),
11791180
in: `[1,2,true,4,5}`,
11801181
ptr: new([]int),
1181-
err: &SyntaxError{msg: "invalid character '}' after array element", Offset: 14},
1182+
err: &SyntaxError{invalidChar: '}', invalidCharContext: "after array element", Offset: 14},
11821183
},
11831184
{
11841185
CaseName: Name(""),
@@ -2589,23 +2590,23 @@ func TestUnmarshalErrorAfterMultipleJSON(t *testing.T) {
25892590
}{{
25902591
CaseName: Name(""),
25912592
in: `1 false null :`,
2592-
err: &SyntaxError{"invalid character ':' looking for beginning of value", 14},
2593+
err: &SyntaxError{invalidChar: ':', invalidCharContext: "looking for beginning of value", Offset: 14},
25932594
}, {
25942595
CaseName: Name(""),
25952596
in: `1 [] [,]`,
2596-
err: &SyntaxError{"invalid character ',' looking for beginning of value", 7},
2597+
err: &SyntaxError{invalidChar: ',', invalidCharContext: "looking for beginning of value", Offset: 7},
25972598
}, {
25982599
CaseName: Name(""),
25992600
in: `1 [] [true:]`,
2600-
err: &SyntaxError{"invalid character ':' after array element", 11},
2601+
err: &SyntaxError{invalidChar: ':', invalidCharContext: "after array element", Offset: 11},
26012602
}, {
26022603
CaseName: Name(""),
26032604
in: `1 {} {"x"=}`,
2604-
err: &SyntaxError{"invalid character '=' after object key", 14},
2605+
err: &SyntaxError{invalidChar: '=', invalidCharContext: "after object key", Offset: 14},
26052606
}, {
26062607
CaseName: Name(""),
26072608
in: `falsetruenul#`,
2608-
err: &SyntaxError{"invalid character '#' in literal null (expecting 'l')", 13},
2609+
err: &SyntaxError{invalidChar: '#', invalidCharContext: "in literal null (expecting 'l')", Offset: 13},
26092610
}}
26102611
for _, tt := range tests {
26112612
t.Run(tt.Name, func(t *testing.T) {

src/encoding/json/scanner_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@ func TestIndentErrors(t *testing.T) {
190190
in string
191191
err error
192192
}{
193-
{Name(""), `{"X": "foo", "Y"}`, &SyntaxError{"invalid character '}' after object key", 17}},
194-
{Name(""), `{"X": "foo" "Y": "bar"}`, &SyntaxError{"invalid character '\"' after object key:value pair", 13}},
193+
{Name(""), `{"X": "foo", "Y"}`, &SyntaxError{invalidChar: '}', invalidCharContext: "after object key", Offset: 17}},
194+
{Name(""), `{"X": "foo" "Y": "bar"}`, &SyntaxError{invalidChar: '"', invalidCharContext: "after object key:value pair", Offset: 13}},
195195
}
196196
for _, tt := range tests {
197197
t.Run(tt.Name, func(t *testing.T) {

src/encoding/json/stream.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -463,17 +463,17 @@ func (dec *Decoder) tokenError(c byte) (Token, error) {
463463
var context string
464464
switch dec.tokenState {
465465
case tokenTopValue:
466-
context = " looking for beginning of value"
466+
context = "looking for beginning of value"
467467
case tokenArrayStart, tokenArrayValue, tokenObjectValue:
468-
context = " looking for beginning of value"
468+
context = "looking for beginning of value"
469469
case tokenArrayComma:
470-
context = " after array element"
470+
context = "after array element"
471471
case tokenObjectKey:
472-
context = " looking for beginning of object key string"
472+
context = "looking for beginning of object key string"
473473
case tokenObjectColon:
474-
context = " after object key"
474+
context = "after object key"
475475
case tokenObjectComma:
476-
context = " after object key:value pair"
476+
context = "after object key:value pair"
477477
}
478478
return nil, &SyntaxError{invalidChar: c, invalidCharContext: context, Offset: dec.InputOffset()}
479479
}

src/encoding/json/stream_test.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -444,18 +444,18 @@ func TestDecodeInStream(t *testing.T) {
444444
{CaseName: Name(""), json: ` [{"a": 1} {"a": 2}] `, expTokens: []any{
445445
Delim('['),
446446
decodeThis{map[string]any{"a": float64(1)}},
447-
decodeThis{&SyntaxError{"expected comma after array element", 11}},
447+
decodeThis{&SyntaxError{"expected comma after array element", 11, "", 0}},
448448
}},
449449
{CaseName: Name(""), json: `{ "` + strings.Repeat("a", 513) + `" 1 }`, expTokens: []any{
450450
Delim('{'), strings.Repeat("a", 513),
451-
decodeThis{&SyntaxError{"expected colon after object key", 518}},
451+
decodeThis{&SyntaxError{"expected colon after object key", 518, "", 0}},
452452
}},
453453
{CaseName: Name(""), json: `{ "\a" }`, expTokens: []any{
454454
Delim('{'),
455-
&SyntaxError{"invalid character 'a' in string escape code", 3},
455+
&SyntaxError{invalidChar: 'a', invalidCharContext: "in string escape code", Offset: 3},
456456
}},
457457
{CaseName: Name(""), json: ` \a`, expTokens: []any{
458-
&SyntaxError{"invalid character '\\\\' looking for beginning of value", 1},
458+
&SyntaxError{invalidChar: '\\', invalidCharContext: "looking for beginning of value", Offset: 1},
459459
}},
460460
}
461461
for _, tt := range tests {

0 commit comments

Comments
 (0)