summaryrefslogtreecommitdiff
path: root/compat/json/borrowed_decode_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'compat/json/borrowed_decode_test.go')
-rw-r--r--compat/json/borrowed_decode_test.go37
1 files changed, 15 insertions, 22 deletions
diff --git a/compat/json/borrowed_decode_test.go b/compat/json/borrowed_decode_test.go
index 306f85e..4b84718 100644
--- a/compat/json/borrowed_decode_test.go
+++ b/compat/json/borrowed_decode_test.go
@@ -455,8 +455,8 @@ var unmarshalTests = []unmarshalTest{
{in: `{"X": "foo", "Y"}`, err: &SyntaxError{"invalid character '}' after object key", 17}},
{in: `[1, 2, 3+]`, err: &SyntaxError{"invalid character '+' after array element", 9}},
{in: `{"X":12x}`, err: &SyntaxError{"invalid character 'x' after object key:value pair", 8}, useNumber: true},
- {in: `[2, 3`, err: &SyntaxError{Err: "unexpected end of JSON input", Offset: 5}}, // MODIFIED
- {in: `{"F3": -}`, ptr: new(V), out: V{F3: Number("-")}, err: &SyntaxError{Err: "invalid character '}' in numeric literal", Offset: 9}}, // MODIFIED
+ {in: `[2, 3`, err: &SyntaxError{msg: "unexpected end of JSON input", Offset: 5}},
+ {in: `{"F3": -}`, ptr: new(V), out: V{F3: Number("-")}, err: &SyntaxError{msg: "invalid character '}' in numeric literal", Offset: 9}},
// raw value errors
{in: "\x01 42", err: &SyntaxError{"invalid character '\\x01' looking for beginning of value", 1}},
@@ -957,7 +957,7 @@ var unmarshalTests = []unmarshalTest{
in: `invalid`,
ptr: new(Number),
err: &SyntaxError{
- Err: "invalid character 'i' looking for beginning of value", // MODIFIED
+ msg: "invalid character 'i' looking for beginning of value",
Offset: 1,
},
},
@@ -1040,7 +1040,6 @@ func TestMarshalNumberZeroVal(t *testing.T) {
}
func TestMarshalEmbeds(t *testing.T) {
- t.Skip() // TODO
top := &Top{
Level0: 1,
Embed0: Embed0{
@@ -1089,17 +1088,16 @@ func equalError(a, b error) bool {
if b == nil {
return a == nil
}
- return true // a.Error() == b.Error() // MODIFIED
+ return a.Error() == b.Error()
}
func TestUnmarshal(t *testing.T) {
- t.Skip() // TODO
for i, tt := range unmarshalTests {
scan := lowmemjson.ReEncoder{Out: io.Discard} // MODIFIED
in := []byte(tt.in)
- if _, err := scan.Write(in); err != nil {
+ if err := checkValid(in, &scan); err != nil {
if !equalError(err, tt.err) {
- t.Errorf("#%d: checkValid: %#v\n\n%s", i, err, tt.in)
+ t.Errorf("#%d: checkValid: %#v", i, err)
continue
}
}
@@ -1142,11 +1140,11 @@ func TestUnmarshal(t *testing.T) {
continue
}
if !reflect.DeepEqual(v.Elem().Interface(), tt.out) {
- t.Errorf("#%d: mismatch\nhave: %#+v\nwant: %#+v\n\n%s", i, v.Elem().Interface(), tt.out, tt.in)
+ t.Errorf("#%d: mismatch\nhave: %#+v\nwant: %#+v", i, v.Elem().Interface(), tt.out)
data, _ := Marshal(v.Elem().Interface())
- println(string(data))
+ t.Log(string(data)) // MODIFIED
data, _ = Marshal(tt.out)
- println(string(data))
+ t.Log(string(data)) // MODIFIED
continue
}
@@ -1311,7 +1309,7 @@ func TestErrorMessageFromMisusedString(t *testing.T) {
var s WrongString
err := NewDecoder(r).Decode(&s)
got := fmt.Sprintf("%v", err)
- if err == nil { // if got != tt.err { // MODIFIED
+ if got != tt.err {
t.Errorf("%d. got err = %q, want %q", n, got, tt.err)
}
}
@@ -1742,7 +1740,6 @@ var interfaceSetTests = []struct {
}
func TestInterfaceSet(t *testing.T) {
- t.Skip() // TODO
for _, tt := range interfaceSetTests {
b := struct{ X any }{tt.pre}
blob := `{"X":` + tt.json + `}`
@@ -2015,7 +2012,7 @@ var decodeTypeErrorTests = []struct {
func TestUnmarshalTypeError(t *testing.T) {
for _, item := range decodeTypeErrorTests {
err := Unmarshal([]byte(item.src), item.dest)
- if err == nil { // if _, ok := err.(*UnmarshalTypeError); !ok { // MODIFIED
+ if _, ok := err.(*UnmarshalTypeError); !ok {
t.Errorf("expected type error for Unmarshal(%q, type %T): got %T",
item.src, item.dest, err)
}
@@ -2037,7 +2034,7 @@ func TestUnmarshalSyntax(t *testing.T) {
var x any
for _, src := range unmarshalSyntaxTests {
err := Unmarshal([]byte(src), &x)
- if err == nil { // _, ok := err.(*SyntaxError); !ok { // MODIFIED
+ if _, ok := err.(*SyntaxError); !ok {
t.Errorf("expected syntax error for Unmarshal(%q): got %T", src, err)
}
}
@@ -2202,9 +2199,9 @@ func TestInvalidUnmarshalText(t *testing.T) {
t.Errorf("Unmarshal expecting error, got nil")
continue
}
- // if got := err.Error(); got != tt.want { // MODIFIED
- // t.Errorf("Unmarshal = %q; want %q", got, tt.want) // MODIFIED
- // } // MODIFIED
+ if got := err.Error(); got != tt.want {
+ t.Errorf("Unmarshal = %q; want %q", got, tt.want)
+ }
}
}
@@ -2243,7 +2240,6 @@ func TestInvalidStringOption(t *testing.T) {
// (Issue 28145) If the embedded struct is given an explicit name and has
// exported methods, don't cause a panic trying to get its value.
func TestUnmarshalEmbeddedUnexported(t *testing.T) {
- t.Skip() // TODO
type (
embed1 struct{ Q int }
embed2 struct{ Q int }
@@ -2365,7 +2361,6 @@ func TestUnmarshalEmbeddedUnexported(t *testing.T) {
}
func TestUnmarshalErrorAfterMultipleJSON(t *testing.T) {
- t.Skip() // TODO
tests := []struct {
in string
err error
@@ -2417,7 +2412,6 @@ func TestUnmarshalPanic(t *testing.T) {
// The decoder used to hang if decoding into an interface pointing to its own address.
// See golang.org/issues/31740.
func TestUnmarshalRecursivePointer(t *testing.T) {
- t.Skip() // TODO
var v any
v = &v
data := []byte(`{"a": "b"}`)
@@ -2493,7 +2487,6 @@ func TestUnmarshalRescanLiteralMangledUnquote(t *testing.T) {
}
func TestUnmarshalMaxDepth(t *testing.T) {
- t.Skip() // TODO
testcases := []struct {
name string
data string