diff options
author | Russ Cox <rsc@golang.org> | 2016-10-12 15:55:02 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2016-10-13 17:30:39 +0000 |
commit | 0da30d5cbdd092499fe199c212f8799fd0cc676e (patch) | |
tree | c45d9157bf77a2dba16adced85d65fe662b09eda /src/encoding/json/decode_test.go | |
parent | 3c1e1c30fdfbdaf7cf5f947c53245f1c28e56f91 (diff) | |
download | go-git-0da30d5cbdd092499fe199c212f8799fd0cc676e.tar.gz |
encoding/json: handle misspelled JSON literals in ,string
Fixes #15146.
Change-Id: I229611b9cc995a1391681c492c4d742195c787ea
Reviewed-on: https://go-review.googlesource.com/30943
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/encoding/json/decode_test.go')
-rw-r--r-- | src/encoding/json/decode_test.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/encoding/json/decode_test.go b/src/encoding/json/decode_test.go index 37dbfeb5f3..b1c4658e1b 100644 --- a/src/encoding/json/decode_test.go +++ b/src/encoding/json/decode_test.go @@ -379,6 +379,10 @@ type unmarshalTest struct { golden bool } +type B struct { + B bool `json:",string"` +} + var unmarshalTests = []unmarshalTest{ // basic types {in: `true`, ptr: new(bool), out: true}, @@ -778,6 +782,16 @@ var unmarshalTests = []unmarshalTest{ Offset: 30, }, }, + + // issue 15146. + // invalid inputs in wrongStringTests below. + {in: `{"B":"true"}`, ptr: new(B), out: B{true}, golden: true}, + {in: `{"B":"false"}`, ptr: new(B), out: B{false}, golden: true}, + {in: `{"B": "maybe"}`, ptr: new(B), err: errors.New(`json: invalid use of ,string struct tag, trying to unmarshal "maybe" into bool`)}, + {in: `{"B": "tru"}`, ptr: new(B), err: errors.New(`json: invalid use of ,string struct tag, trying to unmarshal "tru" into bool`)}, + {in: `{"B": "False"}`, ptr: new(B), err: errors.New(`json: invalid use of ,string struct tag, trying to unmarshal "False" into bool`)}, + {in: `{"B": "null"}`, ptr: new(B), out: B{false}}, + {in: `{"B": "nul"}`, ptr: new(B), err: errors.New(`json: invalid use of ,string struct tag, trying to unmarshal "nul" into bool`)}, } func TestMarshal(t *testing.T) { |