From ea250f561291c184423c4372041c067f5233fa5c Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 17 Apr 2017 22:10:58 +0000 Subject: libgo: update to Go 1.8.1 release Reviewed-on: https://go-review.googlesource.com/40775 From-SVN: r246957 --- libgo/go/encoding/xml/marshal_test.go | 7 +++++-- libgo/go/encoding/xml/read.go | 3 ++- libgo/go/encoding/xml/xml_test.go | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) (limited to 'libgo/go/encoding') diff --git a/libgo/go/encoding/xml/marshal_test.go b/libgo/go/encoding/xml/marshal_test.go index 5ec7ece..0126146 100644 --- a/libgo/go/encoding/xml/marshal_test.go +++ b/libgo/go/encoding/xml/marshal_test.go @@ -2428,7 +2428,10 @@ func TestIssue16158(t *testing.T) { err := Unmarshal([]byte(data), &struct { B byte `xml:"b,attr,omitempty"` }{}) - if err == nil { - t.Errorf("Unmarshal: expected error, got nil") + + // For Go 1.8.1 we've restored the old "no errors reported" behavior. + // We'll try again in Go 1.9 to report errors. + if err != nil { + t.Errorf("Unmarshal: expected nil, got error") } } diff --git a/libgo/go/encoding/xml/read.go b/libgo/go/encoding/xml/read.go index 5a89d5f..799b57e 100644 --- a/libgo/go/encoding/xml/read.go +++ b/libgo/go/encoding/xml/read.go @@ -285,7 +285,8 @@ func (p *Decoder) unmarshalAttr(val reflect.Value, attr Attr) error { return nil } - return copyValue(val, []byte(attr.Value)) + copyValue(val, []byte(attr.Value)) + return nil } var ( diff --git a/libgo/go/encoding/xml/xml_test.go b/libgo/go/encoding/xml/xml_test.go index dad6ed9..f43a5e7 100644 --- a/libgo/go/encoding/xml/xml_test.go +++ b/libgo/go/encoding/xml/xml_test.go @@ -797,3 +797,37 @@ func TestIssue12417(t *testing.T) { } } } + +func TestIssue19333(t *testing.T) { + type X struct { + XMLName Name `xml:"X"` + A int `xml:",attr"` + C int + } + + var tests = []struct { + input string + ok bool + }{ + {``, true}, + {``, true}, + {``, true}, + {``, true}, + {``, false}, + {``, false}, + {`bad`, false}, + } + + for _, tt := range tests { + err := Unmarshal([]byte(tt.input), new(X)) + if tt.ok { + if err != nil { + t.Errorf("%s: unexpected error: %v", tt.input, err) + } + } else { + if err == nil { + t.Errorf("%s: unexpected success", tt.input) + } + } + } +} -- cgit v1.1