Skip to content

Commit 10286bd

Browse files
committed
Test FC outbound chans we sent open_channel for when peer was offline
1 parent 61bdcf2 commit 10286bd

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9540,6 +9540,33 @@ mod tests {
95409540
}
95419541
}
95429542

9543+
#[test]
9544+
fn test_outbound_channels_created_when_disconnected_removed_on_peer_connected() {
9545+
let chanmon_cfgs = create_chanmon_cfgs(2);
9546+
let node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
9547+
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
9548+
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
9549+
9550+
let temporary_channel_id = nodes[0].node.create_channel(nodes[1].node.get_our_node_id(), 1_000_000, 500_000_000, 42, None).unwrap();
9551+
9552+
{
9553+
let per_peer_state = nodes[0].node.per_peer_state.read().unwrap();
9554+
let peer_state_mutex = per_peer_state.get(&nodes[1].node.get_our_node_id()).unwrap();
9555+
let mut peer_state = peer_state_mutex.lock().unwrap();
9556+
peer_state.is_connected = false;
9557+
}
9558+
9559+
let open_channel = get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel, nodes[1].node.get_our_node_id());
9560+
assert_eq!(open_channel.temporary_channel_id, temporary_channel_id);
9561+
9562+
nodes[0].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init {
9563+
features: nodes[0].node.init_features(), networks: None, remote_network_address: None
9564+
}, true).unwrap();
9565+
9566+
check_closed_event(&nodes[0], 1, ClosureReason::HolderForceClosed, false);
9567+
let chan_closed_events = nodes[1].node.get_and_clear_pending_events();
9568+
}
9569+
95439570
#[test]
95449571
fn test_drop_disconnected_peers_when_removing_channels() {
95459572
let chanmon_cfgs = create_chanmon_cfgs(2);

0 commit comments

Comments
 (0)