]> Cypherpunks repositories - gostls13.git/commitdiff
encoding/json: remove use of DeepEqual for testing errors
authorMarcel van Lohuizen <mpvl@golang.org>
Fri, 8 Feb 2019 16:52:08 +0000 (17:52 +0100)
committerMarcel van Lohuizen <mpvl@golang.org>
Wed, 27 Feb 2019 18:24:23 +0000 (18:24 +0000)
Comparing errors using DeepEqual breaks if frame information
is added as proposed in Issue #29934.

Updates #29934.

Change-Id: Ib430c9ddbe588dd1dd51314c408c74c07285e1ff
Reviewed-on: https://go-review.googlesource.com/c/162179
Run-TryBot: Marcel van Lohuizen <mpvl@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Damien Neil <dneil@google.com>
src/encoding/json/decode_test.go

index 54432600a533a47be9513cd9c4385e9b7314cbf6..60454c60583542ce4639635d35875992bfa3ccb7 100644 (file)
@@ -1021,12 +1021,22 @@ func TestMarshalEmbeds(t *testing.T) {
        }
 }
 
+func equalError(a, b error) bool {
+       if a == nil {
+               return b == nil
+       }
+       if b == nil {
+               return a == nil
+       }
+       return a.Error() == b.Error()
+}
+
 func TestUnmarshal(t *testing.T) {
        for i, tt := range unmarshalTests {
                var scan scanner
                in := []byte(tt.in)
                if err := checkValid(in, &scan); err != nil {
-                       if !reflect.DeepEqual(err, tt.err) {
+                       if !equalError(err, tt.err) {
                                t.Errorf("#%d: checkValid: %#v", i, err)
                                continue
                        }
@@ -1044,7 +1054,7 @@ func TestUnmarshal(t *testing.T) {
                if tt.disallowUnknownFields {
                        dec.DisallowUnknownFields()
                }
-               if err := dec.Decode(v.Interface()); !reflect.DeepEqual(err, tt.err) {
+               if err := dec.Decode(v.Interface()); !equalError(err, tt.err) {
                        t.Errorf("#%d: %v, want %v", i, err, tt.err)
                        continue
                } else if err != nil {
@@ -2270,7 +2280,7 @@ func TestUnmarshalEmbeddedUnexported(t *testing.T) {
 
        for i, tt := range tests {
                err := Unmarshal([]byte(tt.in), tt.ptr)
-               if !reflect.DeepEqual(err, tt.err) {
+               if !equalError(err, tt.err) {
                        t.Errorf("#%d: %v, want %v", i, err, tt.err)
                }
                if !reflect.DeepEqual(tt.ptr, tt.out) {