Skip to content

Commit 2113034

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 ae9f30b commit 2113034

File tree

1 file changed

+39
-28
lines changed

1 file changed

+39
-28
lines changed

lightning/src/ln/channelmanager.rs

+39-28
Original file line numberDiff line numberDiff line change
@@ -15077,10 +15077,27 @@ mod tests {
1507715077
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
1507815078

1507915079
create_announced_chan_between_nodes(&nodes, 0, 1);
15080-
15081-
// Since we do not send peer storage, we manually simulate receiving a dummy
15082-
// `PeerStorage` from the channel partner.
15083-
nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msgs::PeerStorage{data: vec![0; 100]});
15080+
15081+
let peer_storage_msg_events_node0 = nodes[0].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15082+
let peer_storage_msg_events_node1 = nodes[1].chain_monitor.chain_monitor.get_and_clear_pending_msg_events();
15083+
assert_ne!(peer_storage_msg_events_node0.len(), 0);
15084+
assert_ne!(peer_storage_msg_events_node1.len(), 0);
15085+
15086+
match peer_storage_msg_events_node0[0] {
15087+
MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15088+
assert_eq!(*node_id, nodes[1].node.get_our_node_id());
15089+
nodes[1].node.handle_peer_storage(nodes[0].node.get_our_node_id(), msg.clone());
15090+
}
15091+
_ => panic!("Unexpected event"),
15092+
}
15093+
15094+
match peer_storage_msg_events_node1[0] {
15095+
MessageSendEvent::SendPeerStorage { ref node_id, ref msg } => {
15096+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15097+
nodes[0].node.handle_peer_storage(nodes[1].node.get_our_node_id(), msg.clone());
15098+
}
15099+
_ => panic!("Unexpected event"),
15100+
}
1508415101

1508515102
nodes[0].node.peer_disconnected(nodes[1].node.get_our_node_id());
1508615103
nodes[1].node.peer_disconnected(nodes[0].node.get_our_node_id());
@@ -15092,9 +15109,24 @@ mod tests {
1509215109
features: nodes[0].node.init_features(), networks: None, remote_network_address: None
1509315110
}, false).unwrap();
1509415111

15112+
let node_1_events = nodes[1].node.get_and_clear_pending_msg_events();
15113+
assert_eq!(node_1_events.len(), 2);
15114+
1509515115
let node_0_events = nodes[0].node.get_and_clear_pending_msg_events();
1509615116
assert_eq!(node_0_events.len(), 2);
1509715117

15118+
for msg in node_1_events{
15119+
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
15120+
nodes[0].node.handle_channel_reestablish(nodes[1].node.get_our_node_id(), msg);
15121+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15122+
} else if let MessageSendEvent::SendPeerStorageRetrieval { ref node_id, ref msg } = msg {
15123+
nodes[0].node.handle_peer_storage_retrieval(nodes[1].node.get_our_node_id(), msg.clone());
15124+
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15125+
} else {
15126+
panic!("Unexpected event")
15127+
}
15128+
}
15129+
1509815130
for msg in node_0_events{
1509915131
if let MessageSendEvent::SendChannelReestablish { ref node_id, ref msg } = msg {
1510015132
nodes[1].node.handle_channel_reestablish(nodes[0].node.get_our_node_id(), msg);
@@ -15107,30 +15139,9 @@ mod tests {
1510715139
}
1510815140
}
1510915141

15110-
let msg_events_after_peer_storage_retrieval = nodes[1].node.get_and_clear_pending_msg_events();
15111-
15112-
// Check if we receive a warning message.
15113-
let peer_storage_warning: Vec<&MessageSendEvent> = msg_events_after_peer_storage_retrieval
15114-
.iter()
15115-
.filter(|event| match event {
15116-
MessageSendEvent::HandleError { .. } => true,
15117-
_ => false,
15118-
})
15119-
.collect();
15120-
15121-
assert_eq!(peer_storage_warning.len(), 1);
15122-
15123-
match peer_storage_warning[0] {
15124-
MessageSendEvent::HandleError { node_id, action } => {
15125-
assert_eq!(*node_id, nodes[0].node.get_our_node_id());
15126-
match action {
15127-
ErrorAction::SendWarningMessage { msg, .. } =>
15128-
assert_eq!(msg.data, "Invalid peer_storage_retrieval message received.".to_owned()),
15129-
_ => panic!("Unexpected error action"),
15130-
}
15131-
}
15132-
_ => panic!("Unexpected event"),
15133-
}
15142+
// Clear all other messages.
15143+
nodes[1].node.get_and_clear_pending_msg_events();
15144+
nodes[0].node.get_and_clear_pending_msg_events();
1513415145
}
1513515146

1513615147
#[test]

0 commit comments

Comments
 (0)