Skip to content

Commit a35566a

Browse files
committed
test: Modify test_peer_storage to check latest changes
Node should now determine lost states using retrieved peer storage.
1 parent 9a59ac1 commit a35566a

File tree

2 files changed

+36
-41
lines changed

2 files changed

+36
-41
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 31 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -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 {

lightning/src/util/test_utils.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1771,6 +1771,11 @@ impl TestChainSource {
17711771
self.watched_outputs.lock().unwrap().remove(&(outpoint, script_pubkey.clone()));
17721772
self.watched_txn.lock().unwrap().remove(&(outpoint.txid, script_pubkey));
17731773
}
1774+
1775+
pub fn clear_watched_txn_and_outputs(&self) {
1776+
self.watched_outputs.lock().unwrap().clear();
1777+
self.watched_txn.lock().unwrap().clear();
1778+
}
17741779
}
17751780

17761781
impl UtxoLookup for TestChainSource {

0 commit comments

Comments
 (0)