X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=lightning%2Fsrc%2Fln%2Ffunctional_test_utils.rs;h=9adfeb292fd66e74db9037e88b117298dedb04ef;hb=780625674d11c2e72279f4587e52627e14bb1710;hp=fe3df8d1e5bd674a3f18bb4c94017d454106c215;hpb=4fc05af870b9598adccb39ef96a79cd1635baf84;p=rust-lightning diff --git a/lightning/src/ln/functional_test_utils.rs b/lightning/src/ln/functional_test_utils.rs index fe3df8d1..9adfeb29 100644 --- a/lightning/src/ln/functional_test_utils.rs +++ b/lightning/src/ln/functional_test_utils.rs @@ -107,16 +107,12 @@ pub fn connect_block<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, block: &Block) node.blocks.borrow_mut().push((block.header, height)); } -pub fn disconnect_block<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, header: &BlockHeader) { - node.chain_monitor.chain_monitor.block_disconnected(header, node.best_block_info().1); - node.node.block_disconnected(header); - node.blocks.borrow_mut().pop(); -} pub fn disconnect_blocks<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, count: u32) { - assert!(node.blocks.borrow_mut().len() as u32 > count); // Cannot disconnect genesis for _ in 0..count { - let block_header = node.blocks.borrow().last().unwrap().0; - disconnect_block(&node, &block_header); + let orig_header = node.blocks.borrow_mut().pop().unwrap(); + assert!(orig_header.1 > 0); // Cannot disconnect genesis + node.chain_monitor.chain_monitor.block_disconnected(&orig_header.0, orig_header.1); + node.node.block_disconnected(&orig_header.0); } } @@ -317,6 +313,24 @@ macro_rules! get_event_msg { } } +/// Get a specific event from the pending events queue. +#[macro_export] +macro_rules! get_event { + ($node: expr, $event_type: path) => { + { + let mut events = $node.node.get_and_clear_pending_events(); + assert_eq!(events.len(), 1); + let ev = events.pop().unwrap(); + match ev { + $event_type { .. } => { + ev + }, + _ => panic!("Unexpected event"), + } + } + } +} + #[cfg(test)] macro_rules! get_htlc_update_msgs { ($node: expr, $node_id: expr) => { @@ -345,7 +359,8 @@ macro_rules! get_feerate { } } -#[cfg(test)] +/// Returns any local commitment transactions for the channel. +#[macro_export] macro_rules! get_local_commitment_txn { ($node: expr, $channel_id: expr) => { {