lnwire/reply_channel_range: assert sorted encodings
This commit is contained in:
parent
3cc235a349
commit
2a6e41236c
@ -21,6 +21,12 @@ type ReplyChannelRange struct {
|
||||
|
||||
// ShortChanIDs is a slice of decoded short channel ID's.
|
||||
ShortChanIDs []ShortChannelID
|
||||
|
||||
// noSort indicates whether or not to sort the short channel ids before
|
||||
// writing them out.
|
||||
//
|
||||
// NOTE: This should only be used for testing.
|
||||
noSort bool
|
||||
}
|
||||
|
||||
// NewReplyChannelRange creates a new empty ReplyChannelRange message.
|
||||
@ -64,7 +70,7 @@ func (c *ReplyChannelRange) Encode(w io.Writer, pver uint32) error {
|
||||
return err
|
||||
}
|
||||
|
||||
return encodeShortChanIDs(w, c.EncodingType, c.ShortChanIDs, false)
|
||||
return encodeShortChanIDs(w, c.EncodingType, c.ShortChanIDs, c.noSort)
|
||||
}
|
||||
|
||||
// MsgType returns the integer uniquely identifying this message type on the
|
||||
|
34
lnwire/reply_channel_range_test.go
Normal file
34
lnwire/reply_channel_range_test.go
Normal file
@ -0,0 +1,34 @@
|
||||
package lnwire
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// TestReplyChannelRangeUnsorted tests that decoding a ReplyChannelRange request
|
||||
// that contains duplicate or unsorted ids returns an ErrUnsortedSIDs failure.
|
||||
func TestReplyChannelRangeUnsorted(t *testing.T) {
|
||||
for _, test := range unsortedSidTests {
|
||||
test := test
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
req := &ReplyChannelRange{
|
||||
EncodingType: test.encType,
|
||||
ShortChanIDs: test.sids,
|
||||
noSort: true,
|
||||
}
|
||||
|
||||
var b bytes.Buffer
|
||||
err := req.Encode(&b, 0)
|
||||
if err != nil {
|
||||
t.Fatalf("unable to encode req: %v", err)
|
||||
}
|
||||
|
||||
var req2 ReplyChannelRange
|
||||
err = req2.Decode(bytes.NewReader(b.Bytes()), 0)
|
||||
if _, ok := err.(ErrUnsortedSIDs); !ok {
|
||||
t.Fatalf("expected ErrUnsortedSIDs, got: %T",
|
||||
err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user