Skip to content

Commit 8642de5

Browse files
valentinewallaceTheBlueMatt
authored andcommitted
f 1/2 of test_unconf_chan fixed
1 parent 1e2ae31 commit 8642de5

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

lightning/src/ln/functional_test_utils.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,29 @@ pub fn connect_block<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, block: &Block,
113113
node.node.block_connected(&block.header, &txdata, height);
114114
node.node.test_process_background_events();
115115
*node.last_block.lock().unwrap() = (block.header.block_hash(), height);
116+
node.blocks.lock().unwrap().push((block.header, height));
116117
}
117118

118119
pub fn disconnect_block<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>, header: &BlockHeader, height: u32) {
119120
node.chain_monitor.chain_monitor.block_disconnected(header, height);
120121
node.node.block_disconnected(header);
121122
node.node.test_process_background_events();
122123
*node.last_block.lock().unwrap() = (header.prev_blockhash, height - 1);
124+
node.blocks.lock().unwrap().pop();
125+
}
126+
127+
pub fn disconnect_all_blocks<'a, 'b, 'c, 'd>(node: &'a Node<'b, 'c, 'd>) {
128+
let mut blocks_len = {
129+
node.blocks.lock().unwrap().len()
130+
};
131+
while blocks_len > 0 {
132+
let (block_header, height) = {
133+
let blocks = node.blocks.lock().unwrap();
134+
(blocks[blocks.len() - 1].0, blocks[blocks.len() - 1].1)
135+
};
136+
disconnect_block(&node, &block_header, height);
137+
blocks_len = node.blocks.lock().unwrap().len();
138+
}
123139
}
124140

125141
pub struct TestChanMonCfg {
@@ -153,6 +169,7 @@ pub struct Node<'a, 'b: 'a, 'c: 'b> {
153169
pub network_chan_count: Rc<RefCell<u32>>,
154170
pub logger: &'c test_utils::TestLogger,
155171
pub last_block: Mutex<(BlockHash, u32)>,
172+
pub blocks: Mutex<Vec<(BlockHeader, u32)>>,
156173
}
157174

158175
impl<'a, 'b, 'c> Drop for Node<'a, 'b, 'c> {
@@ -1221,6 +1238,7 @@ pub fn create_network<'a, 'b: 'a, 'c: 'b>(node_count: usize, cfgs: &'b Vec<NodeC
12211238
node_seed: cfgs[i].node_seed, network_chan_count: chan_count.clone(),
12221239
network_payment_count: payment_count.clone(), logger: cfgs[i].logger,
12231240
last_block: Mutex::new((genesis_block(Network::Testnet).header.block_hash(), 0)),
1241+
blocks: Mutex::new(Vec::new())
12241242
})
12251243
}
12261244

lightning/src/ln/reorg_tests.rs

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -209,17 +209,8 @@ fn do_test_unconf_chan(reload_node: bool, reorg_after_reload: bool) {
209209
assert_eq!(channel_state.short_to_id.len(), 1);
210210
mem::drop(channel_state);
211211

212-
let mut headers = Vec::new();
213-
let mut header = BlockHeader { version: 0x20000000, prev_blockhash: genesis_block(Network::Testnet).header.block_hash(), merkle_root: Default::default(), time: 42, bits: 42, nonce: 42 };
214-
headers.push(header.clone());
215-
for _i in 2..100 {
216-
header = BlockHeader { version: 0x20000000, prev_blockhash: header.block_hash(), merkle_root: Default::default(), time: 42, bits: 42, nonce: 42 };
217-
headers.push(header.clone());
218-
}
219212
if !reorg_after_reload {
220-
while !headers.is_empty() {
221-
nodes[0].node.block_disconnected(&headers.pop().unwrap());
222-
}
213+
disconnect_all_blocks(&nodes[0]);
223214
check_closed_broadcast!(nodes[0], false);
224215
{
225216
let channel_state = nodes[0].node.channel_state.lock().unwrap();
@@ -271,9 +262,7 @@ fn do_test_unconf_chan(reload_node: bool, reorg_after_reload: bool) {
271262
}
272263

273264
if reorg_after_reload {
274-
while !headers.is_empty() {
275-
nodes[0].node.block_disconnected(&headers.pop().unwrap());
276-
}
265+
disconnect_all_blocks(&nodes[0]);
277266
check_closed_broadcast!(nodes[0], false);
278267
{
279268
let channel_state = nodes[0].node.channel_state.lock().unwrap();

0 commit comments

Comments
 (0)