X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fln%2Ffunctional_test_utils.rs;h=0d01961cd1b3f023f7bec7c3a6559b330d4bf34d;hb=fe8c10db95124e3238b7469bdabb00afc7c5bdd6;hp=5690c834e73860d37729934c38c507bb648b3299;hpb=5af0cb28878f7207c7e8f68aaebbcb81559b4660;p=rust-lightning diff --git a/lightning/src/ln/functional_test_utils.rs b/lightning/src/ln/functional_test_utils.rs index 5690c834..0d01961c 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,8 +973,9 @@ 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; + 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(); (payment_preimage, payment_hash, payment_secret) @@ -981,7 +990,9 @@ macro_rules! get_route_and_payment_hash { 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(); + &$recv_node.node.get_our_node_id(), None, + Some(&$send_node.node.list_usable_channels().iter().map(|a| a).collect::>()), + &Vec::new(), $recv_value, TEST_FINAL_CLTV, $send_node.logger).unwrap(); (route, payment_hash, payment_preimage, payment_secret) }} } @@ -1043,10 +1054,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"), } @@ -1073,7 +1086,7 @@ macro_rules! expect_payment_failed_with_update { let events = $node.node.get_and_clear_pending_events(); assert_eq!(events.len(), 1); match events[0] { - Event::PaymentFailed { ref payment_hash, rejected_by_dest, ref network_update, ref error_code, ref error_data, .. } => { + Event::PaymentPathFailed { ref payment_hash, rejected_by_dest, ref network_update, ref error_code, ref error_data, .. } => { assert_eq!(*payment_hash, $expected_payment_hash, "unexpected payment_hash"); assert_eq!(rejected_by_dest, $rejected_by_dest, "unexpected rejected_by_dest value"); assert!(error_code.is_some(), "expected error_code.is_some() = true"); @@ -1102,7 +1115,7 @@ macro_rules! expect_payment_failed { let events = $node.node.get_and_clear_pending_events(); assert_eq!(events.len(), 1); match events[0] { - Event::PaymentFailed { ref payment_hash, rejected_by_dest, network_update: _, ref error_code, ref error_data, .. } => { + Event::PaymentPathFailed { ref payment_hash, rejected_by_dest, network_update: _, ref error_code, ref error_data, .. } => { assert_eq!(*payment_hash, $expected_payment_hash, "unexpected payment_hash"); assert_eq!(rejected_by_dest, $rejected_by_dest, "unexpected rejected_by_dest value"); assert!(error_code.is_some(), "expected error_code.is_some() = true"); @@ -1399,10 +1412,13 @@ pub fn fail_payment_along_route<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expe let events = origin_node.node.get_and_clear_pending_events(); assert_eq!(events.len(), 1); match events[0] { - Event::PaymentFailed { payment_hash, rejected_by_dest, all_paths_failed, .. } => { + Event::PaymentPathFailed { payment_hash, rejected_by_dest, all_paths_failed, ref path, .. } => { assert_eq!(payment_hash, our_payment_hash); assert!(rejected_by_dest); assert_eq!(all_paths_failed, i == expected_paths.len() - 1); + for (idx, hop) in expected_route.iter().enumerate() { + assert_eq!(hop.node.get_our_node_id(), path[idx].pubkey); + } }, _ => panic!("Unexpected event"), }