Skip to content

Commit 9a19af8

Browse files
committed
Test FC outbound chans we sent open_channel for when peer was offline
1 parent 1d57e01 commit 9a19af8

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

lightning/src/ln/channelmanager.rs

+27
Original file line numberDiff line numberDiff line change
@@ -9457,6 +9457,33 @@ mod tests {
94579457
}
94589458
}
94599459

9460+
#[test]
9461+
fn test_outbound_channels_created_when_disconnected_removed_on_peer_connected() {
9462+
let chanmon_cfgs = create_chanmon_cfgs(2);
9463+
let node_cfgs = create_node_cfgs(2, &chanmon_cfgs);
9464+
let node_chanmgrs = create_node_chanmgrs(2, &node_cfgs, &[None, None]);
9465+
let nodes = create_network(2, &node_cfgs, &node_chanmgrs);
9466+
9467+
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();
9468+
9469+
{
9470+
let per_peer_state = nodes[0].node.per_peer_state.read().unwrap();
9471+
let peer_state_mutex = per_peer_state.get(&nodes[1].node.get_our_node_id()).unwrap();
9472+
let mut peer_state = peer_state_mutex.lock().unwrap();
9473+
peer_state.is_connected = false;
9474+
}
9475+
9476+
let open_channel = get_event_msg!(nodes[0], MessageSendEvent::SendOpenChannel, nodes[1].node.get_our_node_id());
9477+
assert_eq!(open_channel.temporary_channel_id, temporary_channel_id);
9478+
9479+
nodes[0].node.peer_connected(&nodes[1].node.get_our_node_id(), &msgs::Init {
9480+
features: nodes[0].node.init_features(), networks: None, remote_network_address: None
9481+
}, true).unwrap();
9482+
9483+
check_closed_event(&nodes[0], 1, ClosureReason::HolderForceClosed, false);
9484+
let chan_closed_events = nodes[1].node.get_and_clear_pending_events();
9485+
}
9486+
94609487
#[test]
94619488
fn test_drop_disconnected_peers_when_removing_channels() {
94629489
let chanmon_cfgs = create_chanmon_cfgs(2);

0 commit comments

Comments
 (0)