Skip to content

Commit 35863ce

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 65aee4d commit 35863ce

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
@@ -15199,9 +15199,26 @@ mod tests {
1519915199

1520015200
create_announced_chan_between_nodes(&nodes, 0, 1);
1520115201

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

1520615223
nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
1520715224
nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
@@ -15213,9 +15230,24 @@ mod tests {
1521315230
features: nodes[0].node.init_features(), networks: None, remote_network_address: None
1521415231
}, false).unwrap();
1521515232

15233+
let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
15234+
assert_eq!(node_1_events.len(), 2);
15235+
1521615236
let node_0_events = nodes[0].node.get_and_clear_pending_msg_events();
1521715237
assert_eq!(node_0_events.len(), 2);
1521815238

15239+
for msg in node_1_events{
15240+
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
15241+
nodes[0].node.handle_channel_reestablish(nodes[1].node.get_our_node_id(), msg);
15242+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15243+
} else if let MessageSendEvent::SendPeerStorageRetrieval { ref node_id, ref msg } = msg {
15244+
nodes[0].node.handle_peer_storage_retrieval(nodes[1].node.get_our_node_id(), msg.clone());
15245+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15246+
} else {
15247+
panic!("Unexpected event")
15248+
}
15249+
}
15250+
1521915251
for msg in node_0_events{
1522015252
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
1522115253
nodes[1].node.handle_channel_reestablish(nodes[0].node.get_our_node_id(), msg);
@@ -15228,30 +15260,9 @@ mod tests {
1522815260
}
1522915261
}
1523015262

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

1525715268
#[test]

0 commit comments

Comments
 (0)