aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/json/decode_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/encoding/json/decode_test.go')
-rw-r--r--src/encoding/json/decode_test.go54
1 files changed, 0 insertions, 54 deletions
diff --git a/src/encoding/json/decode_test.go b/src/encoding/json/decode_test.go
index a62488d447..5ac1022207 100644
--- a/src/encoding/json/decode_test.go
+++ b/src/encoding/json/decode_test.go
@@ -2569,57 +2569,3 @@ func TestUnmarshalMaxDepth(t *testing.T) {
}
}
}
-
-func TestUnmarshalMapPointerElem(t *testing.T) {
- type S struct{ Unchanged, Changed int }
- input := []byte(`{"S":{"Changed":5}}`)
- want := S{1, 5}
-
- // First, a map with struct pointer elements. The key-value pair exists,
- // so reuse the existing value.
- s := &S{1, 2}
- ptrMap := map[string]*S{"S": s}
- if err := Unmarshal(input, &ptrMap); err != nil {
- t.Fatal(err)
- }
- if s != ptrMap["S"] {
- t.Fatal("struct pointer element in map was completely replaced")
- }
- if got := *s; got != want {
- t.Fatalf("want %#v, got %#v", want, got)
- }
-
- // Second, a map with struct elements. The key-value pair exists, but
- // the value isn't addresable, so make a copy and use that.
- s = &S{1, 2}
- strMap := map[string]S{"S": *s}
- if err := Unmarshal(input, &strMap); err != nil {
- t.Fatal(err)
- }
- if *s == strMap["S"] {
- t.Fatal("struct element in map wasn't copied")
- }
- if got := strMap["S"]; got != want {
- t.Fatalf("want %#v, got %#v", want, got)
- }
-
- // Finally, check the cases where the key-value pair exists, but the
- // value is zero.
- want = S{0, 5}
-
- ptrMap = map[string]*S{"S": nil}
- if err := Unmarshal(input, &ptrMap); err != nil {
- t.Fatal(err)
- }
- if got := *ptrMap["S"]; got != want {
- t.Fatalf("want %#v, got %#v", want, got)
- }
-
- strMap = map[string]S{"S": {}}
- if err := Unmarshal(input, &strMap); err != nil {
- t.Fatal(err)
- }
- if got := strMap["S"]; got != want {
- t.Fatalf("want %#v, got %#v", want, got)
- }
-}