From d7f9d03638a68e2632400b75ecfaa71f35a33d88 Mon Sep 17 00:00:00 2001 From: Ivan Krasin Date: Wed, 6 Jan 2010 07:25:17 -0800 Subject: Propagate error to the caller in json.Marshal. Fixes issue 445. R=rsc, imkrasin CC=golang-dev http://codereview.appspot.com/179125 Committer: Russ Cox --- src/pkg/json/struct_test.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/pkg/json/struct_test.go') diff --git a/src/pkg/json/struct_test.go b/src/pkg/json/struct_test.go index 9a928f7d0..f1440c413 100644 --- a/src/pkg/json/struct_test.go +++ b/src/pkg/json/struct_test.go @@ -175,6 +175,12 @@ type marshalTest struct { out string } +type MTE string + +type OneField struct { + a int +} + var marshalTests = []marshalTest{ // basic string marshalTest{nil, "null"}, @@ -201,6 +207,9 @@ var marshalTests = []marshalTest{ `{"a":1,"b":"hello"}`, }, marshalTest{map[string][]int{"3": []int{1, 2, 3}}, `{"3":[1,2,3]}`}, + marshalTest{map[string]*MTE{"hi": nil}, `{"hi":null}`}, + marshalTest{map[string]interface{}{"hi": 3}, `{"hi":3}`}, + marshalTest{&OneField{3}, `{"a":3}`}, } func TestMarshal(t *testing.T) { @@ -224,11 +233,14 @@ type marshalErrorTest struct { error string } -type MTE string +type ChanVal struct { + C chan int +} var marshalErrorTests = []marshalErrorTest{ marshalErrorTest{map[chan int]string{make(chan int): "one"}, "json cannot encode value of type map[chan int] string"}, - marshalErrorTest{map[string]*MTE{"hi": nil}, "json cannot encode value of type *json.MTE"}, + marshalErrorTest{make(chan int, 100), "json cannot encode value of type chan int"}, + marshalErrorTest{new(ChanVal), "json cannot encode value of type chan int"}, } func TestMarshalError(t *testing.T) { -- cgit v1.2.3