aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/hex
diff options
context:
space:
mode:
authorAgniva De Sarker <agnivade@yahoo.co.in>2017-08-13 22:10:49 +0530
committerIan Lance Taylor <iant@golang.org>2017-08-14 04:45:52 +0000
commit98276d6abe97e50b2740e78a2b1e768abe6c7a33 (patch)
treeecb47af0dcf3c027a49606281eefd68ccc3006ad /src/encoding/hex
parent5d14ac74f614631a38be95cc9724ff38068c6c76 (diff)
downloadgo-98276d6abe97e50b2740e78a2b1e768abe6c7a33.tar.gz
go-98276d6abe97e50b2740e78a2b1e768abe6c7a33.zip
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 <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/encoding/hex')
-rw-r--r--src/encoding/hex/hex_test.go19
1 files changed, 10 insertions, 9 deletions
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)
}
}