Skip to content

Commit f412c1d

Browse files
add resilience to expect_probe_successful_events
1 parent 7fd5c14 commit f412c1d

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

lightning/src/ln/functional_test_utils.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2098,20 +2098,24 @@ pub fn expect_channel_ready_event<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, ex
20982098
}
20992099

21002100
#[cfg(any(test, feature = "_test_utils"))]
2101-
pub fn expect_probe_successful_events(node: &Node, probe_results: Vec<(PaymentHash, PaymentId)>) {
2101+
pub fn expect_probe_successful_events(node: &Node, probe_results: &Vec<(PaymentHash, PaymentId)>) {
21022102
let mut events = node.node.get_and_clear_pending_events();
2103+
let mut probe_results = probe_results.clone();
21032104

2104-
assert_eq!(events.len(), probe_results.len());
2105-
for (idx, event) in events.drain(..).enumerate() {
2106-
let (payment_hash, payment_id) = probe_results[idx];
2105+
for event in events.drain(..) {
21072106
match event {
2108-
Event::ProbeSuccessful { payment_id: ev_pid, payment_hash: ev_ph, ..} => {
2109-
assert_eq!(payment_id, ev_pid);
2110-
assert_eq!(payment_hash, ev_ph);
2107+
Event::ProbeSuccessful { payment_hash: ev_ph, payment_id: ev_pid, ..} => {
2108+
let result_idx = probe_results.iter().position(|(payment_hash, payment_id)| *payment_hash == ev_ph && *payment_id == ev_pid);
2109+
assert!(result_idx.is_some());
2110+
2111+
probe_results.remove(result_idx.unwrap());
21112112
},
21122113
_ => panic!(),
21132114
}
21142115
};
2116+
2117+
// Ensure that we received a ProbeSuccessful event for each probe result.
2118+
assert!(probe_results.is_empty());
21152119
}
21162120

21172121
pub struct PaymentFailedConditions<'a> {

lightning/src/ln/payment_tests.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,7 +1286,7 @@ fn successful_probe_yields_event() {
12861286

12871287
pass_probe_along_route(&nodes[0], expected_route);
12881288

1289-
expect_probe_successful_events(&nodes[0], vec![res]);
1289+
expect_probe_successful_events(&nodes[0], &vec![res]);
12901290

12911291
assert!(!nodes[0].node.has_pending_payments());
12921292
}
@@ -1429,7 +1429,7 @@ fn preflight_probes_yield_event_skip_private_hop() {
14291429

14301430
pass_probe_along_route(&nodes[0], expected_route);
14311431

1432-
expect_probe_successful_events(&nodes[0], res);
1432+
expect_probe_successful_events(&nodes[0], &res);
14331433

14341434
assert!(!nodes[0].node.has_pending_payments());
14351435
}
@@ -1475,7 +1475,7 @@ fn preflight_probes_yield_event() {
14751475

14761476
pass_probe_along_route(&nodes[0], expected_route);
14771477

1478-
expect_probe_successful_events(&nodes[0], res);
1478+
expect_probe_successful_events(&nodes[0], &res);
14791479

14801480
assert!(!nodes[0].node.has_pending_payments());
14811481
}
@@ -1523,7 +1523,7 @@ fn preflight_probes_yield_event_and_skip() {
15231523

15241524
pass_probe_along_route(&nodes[0], expected_route);
15251525

1526-
expect_probe_successful_events(&nodes[0], res);
1526+
expect_probe_successful_events(&nodes[0], &res);
15271527

15281528
assert!(!nodes[0].node.has_pending_payments());
15291529
}

0 commit comments

Comments
 (0)