X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fln%2Ffunctional_test_utils.rs;h=63dfae514c573d3a18ac6eb2d8539fd7ac0f01d9;hb=0dfb24e661e1b5f286bd21812322cca8026c036f;hp=9fbbcfff39c9701306f0c06e0dcc47c0fdd7728b;hpb=ad819ea70572b4775691e3fc386a788ff9438975;p=rust-lightning diff --git a/lightning/src/ln/functional_test_utils.rs b/lightning/src/ln/functional_test_utils.rs index 9fbbcfff..63dfae51 100644 --- a/lightning/src/ln/functional_test_utils.rs +++ b/lightning/src/ln/functional_test_utils.rs @@ -763,21 +763,29 @@ macro_rules! check_closed_broadcast { }} } -/// Check that a channel's closing channel event has been issued +/// Check that a channel's closing channel events has been issued #[macro_export] macro_rules! check_closed_event { - ($node: expr, $events: expr, $reason: expr) => {{ + ($node: expr, $events: expr, $reason: expr) => { + check_closed_event!($node, $events, $reason, false); + }; + ($node: expr, $events: expr, $reason: expr, $is_check_discard_funding: expr) => {{ let events = $node.node.get_and_clear_pending_events(); assert_eq!(events.len(), $events); let expected_reason = $reason; + let mut issues_discard_funding = false; for event in events { match event { Event::ChannelClosed { ref reason, .. } => { assert_eq!(*reason, expected_reason); }, + Event::DiscardFunding { .. } => { + issues_discard_funding = true; + } _ => panic!("Unexpected event"), } } + assert_eq!($is_check_discard_funding, issues_discard_funding); }} } @@ -965,10 +973,16 @@ macro_rules! commitment_signed_dance { macro_rules! get_payment_preimage_hash { ($dest_node: expr) => { { - let payment_preimage = PaymentPreimage([*$dest_node.network_payment_count.borrow(); 32]); - *$dest_node.network_payment_count.borrow_mut() += 1; + get_payment_preimage_hash!($dest_node, None) + } + }; + ($dest_node: expr, $min_value_msat: expr) => { + { + let mut payment_count = $dest_node.network_payment_count.borrow_mut(); + let payment_preimage = PaymentPreimage([*payment_count; 32]); + *payment_count += 1; let payment_hash = PaymentHash(Sha256::hash(&payment_preimage.0[..]).into_inner()); - let payment_secret = $dest_node.node.create_inbound_payment_for_hash(payment_hash, None, 7200, 0).unwrap(); + let payment_secret = $dest_node.node.create_inbound_payment_for_hash(payment_hash, $min_value_msat, 7200, 0).unwrap(); (payment_preimage, payment_hash, payment_secret) } } @@ -977,11 +991,17 @@ macro_rules! get_payment_preimage_hash { #[cfg(test)] macro_rules! get_route_and_payment_hash { ($send_node: expr, $recv_node: expr, $recv_value: expr) => {{ - let (payment_preimage, payment_hash, payment_secret) = get_payment_preimage_hash!($recv_node); + get_route_and_payment_hash!($send_node, $recv_node, vec![], $recv_value, TEST_FINAL_CLTV) + }}; + ($send_node: expr, $recv_node: expr, $last_hops: expr, $recv_value: expr, $cltv: expr) => {{ + let (payment_preimage, payment_hash, payment_secret) = get_payment_preimage_hash!($recv_node, Some($recv_value)); let net_graph_msg_handler = &$send_node.net_graph_msg_handler; - let route = get_route(&$send_node.node.get_our_node_id(), - &net_graph_msg_handler.network_graph, - &$recv_node.node.get_our_node_id(), None, None, &Vec::new(), $recv_value, TEST_FINAL_CLTV, $send_node.logger).unwrap(); + let route = ::routing::router::get_route( + &$send_node.node.get_our_node_id(), &net_graph_msg_handler.network_graph, + &$recv_node.node.get_our_node_id(), Some(::ln::features::InvoiceFeatures::known()), + Some(&$send_node.node.list_usable_channels().iter().collect::>()), + &$last_hops, $recv_value, $cltv, $send_node.logger + ).unwrap(); (route, payment_hash, payment_preimage, payment_secret) }} } @@ -1043,10 +1063,12 @@ macro_rules! expect_payment_received { macro_rules! expect_payment_sent { ($node: expr, $expected_payment_preimage: expr) => { let events = $node.node.get_and_clear_pending_events(); + let expected_payment_hash = PaymentHash(Sha256::hash(&$expected_payment_preimage.0).into_inner()); assert_eq!(events.len(), 1); match events[0] { - Event::PaymentSent { ref payment_preimage } => { + Event::PaymentSent { ref payment_preimage, ref payment_hash } => { assert_eq!($expected_payment_preimage, *payment_preimage); + assert_eq!(expected_payment_hash, *payment_hash); }, _ => panic!("Unexpected event"), }