From: Agniva De Sarker Date: Sun, 13 Aug 2017 16:40:49 +0000 (+0530) Subject: encoding/hex: improve tests X-Git-Tag: go1.10beta1~1613 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=98276d6abe97e50b2740e78a2b1e768abe6c7a33;p=gostls13.git encoding/hex: improve tests The tests for error scenarios were done by manually checking error strings. Improved them by checking the actual error type instead of just the string. Printing the actual error in case of failure instead of a generic string. Also added a new scenario with both an invalid byte and an invalid length string to verify that the length is checked first before doing any computation. Change-Id: Ic2a19a6d6058912632d597590186ee2d8348cb45 Reviewed-on: https://go-review.googlesource.com/55256 Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot --- diff --git a/src/encoding/hex/hex_test.go b/src/encoding/hex/hex_test.go index 64dabbd10a..e6dc765c95 100644 --- a/src/encoding/hex/hex_test.go +++ b/src/encoding/hex/hex_test.go @@ -77,14 +77,15 @@ func TestDecodeString(t *testing.T) { type errTest struct { in string - err string + err error } var errTests = []errTest{ - {"0", "encoding/hex: odd length hex string"}, - {"0g", "encoding/hex: invalid byte: U+0067 'g'"}, - {"00gg", "encoding/hex: invalid byte: U+0067 'g'"}, - {"0\x01", "encoding/hex: invalid byte: U+0001"}, + {"0", ErrLength}, + {"zd4aa", ErrLength}, + {"0g", InvalidByteError('g')}, + {"00gg", InvalidByteError('g')}, + {"0\x01", InvalidByteError('\x01')}, } func TestInvalidErr(t *testing.T) { @@ -92,8 +93,8 @@ func TestInvalidErr(t *testing.T) { dst := make([]byte, DecodedLen(len(test.in))) _, err := Decode(dst, []byte(test.in)) if err == nil { - t.Errorf("#%d: expected error; got none", i) - } else if err.Error() != test.err { + t.Errorf("#%d: expected %v; got none", i, test.err) + } else if err != test.err { t.Errorf("#%d: got: %v want: %v", i, err, test.err) } } @@ -103,8 +104,8 @@ func TestInvalidStringErr(t *testing.T) { for i, test := range errTests { _, err := DecodeString(test.in) if err == nil { - t.Errorf("#%d: expected error; got none", i) - } else if err.Error() != test.err { + t.Errorf("#%d: expected %v; got none", i, test.err) + } else if err != test.err { t.Errorf("#%d: got: %v want: %v", i, err, test.err) } }