@@ -16203,11 +16203,15 @@ mod tests {
16203
16203
16204
16204
#[test]
16205
16205
#[rustfmt::skip]
16206
+ #[should_panic(expected = "Lost a channel ae3367da2c13bc1ceb86bf56418f62828f7ce9d6bfb15a46af5ba1f1ed8b124f")]
16206
16207
fn test_peer_storage() {
16207
16208
let chanmon_cfgs = create_chanmon_cfgs(2);
16209
+ let (persister, chain_monitor);
16208
16210
let node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
16211
+ let nodes_0_deserialized;
16209
16212
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
16210
- let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
16213
+ let mut nodes = create_network(2, &node_cfgs, &node_chanmgrs);
16214
+ let nodes_0_serialized = nodes[0].node.encode();
16211
16215
16212
16216
create_announced_chan_between_nodes(&nodes, 0, 1);
16213
16217
@@ -16216,25 +16220,37 @@ mod tests {
16216
16220
assert_ne!(peer_storage_msg_events_node0.len(), 0);
16217
16221
assert_ne!(peer_storage_msg_events_node1.len(), 0);
16218
16222
16219
- match peer_storage_msg_events_node0[0] {
16220
- MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
16221
- assert_eq!(*node_id, nodes[1].node.get_our_node_id());
16222
- nodes[1].node.handle_peer_storage(nodes[0].node.get_our_node_id(), msg.clone());
16223
+ for ps_msg in peer_storage_msg_events_node0 {
16224
+ match ps_msg {
16225
+ MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
16226
+ assert_eq!(*node_id, nodes[1].node.get_our_node_id());
16227
+ nodes[1].node.handle_peer_storage(nodes[0].node.get_our_node_id(), msg.clone());
16228
+ }
16229
+ _ => panic!("Unexpected event"),
16223
16230
}
16224
- _ => panic!("Unexpected event"),
16225
16231
}
16226
16232
16227
- match peer_storage_msg_events_node1[0] {
16228
- MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
16229
- assert_eq!(*node_id, nodes[0].node.get_our_node_id());
16230
- nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msg.clone());
16233
+ for ps_msg in peer_storage_msg_events_node1 {
16234
+ match ps_msg {
16235
+ MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
16236
+ assert_eq!(*node_id, nodes[0].node.get_our_node_id());
16237
+ nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msg.clone());
16238
+ }
16239
+ _ => panic!("Unexpected event"),
16231
16240
}
16232
- _ => panic!("Unexpected event"),
16233
16241
}
16234
16242
16243
+ send_payment(&nodes[0], &vec!(&nodes[1])[..], 1000);
16244
+ send_payment(&nodes[0], &vec!(&nodes[1])[..], 10000);
16245
+ send_payment(&nodes[0], &vec!(&nodes[1])[..], 9999);
16246
+
16235
16247
nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
16236
16248
nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
16237
16249
16250
+ // Reload Node!
16251
+ nodes[0].chain_source.clear_watched_txn_and_outputs();
16252
+ reload_node!(nodes[0], test_default_channel_config(), &nodes_0_serialized, &[], persister, chain_monitor, nodes_0_deserialized);
16253
+
16238
16254
nodes[0].node.peer_connected(nodes[1].node.get_our_node_id(), &msgs::Init {
16239
16255
features: nodes[1].node.init_features(), networks: None, remote_network_address: None
16240
16256
}, true).unwrap();
@@ -16245,10 +16261,11 @@ mod tests {
16245
16261
let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
16246
16262
assert_eq!(node_1_events.len(), 2);
16247
16263
16264
+ // Since, node-0 does not have any memory it would not send any message.
16248
16265
let node_0_events = nodes[0].node.get_and_clear_pending_msg_events();
16249
- assert_eq!(node_0_events.len(), 2 );
16266
+ assert_eq!(node_0_events.len(), 0 );
16250
16267
16251
- for msg in node_1_events{
16268
+ for msg in node_1_events {
16252
16269
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
16253
16270
nodes[0].node.handle_channel_reestablish(nodes[1].node.get_our_node_id(), msg);
16254
16271
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
@@ -16260,35 +16277,8 @@ mod tests {
16260
16277
}
16261
16278
}
16262
16279
16263
- for msg in node_0_events{
16264
- if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
16265
- nodes[1].node.handle_channel_reestablish(nodes[0].node.get_our_node_id(), msg);
16266
- assert_eq!(*node_id, nodes[1].node.get_our_node_id());
16267
- } else if let MessageSendEvent::SendPeerStorageRetrieval { ref node_id, ref msg } = msg {
16268
- nodes[1].node.handle_peer_storage_retrieval(nodes[0].node.get_our_node_id(), msg.clone());
16269
- assert_eq!(*node_id, nodes[1].node.get_our_node_id());
16270
- } else {
16271
- panic!("Unexpected event")
16272
- }
16273
- }
16274
-
16275
- let node_1_msg_events = nodes[1].node.get_and_clear_pending_msg_events();
16276
16280
let node_0_msg_events = nodes[0].node.get_and_clear_pending_msg_events();
16277
-
16278
- assert_eq!(node_1_msg_events.len(), 3);
16279
- assert_eq!(node_0_msg_events.len(), 3);
16280
-
16281
- for msg in node_1_msg_events {
16282
- if let MessageSendEvent::SendChannelReady { ref node_id, .. } = msg {
16283
- assert_eq!(*node_id, nodes[0].node.get_our_node_id());
16284
- } else if let MessageSendEvent::SendAnnouncementSignatures { ref node_id, .. } = msg {
16285
- assert_eq!(*node_id, nodes[0].node.get_our_node_id());
16286
- } else if let MessageSendEvent::SendChannelUpdate { ref node_id, .. } = msg {
16287
- assert_eq!(*node_id, nodes[0].node.get_our_node_id());
16288
- } else {
16289
- panic!("Unexpected event")
16290
- }
16291
- }
16281
+ assert_eq!(node_0_msg_events.len(), 2);
16292
16282
16293
16283
for msg in node_0_msg_events {
16294
16284
if let MessageSendEvent::SendChannelReady { ref node_id, .. } = msg {
0 commit comments