1
1
package discovery
2
2
3
3
import (
4
+ "context"
4
5
"fmt"
5
6
"sync/atomic"
6
7
"testing"
@@ -11,6 +12,7 @@ import (
11
12
"github.com/lightningnetwork/lnd/lnpeer"
12
13
"github.com/lightningnetwork/lnd/lntest/wait"
13
14
"github.com/lightningnetwork/lnd/lnwire"
15
+ "github.com/stretchr/testify/require"
14
16
)
15
17
16
18
// newTestReliableSender creates a new reliable sender instance used for
@@ -32,7 +34,7 @@ func newTestReliableSender(t *testing.T) *reliableSender {
32
34
return c
33
35
},
34
36
MessageStore : newMockMessageStore (),
35
- IsMsgStale : func (lnwire.Message ) bool {
37
+ IsMsgStale : func (context. Context , lnwire.Message ) bool {
36
38
return false
37
39
},
38
40
}
@@ -69,6 +71,7 @@ func assertMsgsSent(t *testing.T, msgChan chan lnwire.Message,
69
71
// a peer while taking into account its connection lifecycle works as expected.
70
72
func TestReliableSenderFlow (t * testing.T ) {
71
73
t .Parallel ()
74
+ ctx := context .Background ()
72
75
73
76
reliableSender := newTestReliableSender (t )
74
77
@@ -98,9 +101,8 @@ func TestReliableSenderFlow(t *testing.T) {
98
101
msg1 := randChannelUpdate ()
99
102
var peerPubKey [33 ]byte
100
103
copy (peerPubKey [:], pubKey .SerializeCompressed ())
101
- if err := reliableSender .sendMessage (msg1 , peerPubKey ); err != nil {
102
- t .Fatalf ("unable to reliably send message: %v" , err )
103
- }
104
+ err := reliableSender .sendMessage (ctx , msg1 , peerPubKey )
105
+ require .NoError (t , err )
104
106
105
107
// Since there isn't a peerHandler for this peer currently active due to
106
108
// this being the first message being sent reliably, we should expect to
@@ -114,9 +116,8 @@ func TestReliableSenderFlow(t *testing.T) {
114
116
115
117
// We'll then attempt to send another additional message reliably.
116
118
msg2 := randAnnounceSignatures ()
117
- if err := reliableSender .sendMessage (msg2 , peerPubKey ); err != nil {
118
- t .Fatalf ("unable to reliably send message: %v" , err )
119
- }
119
+ err = reliableSender .sendMessage (ctx , msg2 , peerPubKey )
120
+ require .NoError (t , err )
120
121
121
122
// This should not however request another peer online notification as
122
123
// the peerHandler has already been started and is waiting for the
@@ -145,9 +146,8 @@ func TestReliableSenderFlow(t *testing.T) {
145
146
146
147
// Then, we'll send one more message reliably.
147
148
msg3 := randChannelUpdate ()
148
- if err := reliableSender .sendMessage (msg3 , peerPubKey ); err != nil {
149
- t .Fatalf ("unable to reliably send message: %v" , err )
150
- }
149
+ err = reliableSender .sendMessage (ctx , msg3 , peerPubKey )
150
+ require .NoError (t , err )
151
151
152
152
// Again, this should not request another peer online notification
153
153
// request since we are currently waiting for the peer to be offline.
@@ -188,6 +188,7 @@ func TestReliableSenderFlow(t *testing.T) {
188
188
// them as stale.
189
189
func TestReliableSenderStaleMessages (t * testing.T ) {
190
190
t .Parallel ()
191
+ ctx := context .Background ()
191
192
192
193
reliableSender := newTestReliableSender (t )
193
194
@@ -206,7 +207,9 @@ func TestReliableSenderStaleMessages(t *testing.T) {
206
207
207
208
// We'll also override IsMsgStale to mark all messages as stale as we're
208
209
// interested in testing the stale message behavior.
209
- reliableSender .cfg .IsMsgStale = func (_ lnwire.Message ) bool {
210
+ reliableSender .cfg .IsMsgStale = func (_ context.Context ,
211
+ _ lnwire.Message ) bool {
212
+
210
213
return true
211
214
}
212
215
@@ -215,9 +218,8 @@ func TestReliableSenderStaleMessages(t *testing.T) {
215
218
msg1 := randAnnounceSignatures ()
216
219
var peerPubKey [33 ]byte
217
220
copy (peerPubKey [:], pubKey .SerializeCompressed ())
218
- if err := reliableSender .sendMessage (msg1 , peerPubKey ); err != nil {
219
- t .Fatalf ("unable to reliably send message: %v" , err )
220
- }
221
+ err := reliableSender .sendMessage (ctx , msg1 , peerPubKey )
222
+ require .NoError (t , err )
221
223
222
224
// Since there isn't a peerHandler for this peer currently active due to
223
225
// this being the first message being sent reliably, we should expect to
@@ -245,7 +247,7 @@ func TestReliableSenderStaleMessages(t *testing.T) {
245
247
// message store since it is seen as stale and has been sent at least
246
248
// once. Once the message is removed, the peerHandler should be torn
247
249
// down as there are no longer any pending messages within the store.
248
- err : = wait .NoError (func () error {
250
+ err = wait .NoError (func () error {
249
251
msgs , err := reliableSender .cfg .MessageStore .MessagesForPeer (
250
252
peerPubKey ,
251
253
)
@@ -265,14 +267,15 @@ func TestReliableSenderStaleMessages(t *testing.T) {
265
267
}
266
268
267
269
// Override IsMsgStale to no longer mark messages as stale.
268
- reliableSender .cfg .IsMsgStale = func (_ lnwire.Message ) bool {
270
+ reliableSender .cfg .IsMsgStale = func (_ context.Context ,
271
+ _ lnwire.Message ) bool {
272
+
269
273
return false
270
274
}
271
275
272
276
// We'll request the message to be sent reliably.
273
- if err := reliableSender .sendMessage (msg2 , peerPubKey ); err != nil {
274
- t .Fatalf ("unable to reliably send message: %v" , err )
275
- }
277
+ err = reliableSender .sendMessage (ctx , msg2 , peerPubKey )
278
+ require .NoError (t , err )
276
279
277
280
// We should see an online notification request indicating that a new
278
281
// peerHandler has been spawned since it was previously torn down.
0 commit comments