diff options
author | Agniva De Sarker <agnivade@yahoo.co.in> | 2017-08-13 22:10:49 +0530 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2017-08-14 04:45:52 +0000 |
commit | 98276d6abe97e50b2740e78a2b1e768abe6c7a33 (patch) | |
tree | ecb47af0dcf3c027a49606281eefd68ccc3006ad /src/encoding/hex | |
parent | 5d14ac74f614631a38be95cc9724ff38068c6c76 (diff) | |
download | go-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.go | 19 |
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) } } |