Skip to content

Commit 163a8a4

Browse files
committed
test: update test_peer_storage to validate latest changes
Ensure that we correctly handle the sendpeerstorage message event from chainmonitor and process it through channelmonitor. Key Changes: - Retrieve sendpeerstorage message event from chainmonitor for both nodes. - Handle peer storage messages exchanged between nodes and verify correct decryption.
1 parent aaed14b commit 163a8a4

File tree

1 file changed

+38
-27
lines changed

1 file changed

+38
-27
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 38 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15274,9 +15274,26 @@ mod tests {
1527415274

1527515275
create_announced_chan_between_nodes(&nodes, 0, 1);
1527615276

15277-
// Since we do not send peer storage, we manually simulate receiving a dummy
15278-
// `PeerStorage` from the channel partner.
15279-
nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msgs::PeerStorage{data: vec![0; 100]});
15277+
let peer_storage_msg_events_node0 = nodes[0].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15278+
let peer_storage_msg_events_node1 = nodes[1].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15279+
assert_ne!(peer_storage_msg_events_node0.len(), 0);
15280+
assert_ne!(peer_storage_msg_events_node1.len(), 0);
15281+
15282+
match peer_storage_msg_events_node0[0] {
15283+
MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15284+
assert_eq!(*node_id, nodes[1].node.get_our_node_id());
15285+
nodes[1].node.handle_peer_storage(nodes[0].node.get_our_node_id(), msg.clone());
15286+
}
15287+
_ => panic!("Unexpected event"),
15288+
}
15289+
15290+
match peer_storage_msg_events_node1[0] {
15291+
MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15292+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15293+
nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msg.clone());
15294+
}
15295+
_ => panic!("Unexpected event"),
15296+
}
1528015297

1528115298
nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
1528215299
nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
@@ -15288,9 +15305,24 @@ mod tests {
1528815305
features: nodes[0].node.init_features(), networks: None, remote_network_address: None
1528915306
}, false).unwrap();
1529015307

15308+
let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
15309+
assert_eq!(node_1_events.len(), 2);
15310+
1529115311
let node_0_events = nodes[0].node.get_and_clear_pending_msg_events();
1529215312
assert_eq!(node_0_events.len(), 2);
1529315313

15314+
for msg in node_1_events{
15315+
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
15316+
nodes[0].node.handle_channel_reestablish(nodes[1].node.get_our_node_id(), msg);
15317+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15318+
} else if let MessageSendEvent::SendPeerStorageRetrieval { ref node_id, ref msg } = msg {
15319+
nodes[0].node.handle_peer_storage_retrieval(nodes[1].node.get_our_node_id(), msg.clone());
15320+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15321+
} else {
15322+
panic!("Unexpected event")
15323+
}
15324+
}
15325+
1529415326
for msg in node_0_events{
1529515327
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
1529615328
nodes[1].node.handle_channel_reestablish(nodes[0].node.get_our_node_id(), msg);
@@ -15303,30 +15335,9 @@ mod tests {
1530315335
}
1530415336
}
1530515337

15306-
let msg_events_after_peer_storage_retrieval = nodes[1].node.get_and_clear_pending_msg_events();
15307-
15308-
// Check if we receive a warning message.
15309-
let peer_storage_warning: Vec<&MessageSendEvent> = msg_events_after_peer_storage_retrieval
15310-
.iter()
15311-
.filter(|event| match event {
15312-
MessageSendEvent::HandleError { .. } => true,
15313-
_ => false,
15314-
})
15315-
.collect();
15316-
15317-
assert_eq!(peer_storage_warning.len(), 1);
15318-
15319-
match peer_storage_warning[0] {
15320-
MessageSendEvent::HandleError { node_id, action } => {
15321-
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15322-
match action {
15323-
ErrorAction::SendWarningMessage { msg, .. } =>
15324-
assert_eq!(msg.data, "Invalid peer_storage_retrieval message received.".to_owned()),
15325-
_ => panic!("Unexpected error action"),
15326-
}
15327-
}
15328-
_ => panic!("Unexpected event"),
15329-
}
15338+
// Clear all other messages.
15339+
nodes[1].node.get_and_clear_pending_msg_events();
15340+
nodes[0].node.get_and_clear_pending_msg_events();
1533015341
}
1533115342

1533215343
#[test]

0 commit comments

Comments
 (0)