@@ -16202,11 +16202,15 @@ mod tests {
1620216202
1620316203 #[test]
1620416204 #[rustfmt::skip]
16205+ #[should_panic(expected = "Lost a channel ae3367da2c13bc1ceb86bf56418f62828f7ce9d6bfb15a46af5ba1f1ed8b124f")]
1620516206 fn test_peer_storage() {
1620616207 let chanmon_cfgs = create_chanmon_cfgs(2);
16208+ let (persister, chain_monitor);
1620716209 let node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
16210+ let nodes_0_deserialized;
1620816211 let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
16209- let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
16212+ let mut nodes = create_network(2, &node_cfgs, &node_chanmgrs);
16213+ let nodes_0_serialized = nodes[0].node.encode();
1621016214
1621116215 create_announced_chan_between_nodes(&nodes, 0, 1);
1621216216
@@ -16215,25 +16219,37 @@ mod tests {
1621516219 assert_ne!(peer_storage_msg_events_node0.len(), 0);
1621616220 assert_ne!(peer_storage_msg_events_node1.len(), 0);
1621716221
16218- match peer_storage_msg_events_node0[0] {
16219- MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
16220- assert_eq!(*node_id, nodes[1].node.get_our_node_id());
16221- nodes[1].node.handle_peer_storage(nodes[0].node.get_our_node_id(), msg.clone());
16222+ for ps_msg in peer_storage_msg_events_node0 {
16223+ match ps_msg {
16224+ MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
16225+ assert_eq!(*node_id, nodes[1].node.get_our_node_id());
16226+ nodes[1].node.handle_peer_storage(nodes[0].node.get_our_node_id(), msg.clone());
16227+ }
16228+ _ => panic!("Unexpected event"),
1622216229 }
16223- _ => panic!("Unexpected event"),
1622416230 }
1622516231
16226- match peer_storage_msg_events_node1[0] {
16227- MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
16228- assert_eq!(*node_id, nodes[0].node.get_our_node_id());
16229- nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msg.clone());
16232+ for ps_msg in peer_storage_msg_events_node1 {
16233+ match ps_msg {
16234+ MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
16235+ assert_eq!(*node_id, nodes[0].node.get_our_node_id());
16236+ nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msg.clone());
16237+ }
16238+ _ => panic!("Unexpected event"),
1623016239 }
16231- _ => panic!("Unexpected event"),
1623216240 }
1623316241
16242+ send_payment(&nodes[0], &vec!(&nodes[1])[..], 1000);
16243+ send_payment(&nodes[0], &vec!(&nodes[1])[..], 10000);
16244+ send_payment(&nodes[0], &vec!(&nodes[1])[..], 9999);
16245+
1623416246 nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
1623516247 nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
1623616248
16249+ // Reload Node!
16250+ nodes[0].chain_source.clear_watched_txn_and_outputs();
16251+ reload_node!(nodes[0], test_default_channel_config(), &nodes_0_serialized, &[], persister, chain_monitor, nodes_0_deserialized);
16252+
1623716253 nodes[0].node.peer_connected(nodes[1].node.get_our_node_id(), &msgs::Init {
1623816254 features: nodes[1].node.init_features(), networks: None, remote_network_address: None
1623916255 }, true).unwrap();
@@ -16244,10 +16260,11 @@ mod tests {
1624416260 let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
1624516261 assert_eq!(node_1_events.len(), 2);
1624616262
16263+ // Since, node-0 does not have any memory it would not send any message.
1624716264 let node_0_events = nodes[0].node.get_and_clear_pending_msg_events();
16248- assert_eq!(node_0_events.len(), 2 );
16265+ assert_eq!(node_0_events.len(), 0 );
1624916266
16250- for msg in node_1_events{
16267+ for msg in node_1_events {
1625116268 if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
1625216269 nodes[0].node.handle_channel_reestablish(nodes[1].node.get_our_node_id(), msg);
1625316270 assert_eq!(*node_id, nodes[0].node.get_our_node_id());
@@ -16259,35 +16276,8 @@ mod tests {
1625916276 }
1626016277 }
1626116278
16262- for msg in node_0_events{
16263- if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
16264- nodes[1].node.handle_channel_reestablish(nodes[0].node.get_our_node_id(), msg);
16265- assert_eq!(*node_id, nodes[1].node.get_our_node_id());
16266- } else if let MessageSendEvent::SendPeerStorageRetrieval { ref node_id, ref msg } = msg {
16267- nodes[1].node.handle_peer_storage_retrieval(nodes[0].node.get_our_node_id(), msg.clone());
16268- assert_eq!(*node_id, nodes[1].node.get_our_node_id());
16269- } else {
16270- panic!("Unexpected event")
16271- }
16272- }
16273-
16274- let node_1_msg_events = nodes[1].node.get_and_clear_pending_msg_events();
1627516279 let node_0_msg_events = nodes[0].node.get_and_clear_pending_msg_events();
16276-
16277- assert_eq!(node_1_msg_events.len(), 3);
16278- assert_eq!(node_0_msg_events.len(), 3);
16279-
16280- for msg in node_1_msg_events {
16281- if let MessageSendEvent::SendChannelReady { ref node_id, .. } = msg {
16282- assert_eq!(*node_id, nodes[0].node.get_our_node_id());
16283- } else if let MessageSendEvent::SendAnnouncementSignatures { ref node_id, .. } = msg {
16284- assert_eq!(*node_id, nodes[0].node.get_our_node_id());
16285- } else if let MessageSendEvent::SendChannelUpdate { ref node_id, .. } = msg {
16286- assert_eq!(*node_id, nodes[0].node.get_our_node_id());
16287- } else {
16288- panic!("Unexpected event")
16289- }
16290- }
16280+ assert_eq!(node_0_msg_events.len(), 2);
1629116281
1629216282 for msg in node_0_msg_events {
1629316283 if let MessageSendEvent::SendChannelReady { ref node_id, .. } = msg {
0 commit comments