@@ -8193,9 +8193,10 @@ fn test_simple_mpp() {
81938193 claim_payment_along_route(&nodes[0], &[&[&nodes[1], &nodes[3]], &[&nodes[2], &nodes[3]]], false, payment_preimage);
81948194}
81958195
8196- fn do_test_mpp_keysend(accept_mpp_keysend: bool) {
8196+ #[test]
8197+ fn test_mpp_keysend() {
81978198 let mut mpp_keysend_config = test_default_channel_config();
8198- mpp_keysend_config.accept_mpp_keysend = accept_mpp_keysend ;
8199+ mpp_keysend_config.accept_mpp_keysend = true ;
81998200 let chanmon_cfgs = create_chanmon_cfgs(4);
82008201 let node_cfgs = create_node_cfgs(4, &chanmon_cfgs);
82018202 let node_chanmgrs = create_node_chanmgrs(4, &node_cfgs, &[None, None, None, Some(mpp_keysend_config)]);
@@ -8204,7 +8205,7 @@ fn do_test_mpp_keysend(accept_mpp_keysend: bool) {
82048205 create_announced_chan_between_nodes(&nodes, 0, 1);
82058206 create_announced_chan_between_nodes(&nodes, 0, 2);
82068207 create_announced_chan_between_nodes(&nodes, 1, 3);
8207- let chan_2_3 = create_announced_chan_between_nodes(&nodes, 2, 3);
8208+ create_announced_chan_between_nodes(&nodes, 2, 3);
82088209 let network_graph = nodes[0].network_graph.clone();
82098210
82108211 let payer_pubkey = nodes[0].node.get_our_node_id();
@@ -8233,63 +8234,10 @@ fn do_test_mpp_keysend(accept_mpp_keysend: bool) {
82338234 pass_along_path(&nodes[0], expected_route[0], recv_value, payment_hash.clone(),
82348235 Some(payment_secret), ev.clone(), false, Some(payment_preimage));
82358236
8236- if accept_mpp_keysend {
8237- let ev = remove_first_msg_event_to_node(&nodes[2].node.get_our_node_id(), &mut events);
8238- pass_along_path(&nodes[0], expected_route[1], recv_value, payment_hash.clone(),
8239- Some(payment_secret), ev.clone(), true, Some(payment_preimage));
8240- claim_payment_along_route(&nodes[0], expected_route, false, payment_preimage);
8241- } else {
8242- let ev = remove_first_msg_event_to_node(&nodes[2].node.get_our_node_id(), &mut events);
8243- let mut payment_event = SendEvent::from_event(ev.clone());
8244-
8245- assert_eq!(nodes[2].node.get_our_node_id(), payment_event.node_id);
8246-
8247- nodes[2].node.handle_update_add_htlc(&nodes[0].node.get_our_node_id(), &payment_event.msgs[0]);
8248- commitment_signed_dance!(nodes[2], nodes[0], payment_event.commitment_msg, false);
8249-
8250- expect_pending_htlcs_forwardable!(nodes[2]);
8251- check_added_monitors!(nodes[2], 1);
8252-
8253- let mut events_2 = nodes[2].node.get_and_clear_pending_msg_events();
8254- assert_eq!(events_2.len(), 1);
8255- payment_event = SendEvent::from_event(events_2.remove(0));
8256-
8257- nodes[3].node.handle_update_add_htlc(&nodes[2].node.get_our_node_id(), &payment_event.msgs[0]);
8258- check_added_monitors!(nodes[3], 0);
8259- commitment_signed_dance!(nodes[3], nodes[2], payment_event.commitment_msg, false);
8260-
8261- expect_pending_htlcs_forwardable_ignore!(nodes[3]);
8262- nodes[3].node.process_pending_htlc_forwards();
8263- expect_pending_htlcs_forwardable_and_htlc_handling_failed_ignore!(nodes[3],
8264- vec![HTLCDestination::FailedPayment { payment_hash: payment_hash }]);
8265- nodes[3].node.process_pending_htlc_forwards();
8266-
8267- check_added_monitors!(nodes[3], 1);
8268-
8269- let fail_updates_1 = get_htlc_update_msgs!(nodes[3], nodes[2].node.get_our_node_id());
8270- nodes[2].node.handle_update_fail_htlc(&nodes[3].node.get_our_node_id(), &fail_updates_1.update_fail_htlcs[0]);
8271- commitment_signed_dance!(nodes[2], nodes[3], fail_updates_1.commitment_signed, false);
8272-
8273- expect_pending_htlcs_forwardable_and_htlc_handling_failed!(nodes[2],
8274- vec![HTLCDestination::NextHopChannel { node_id: Some(nodes[3].node.get_our_node_id()), channel_id: chan_2_3.2 }]);
8275- check_added_monitors!(nodes[2], 1);
8276-
8277- let fail_updates_2 = get_htlc_update_msgs!(nodes[2], nodes[0].node.get_our_node_id());
8278- nodes[0].node.handle_update_fail_htlc(&nodes[2].node.get_our_node_id(), &fail_updates_2.update_fail_htlcs[0]);
8279- commitment_signed_dance!(nodes[0], nodes[2], fail_updates_2.commitment_signed, false);
8280-
8281- expect_payment_failed_conditions(&nodes[0], payment_hash, true, PaymentFailedConditions::new().mpp_parts_remain());
8282- }
8283- }
8284-
8285- #[test]
8286- fn test_mpp_keysend() {
8287- do_test_mpp_keysend(true);
8288- }
8289-
8290- #[test]
8291- fn test_mpp_keysend_fail() {
8292- do_test_mpp_keysend(false);
8237+ let ev = remove_first_msg_event_to_node(&nodes[2].node.get_our_node_id(), &mut events);
8238+ pass_along_path(&nodes[0], expected_route[1], recv_value, payment_hash.clone(),
8239+ Some(payment_secret), ev.clone(), true, Some(payment_preimage));
8240+ claim_payment_along_route(&nodes[0], expected_route, false, payment_preimage);
82938241}
82948242
82958243#[test]
0 commit comments