mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-09-23 08:11:48 +02:00
htlcswitch/test: allow missing field errors in payload decode
This commit is contained in:
@@ -122,15 +122,26 @@ func fuzzPayload(f *testing.F, finalPayload bool) {
|
|||||||
var b bytes.Buffer
|
var b bytes.Buffer
|
||||||
hop, nextChanID := hopFromPayload(payload1)
|
hop, nextChanID := hopFromPayload(payload1)
|
||||||
err = hop.PackHopPayload(&b, nextChanID, finalPayload)
|
err = hop.PackHopPayload(&b, nextChanID, finalPayload)
|
||||||
if errors.Is(err, route.ErrAMPMissingMPP) {
|
switch {
|
||||||
// PackHopPayload refuses to encode an AMP record
|
// PackHopPayload refuses to encode an AMP record
|
||||||
// without an MPP record. However, NewPayloadFromReader
|
// without an MPP record. However, NewPayloadFromReader
|
||||||
// does allow decoding an AMP record without an MPP
|
// does allow decoding an AMP record without an MPP
|
||||||
// record, since validation is done at a later stage. Do
|
// record, since validation is done at a later stage. Do
|
||||||
// not report a bug for this case.
|
// not report a bug for this case.
|
||||||
|
case errors.Is(err, route.ErrAMPMissingMPP):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
// PackHopPayload will not encode regular payloads or final
|
||||||
|
// hops in blinded routes that do not have an amount or expiry
|
||||||
|
// TLV set. However, NewPayloadFromReader will allow creation
|
||||||
|
// of payloads where these TLVs are present, but they have
|
||||||
|
// zero values because validation is done at a later stage.
|
||||||
|
case errors.Is(err, route.ErrMissingField):
|
||||||
|
return
|
||||||
|
|
||||||
|
default:
|
||||||
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
payload2, err := NewPayloadFromReader(&b, finalPayload)
|
payload2, err := NewPayloadFromReader(&b, finalPayload)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
Reference in New Issue
Block a user