From 1625da24106b610f89ff7a67a11581df95f8e234 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Sun, 10 Apr 2016 10:16:41 -0700 Subject: encoding/json: marshal the RawMessage value type the same as its pointer type Fixes #14493 Updates #6458 (changes its behavior) Change-Id: I851a8113fd312dae3384e989ec2b70949dc22838 Reviewed-on: https://go-review.googlesource.com/21811 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Quentin Smith --- src/encoding/json/encode_test.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/encoding/json/encode_test.go') diff --git a/src/encoding/json/encode_test.go b/src/encoding/json/encode_test.go index 13e765afa3..507581feed 100644 --- a/src/encoding/json/encode_test.go +++ b/src/encoding/json/encode_test.go @@ -440,7 +440,9 @@ func TestIssue6458(t *testing.T) { t.Fatal(err) } - if want := `{"M":"ImZvbyI="}`; string(b) != want { + // Until Go 1.8, this generated `{"M":"ImZvbyI="}`. + // See https://github.com/golang/go/issues/14493#issuecomment-255857318 + if want := `{"M":"foo"}`; string(b) != want { t.Errorf("Marshal(x) = %#q; want %#q", b, want) } } @@ -717,3 +719,14 @@ func TestMarshalFloat(t *testing.T) { test(0, 32) test(math.Copysign(0, -1), 32) } + +func TestMarshalRawMessageValue(t *testing.T) { + const val = "\"some value\"" + b, err := Marshal(RawMessage(val)) + if err != nil { + t.Fatal(err) + } + if string(b) != val { + t.Errorf("got %q; want %q", b, val) + } +} -- cgit v1.3