Skip to content

Commit a1f6c9c

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 fce28ab commit a1f6c9c

File tree

1 file changed

+38
-27
lines changed

1 file changed

+38
-27
lines changed

lightning/src/ln/channelmanager.rs

+38-27
Original file line numberDiff line numberDiff line change
@@ -15203,9 +15203,26 @@ mod tests {
1520315203

1520415204
create_announced_chan_between_nodes(&nodes, 0, 1);
1520515205

15206-
// Since we do not send peer storage, we manually simulate receiving a dummy
15207-
// `PeerStorage` from the channel partner.
15208-
nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msgs::PeerStorage{data: vec![0; 100]});
15206+
let peer_storage_msg_events_node0 = nodes[0].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15207+
let peer_storage_msg_events_node1 = nodes[1].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15208+
assert_ne!(peer_storage_msg_events_node0.len(), 0);
15209+
assert_ne!(peer_storage_msg_events_node1.len(), 0);
15210+
15211+
match peer_storage_msg_events_node0[0] {
15212+
MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15213+
assert_eq!(*node_id, nodes[1].node.get_our_node_id());
15214+
nodes[1].node.handle_peer_storage(nodes[0].node.get_our_node_id(), msg.clone());
15215+
}
15216+
_ => panic!("Unexpected event"),
15217+
}
15218+
15219+
match peer_storage_msg_events_node1[0] {
15220+
MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15221+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15222+
nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msg.clone());
15223+
}
15224+
_ => panic!("Unexpected event"),
15225+
}
1520915226

1521015227
nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
1521115228
nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
@@ -15217,9 +15234,24 @@ mod tests {
1521715234
features: nodes[0].node.init_features(), networks: None, remote_network_address: None
1521815235
}, false).unwrap();
1521915236

15237+
let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
15238+
assert_eq!(node_1_events.len(), 2);
15239+
1522015240
let node_0_events = nodes[0].node.get_and_clear_pending_msg_events();
1522115241
assert_eq!(node_0_events.len(), 2);
1522215242

15243+
for msg in node_1_events{
15244+
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
15245+
nodes[0].node.handle_channel_reestablish(nodes[1].node.get_our_node_id(), msg);
15246+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15247+
} else if let MessageSendEvent::SendPeerStorageRetrieval { ref node_id, ref msg } = msg {
15248+
nodes[0].node.handle_peer_storage_retrieval(nodes[1].node.get_our_node_id(), msg.clone());
15249+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15250+
} else {
15251+
panic!("Unexpected event")
15252+
}
15253+
}
15254+
1522315255
for msg in node_0_events{
1522415256
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
1522515257
nodes[1].node.handle_channel_reestablish(nodes[0].node.get_our_node_id(), msg);
@@ -15232,30 +15264,9 @@ mod tests {
1523215264
}
1523315265
}
1523415266

15235-
let msg_events_after_peer_storage_retrieval = nodes[1].node.get_and_clear_pending_msg_events();
15236-
15237-
// Check if we receive a warning message.
15238-
let peer_storage_warning: Vec<&MessageSendEvent> = msg_events_after_peer_storage_retrieval
15239-
.iter()
15240-
.filter(|event| match event {
15241-
MessageSendEvent::HandleError { .. } => true,
15242-
_ => false,
15243-
})
15244-
.collect();
15245-
15246-
assert_eq!(peer_storage_warning.len(), 1);
15247-
15248-
match peer_storage_warning[0] {
15249-
MessageSendEvent::HandleError { node_id, action } => {
15250-
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15251-
match action {
15252-
ErrorAction::SendWarningMessage { msg, .. } =>
15253-
assert_eq!(msg.data, "Invalid peer_storage_retrieval message received.".to_owned()),
15254-
_ => panic!("Unexpected error action"),
15255-
}
15256-
}
15257-
_ => panic!("Unexpected event"),
15258-
}
15267+
// Clear all other messages.
15268+
nodes[1].node.get_and_clear_pending_msg_events();
15269+
nodes[0].node.get_and_clear_pending_msg_events();
1525915270
}
1526015271

1526115272
#[test]

0 commit comments

Comments
 (0)