Skip to content

Commit 32df0cc

Browse files
committed
f check error code and slim down test code
1 parent 6181b3c commit 32df0cc

File tree

1 file changed

+28
-43
lines changed

1 file changed

+28
-43
lines changed

lightning/src/ln/functional_tests.rs

Lines changed: 28 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -7187,29 +7187,23 @@ fn test_channel_failed_after_message_with_badonion_node_perm_bits_set() {
71877187
let node_cfgs = create_node_cfgs(3, &chanmon_cfgs);
71887188
let node_chanmgrs = create_node_chanmgrs(3, &node_cfgs, &[None, None, None]);
71897189
let mut nodes = create_network(3, &node_cfgs, &node_chanmgrs);
7190-
create_announced_chan_between_nodes_with_value(&nodes, 0, 1, 1000000, 1000000,
7191-
InitFeatures::known(), InitFeatures::known());
7192-
let chan_2 = create_announced_chan_between_nodes_with_value(&nodes, 1, 2, 1000000, 1000000,
7193-
InitFeatures::known(), InitFeatures::known());
7190+
create_announced_chan_between_nodes(&nodes, 0, 1, InitFeatures::known(), InitFeatures::known());
7191+
let chan_2 = create_announced_chan_between_nodes(&nodes, 1, 2, InitFeatures::known(), InitFeatures::known());
71947192

7195-
let (route, our_payment_hash, _, our_payment_secret) = get_route_and_payment_hash!(nodes[0], nodes[2], 100000);
7193+
let (route, our_payment_hash, _, our_payment_secret) = get_route_and_payment_hash!(nodes[0], nodes[2], 100_000);
71967194

71977195
// First hop
71987196
let mut payment_event = {
71997197
nodes[0].node.send_payment(&route, our_payment_hash, &Some(our_payment_secret)).unwrap();
72007198
check_added_monitors!(nodes[0], 1);
7201-
let mut events = nodes[0].node.get_and_clear_pending_msg_events();
7202-
assert_eq!(events.len(), 1);
7203-
SendEvent::from_event(events.remove(0))
7199+
SendEvent::from_node(&nodes[0])
72047200
};
7201+
72057202
nodes[1].node.handle_update_add_htlc(&nodes[0].node.get_our_node_id(), &payment_event.msgs[0]);
7206-
check_added_monitors!(nodes[1], 0);
72077203
commitment_signed_dance!(nodes[1], nodes[0], payment_event.commitment_msg, false);
72087204
expect_pending_htlcs_forwardable!(nodes[1]);
7209-
let mut events_2 = nodes[1].node.get_and_clear_pending_msg_events();
7210-
assert_eq!(events_2.len(), 1);
72117205
check_added_monitors!(nodes[1], 1);
7212-
payment_event = SendEvent::from_event(events_2.remove(0));
7206+
payment_event = SendEvent::from_node(&nodes[1]);
72137207
assert_eq!(payment_event.msgs.len(), 1);
72147208

72157209
// Second Hop
@@ -7220,54 +7214,45 @@ fn test_channel_failed_after_message_with_badonion_node_perm_bits_set() {
72207214

72217215
let events_3 = nodes[2].node.get_and_clear_pending_msg_events();
72227216
assert_eq!(events_3.len(), 1);
7223-
let update_msg : (msgs::UpdateFailMalformedHTLC, msgs::CommitmentSigned) = {
7224-
match events_3[0] {
7225-
MessageSendEvent::UpdateHTLCs { node_id: _ , updates: msgs::CommitmentUpdate {
7226-
ref update_fail_malformed_htlcs, ref commitment_signed, .. } } => {
7227-
let mut update_msg = update_fail_malformed_htlcs[0].clone();
7228-
// Set the NODE bit (BADONION and PERM already set in invalid_onion_version error)
7229-
update_msg.failure_code = update_msg.failure_code|0x2000;
7230-
(update_msg, commitment_signed.clone())
7231-
},
7232-
_ => panic!("Unexpected event"),
7233-
}
7234-
};
7235-
7236-
nodes[1].node.handle_update_fail_malformed_htlc(&nodes[2].node.get_our_node_id(), &update_msg.0);
7217+
match events_3[0] {
7218+
MessageSendEvent::UpdateHTLCs { updates, .. } => {
7219+
let mut update_msg = updates.update_fail_malformed_htlcs[0].clone();
7220+
// Set the NODE bit (BADONION and PERM already set in invalid_onion_version error)
7221+
update_msg.failure_code |= 0x2000;
7222+
7223+
nodes[1].node.handle_update_fail_malformed_htlc(&nodes[2].node.get_our_node_id(), &update_msg);
7224+
commitment_signed_dance!(nodes[1], nodes[2], updates.commitment_signed, false, true);
7225+
},
7226+
_ => panic!("Unexpected event"),
7227+
}
72377228

7238-
check_added_monitors!(nodes[1], 0);
7239-
commitment_signed_dance!(nodes[1], nodes[2], update_msg.1, false, true);
72407229
expect_pending_htlcs_forwardable_and_htlc_handling_failed!(nodes[1],
72417230
vec![HTLCDestination::NextHopChannel {
72427231
node_id: Some(nodes[2].node.get_our_node_id()), channel_id: chan_2.2 }]);
72437232
let events_4 = nodes[1].node.get_and_clear_pending_msg_events();
72447233
assert_eq!(events_4.len(), 1);
72457234
check_added_monitors!(nodes[1], 1);
72467235

7247-
let update_msg: (msgs::UpdateFailHTLC, msgs::CommitmentSigned) = {
7248-
match events_4[0] {
7249-
MessageSendEvent::UpdateHTLCs { node_id: _ , updates: msgs::CommitmentUpdate {
7250-
ref update_fail_htlcs, ref commitment_signed, .. } } => {
7251-
(update_fail_htlcs[0].clone(), commitment_signed.clone())
7252-
},
7253-
_ => panic!("Unexpected event"),
7254-
}
7255-
};
7256-
7257-
nodes[0].node.handle_update_fail_htlc(&nodes[1].node.get_our_node_id(), &update_msg.0);
7236+
match events_4[0] {
7237+
MessageSendEvent::UpdateHTLCs { updates, .. } => {
7238+
nodes[0].node.handle_update_fail_htlc(&nodes[1].node.get_our_node_id(), &updates.update_fail_htlcs[0]);
7239+
commitment_signed_dance!(nodes[0], nodes[1], updates.commitment_signed, false, true);
7240+
},
7241+
_ => panic!("Unexpected event"),
7242+
}
72587243

7259-
check_added_monitors!(nodes[0], 0);
7260-
commitment_signed_dance!(nodes[0], nodes[1], update_msg.1, false, true);
72617244
let events_5 = nodes[0].node.get_and_clear_pending_events();
72627245
assert_eq!(events_5.len(), 1);
72637246

72647247
// Expect a PaymentPathFailed event with a ChannelFailure network update for the channel between
72657248
// the node originating the error to its next hop.
72667249
match events_5[0] {
7267-
Event::PaymentPathFailed { network_update: Some(NetworkUpdate::ChannelFailure {
7268-
short_channel_id, is_permanent }), .. } => {
7250+
Event::PaymentPathFailed { network_update:
7251+
Some(NetworkUpdate::ChannelFailure { short_channel_id, is_permanent }), error_code, ..
7252+
} => {
72697253
assert_eq!(short_channel_id, chan_2.0.contents.short_channel_id);
72707254
assert!(is_permanent);
7255+
assert_eq!(error_code, Some(0x8000|0x4000|0x2000|4));
72717256
},
72727257
_ => panic!("Unexpected event"),
72737258
}

0 commit comments

Comments
 (0)