Commit 98276d6a authored by Agniva De Sarker's avatar Agniva De Sarker Committed by Ian Lance Taylor

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/55256Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 5d14ac74
......@@ -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)
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment