@@ -16203,11 +16203,15 @@ mod tests {
1620316203
1620416204 #[test]
1620516205 #[rustfmt::skip]
16206+ #[should_panic(expected = "Lost a channel ae3367da2c13bc1ceb86bf56418f62828f7ce9d6bfb15a46af5ba1f1ed8b124f")]
1620616207 fn test_peer_storage() {
1620716208 let chanmon_cfgs = create_chanmon_cfgs(2);
16209+ let (persister, chain_monitor);
1620816210 let node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
16211+ let nodes_0_deserialized;
1620916212 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();
1621116215
1621216216 create_announced_chan_between_nodes(&nodes, 0, 1);
1621316217
@@ -16216,25 +16220,37 @@ mod tests {
1621616220 assert_ne!(peer_storage_msg_events_node0.len(), 0);
1621716221 assert_ne!(peer_storage_msg_events_node1.len(), 0);
1621816222
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"),
1622316230 }
16224- _ => panic!("Unexpected event"),
1622516231 }
1622616232
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"),
1623116240 }
16232- _ => panic!("Unexpected event"),
1623316241 }
1623416242
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+
1623516247 nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
1623616248 nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
1623716249
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+
1623816254 nodes[0].node.peer_connected(nodes[1].node.get_our_node_id(), &msgs::Init {
1623916255 features: nodes[1].node.init_features(), networks: None, remote_network_address: None
1624016256 }, true).unwrap();
@@ -16245,10 +16261,11 @@ mod tests {
1624516261 let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
1624616262 assert_eq!(node_1_events.len(), 2);
1624716263
16264+ // Since, node-0 does not have any memory it would not send any message.
1624816265 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 );
1625016267
16251- for msg in node_1_events{
16268+ for msg in node_1_events {
1625216269 if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
1625316270 nodes[0].node.handle_channel_reestablish(nodes[1].node.get_our_node_id(), msg);
1625416271 assert_eq!(*node_id, nodes[0].node.get_our_node_id());
@@ -16260,35 +16277,8 @@ mod tests {
1626016277 }
1626116278 }
1626216279
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();
1627616280 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);
1629216282
1629316283 for msg in node_0_msg_events {
1629416284 if let MessageSendEvent::SendChannelReady { ref node_id, .. } = msg {
0 commit comments