zpay32: test case for empty routing hints on r fields

This commit is contained in:
MPins
2025-06-24 17:53:11 -03:00
committed by MPins
parent 16187f047a
commit e61d971ce4

View File

@@ -697,18 +697,22 @@ func TestParseRouteHint(t *testing.T) {
testDoubleHopData, _ = bech32.ConvertBits(testDoubleHopData, 8, 5, true)
tests := []struct {
data []byte
valid bool
result []HopHint
data []byte
valid bool
result []HopHint
expectedErr error
}{
{
data: []byte{0x0, 0x0, 0x0, 0x0},
valid: false, // data too short, not multiple of 51 bytes
data: []byte{0x0, 0x0, 0x0, 0x0},
// data too short, not multiple of 51 bytes
valid: false,
expectedErr: ErrLengthNotMultipleOfHopHint,
},
{
data: []byte{},
valid: true,
result: []HopHint{},
data: []byte{},
valid: false,
result: []HopHint{},
expectedErr: ErrEmptyRouteHint,
},
{
data: testSingleHopData,
@@ -716,8 +720,11 @@ func TestParseRouteHint(t *testing.T) {
result: testSingleHop,
},
{
data: append(testSingleHopData, 0x0),
valid: false, // data too long, not multiple of 51 bytes
data: append(testSingleHopData,
[]byte{0x0, 0x0}...),
// data too long, not multiple of 51 bytes
valid: false,
expectedErr: ErrLengthNotMultipleOfHopHint,
},
{
data: testDoubleHopData,
@@ -732,6 +739,7 @@ func TestParseRouteHint(t *testing.T) {
t.Errorf("routing info decoding test %d failed: %v", i, err)
return
}
require.ErrorIs(t, err, test.expectedErr)
if test.valid {
if err := compareRouteHints(test.result, routeHint); err != nil {
t.Fatalf("test %d failed decoding routing info: %v", i, err)