Merge pull request #1158 from jkczyz/2021-11-scorer-tests
[rust-lightning] / fuzz / src / chanmon_consistency.rs
index f3b952ff9dba74b10f921be769d06c355747a63e..acdf3cb3ca2dc3b2f902aa1a323e645b837d2368 100644 (file)
@@ -271,8 +271,8 @@ fn check_payment_err(send_err: PaymentSendFailure) {
                PaymentSendFailure::AllFailedRetrySafe(per_path_results) => {
                        for api_err in per_path_results { check_api_err(api_err); }
                },
-               PaymentSendFailure::PartialFailure(per_path_results) => {
-                       for res in per_path_results { if let Err(api_err) = res { check_api_err(api_err); } }
+               PaymentSendFailure::PartialFailure { results, .. } => {
+                       for res in results { if let Err(api_err) = res { check_api_err(api_err); } }
                },
        }
 }
@@ -305,6 +305,7 @@ fn send_payment(source: &ChanMan, dest: &ChanMan, dest_chan_id: u64, amt: u64, p
                        fee_msat: amt,
                        cltv_expiry_delta: 200,
                }]],
+               payee: None,
        }, payment_hash, &Some(payment_secret)) {
                check_payment_err(err);
                false
@@ -330,6 +331,7 @@ fn send_hop_payment(source: &ChanMan, middle: &ChanMan, middle_chan_id: u64, des
                        fee_msat: amt,
                        cltv_expiry_delta: 200,
                }]],
+               payee: None,
        }, payment_hash, &Some(payment_secret)) {
                check_payment_err(err);
                false
@@ -855,22 +857,26 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
 
                        0x08 => {
                                if let Some((id, _)) = monitor_a.latest_monitors.lock().unwrap().get(&chan_1_funding) {
-                                       nodes[0].channel_monitor_updated(&chan_1_funding, *id);
+                                       monitor_a.chain_monitor.force_channel_monitor_updated(chan_1_funding, *id);
+                                       nodes[0].process_monitor_events();
                                }
                        },
                        0x09 => {
                                if let Some((id, _)) = monitor_b.latest_monitors.lock().unwrap().get(&chan_1_funding) {
-                                       nodes[1].channel_monitor_updated(&chan_1_funding, *id);
+                                       monitor_b.chain_monitor.force_channel_monitor_updated(chan_1_funding, *id);
+                                       nodes[1].process_monitor_events();
                                }
                        },
                        0x0a => {
                                if let Some((id, _)) = monitor_b.latest_monitors.lock().unwrap().get(&chan_2_funding) {
-                                       nodes[1].channel_monitor_updated(&chan_2_funding, *id);
+                                       monitor_b.chain_monitor.force_channel_monitor_updated(chan_2_funding, *id);
+                                       nodes[1].process_monitor_events();
                                }
                        },
                        0x0b => {
                                if let Some((id, _)) = monitor_c.latest_monitors.lock().unwrap().get(&chan_2_funding) {
-                                       nodes[2].channel_monitor_updated(&chan_2_funding, *id);
+                                       monitor_c.chain_monitor.force_channel_monitor_updated(chan_2_funding, *id);
+                                       nodes[2].process_monitor_events();
                                }
                        },
 
@@ -1071,22 +1077,26 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
                                // Test that no channel is in a stuck state where neither party can send funds even
                                // after we resolve all pending events.
                                // First make sure there are no pending monitor updates, resetting the error state
-                               // and calling channel_monitor_updated for each monitor.
+                               // and calling force_channel_monitor_updated for each monitor.
                                *monitor_a.persister.update_ret.lock().unwrap() = Ok(());
                                *monitor_b.persister.update_ret.lock().unwrap() = Ok(());
                                *monitor_c.persister.update_ret.lock().unwrap() = Ok(());
 
                                if let Some((id, _)) = monitor_a.latest_monitors.lock().unwrap().get(&chan_1_funding) {
-                                       nodes[0].channel_monitor_updated(&chan_1_funding, *id);
+                                       monitor_a.chain_monitor.force_channel_monitor_updated(chan_1_funding, *id);
+                                       nodes[0].process_monitor_events();
                                }
                                if let Some((id, _)) = monitor_b.latest_monitors.lock().unwrap().get(&chan_1_funding) {
-                                       nodes[1].channel_monitor_updated(&chan_1_funding, *id);
+                                       monitor_b.chain_monitor.force_channel_monitor_updated(chan_1_funding, *id);
+                                       nodes[1].process_monitor_events();
                                }
                                if let Some((id, _)) = monitor_b.latest_monitors.lock().unwrap().get(&chan_2_funding) {
-                                       nodes[1].channel_monitor_updated(&chan_2_funding, *id);
+                                       monitor_b.chain_monitor.force_channel_monitor_updated(chan_2_funding, *id);
+                                       nodes[1].process_monitor_events();
                                }
                                if let Some((id, _)) = monitor_c.latest_monitors.lock().unwrap().get(&chan_2_funding) {
-                                       nodes[2].channel_monitor_updated(&chan_2_funding, *id);
+                                       monitor_c.chain_monitor.force_channel_monitor_updated(chan_2_funding, *id);
+                                       nodes[2].process_monitor_events();
                                }
 
                                // Next, make sure peers are all connected to each other