Skip to content

Commit 306943e

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 99b0572 commit 306943e

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

1517715177
create_announced_chan_between_nodes(&nodes, 0, 1);
1517815178

15179-
// Since we do not send peer storage, we manually simulate receiving a dummy
15180-
// `PeerStorage` from the channel partner.
15181-
nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msgs::PeerStorage{data: vec![0; 100]});
15179+
let peer_storage_msg_events_node0 = nodes[0].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15180+
let peer_storage_msg_events_node1 = nodes[1].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15181+
assert_ne!(peer_storage_msg_events_node0.len(), 0);
15182+
assert_ne!(peer_storage_msg_events_node1.len(), 0);
15183+
15184+
match peer_storage_msg_events_node0[0] {
15185+
MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15186+
assert_eq!(*node_id, nodes[1].node.get_our_node_id());
15187+
nodes[1].node.handle_peer_storage(nodes[0].node.get_our_node_id(), msg.clone());
15188+
}
15189+
_ => panic!("Unexpected event"),
15190+
}
15191+
15192+
match peer_storage_msg_events_node1[0] {
15193+
MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15194+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15195+
nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msg.clone());
15196+
}
15197+
_ => panic!("Unexpected event"),
15198+
}
1518215199

1518315200
nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
1518415201
nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
@@ -15190,9 +15207,24 @@ mod tests {
1519015207
features: nodes[0].node.init_features(), networks: None, remote_network_address: None
1519115208
}, false).unwrap();
1519215209

15210+
let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
15211+
assert_eq!(node_1_events.len(), 2);
15212+
1519315213
let node_0_events = nodes[0].node.get_and_clear_pending_msg_events();
1519415214
assert_eq!(node_0_events.len(), 2);
1519515215

15216+
for msg in node_1_events{
15217+
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
15218+
nodes[0].node.handle_channel_reestablish(nodes[1].node.get_our_node_id(), msg);
15219+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15220+
} else if let MessageSendEvent::SendPeerStorageRetrieval { ref node_id, ref msg } = msg {
15221+
nodes[0].node.handle_peer_storage_retrieval(nodes[1].node.get_our_node_id(), msg.clone());
15222+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15223+
} else {
15224+
panic!("Unexpected event")
15225+
}
15226+
}
15227+
1519615228
for msg in node_0_events{
1519715229
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
1519815230
nodes[1].node.handle_channel_reestablish(nodes[0].node.get_our_node_id(), msg);
@@ -15205,30 +15237,9 @@ mod tests {
1520515237
}
1520615238
}
1520715239

15208-
let msg_events_after_peer_storage_retrieval = nodes[1].node.get_and_clear_pending_msg_events();
15209-
15210-
// Check if we receive a warning message.
15211-
let peer_storage_warning: Vec<&MessageSendEvent> = msg_events_after_peer_storage_retrieval
15212-
.iter()
15213-
.filter(|event| match event {
15214-
MessageSendEvent::HandleError { .. } => true,
15215-
_ => false,
15216-
})
15217-
.collect();
15218-
15219-
assert_eq!(peer_storage_warning.len(), 1);
15220-
15221-
match peer_storage_warning[0] {
15222-
MessageSendEvent::HandleError { node_id, action } => {
15223-
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15224-
match action {
15225-
ErrorAction::SendWarningMessage { msg, .. } =>
15226-
assert_eq!(msg.data, "Invalid peer_storage_retrieval message received.".to_owned()),
15227-
_ => panic!("Unexpected error action"),
15228-
}
15229-
}
15230-
_ => panic!("Unexpected event"),
15231-
}
15240+
// Clear all other messages.
15241+
nodes[1].node.get_and_clear_pending_msg_events();
15242+
nodes[0].node.get_and_clear_pending_msg_events();
1523215243
}
1523315244

1523415245
#[test]

0 commit comments

Comments
 (0)