Skip to content

Commit aabc5bf

Browse files
committed
Avoid cross-test statics in ChannelManager network tests
1 parent 321ab3d commit aabc5bf

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

src/ln/channelmanager.rs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2212,8 +2212,10 @@ mod tests {
22122212

22132213
use rand::{thread_rng,Rng};
22142214

2215+
use std::cell::RefCell;
22152216
use std::collections::HashMap;
22162217
use std::default::Default;
2218+
use std::rc::Rc;
22172219
use std::sync::{Arc, Mutex};
22182220
use std::time::Instant;
22192221
use std::mem;
@@ -2384,9 +2386,10 @@ mod tests {
23842386
chan_monitor: Arc<test_utils::TestChannelMonitor>,
23852387
node: Arc<ChannelManager>,
23862388
router: Router,
2389+
network_payment_count: Rc<RefCell<u8>>,
2390+
network_chan_count: Rc<RefCell<u32>>,
23872391
}
23882392

2389-
static mut CHAN_COUNT: u32 = 0;
23902393
fn create_chan_between_nodes(node_a: &Node, node_b: &Node) -> (msgs::ChannelAnnouncement, msgs::ChannelUpdate, msgs::ChannelUpdate, [u8; 32], Transaction) {
23912394
node_a.node.create_channel(node_b.node.get_our_node_id(), 100000, 10001, 42).unwrap();
23922395

@@ -2402,7 +2405,7 @@ mod tests {
24022405

24032406
node_a.node.handle_accept_channel(&node_b.node.get_our_node_id(), &accept_chan).unwrap();
24042407

2405-
let chan_id = unsafe { CHAN_COUNT };
2408+
let chan_id = *node_a.network_chan_count.borrow();
24062409
let tx;
24072410
let funding_output;
24082411

@@ -2508,9 +2511,7 @@ mod tests {
25082511
_ => panic!("Unexpected event"),
25092512
};
25102513

2511-
unsafe {
2512-
CHAN_COUNT += 1;
2513-
}
2514+
*node_a.network_chan_count.borrow_mut() += 1;
25142515

25152516
((*announcement).clone(), (*as_update).clone(), (*bs_update).clone(), channel_id, tx)
25162517
}
@@ -2612,10 +2613,9 @@ mod tests {
26122613
}
26132614
}
26142615

2615-
static mut PAYMENT_COUNT: u8 = 0;
26162616
fn send_along_route(origin_node: &Node, route: Route, expected_route: &[&Node], recv_value: u64) -> ([u8; 32], [u8; 32]) {
2617-
let our_payment_preimage = unsafe { [PAYMENT_COUNT; 32] };
2618-
unsafe { PAYMENT_COUNT += 1 };
2617+
let our_payment_preimage = [*origin_node.network_payment_count.borrow(); 32];
2618+
*origin_node.network_payment_count.borrow_mut() += 1;
26192619
let our_payment_hash = {
26202620
let mut sha = Sha256::new();
26212621
sha.input(&our_payment_preimage[..]);
@@ -2807,8 +2807,8 @@ mod tests {
28072807
assert_eq!(hop.pubkey, node.node.get_our_node_id());
28082808
}
28092809

2810-
let our_payment_preimage = unsafe { [PAYMENT_COUNT; 32] };
2811-
unsafe { PAYMENT_COUNT += 1 };
2810+
let our_payment_preimage = [*origin_node.network_payment_count.borrow(); 32];
2811+
*origin_node.network_payment_count.borrow_mut() += 1;
28122812
let our_payment_hash = {
28132813
let mut sha = Sha256::new();
28142814
sha.input(&our_payment_preimage[..]);
@@ -2919,6 +2919,9 @@ mod tests {
29192919
let secp_ctx = Secp256k1::new();
29202920
let logger: Arc<Logger> = Arc::new(test_utils::TestLogger::new());
29212921

2922+
let chan_count = Rc::new(RefCell::new(0));
2923+
let payment_count = Rc::new(RefCell::new(0));
2924+
29222925
for _ in 0..node_count {
29232926
let feeest = Arc::new(test_utils::TestFeeEstimator { sat_per_kw: 253 });
29242927
let chain_monitor = Arc::new(chaininterface::ChainWatchInterfaceUtil::new(Network::Testnet, Arc::clone(&logger)));
@@ -2931,7 +2934,10 @@ mod tests {
29312934
};
29322935
let node = ChannelManager::new(node_id.clone(), 0, true, Network::Testnet, feeest.clone(), chan_monitor.clone(), chain_monitor.clone(), tx_broadcaster.clone(), Arc::clone(&logger)).unwrap();
29332936
let router = Router::new(PublicKey::from_secret_key(&secp_ctx, &node_id), chain_monitor.clone(), Arc::clone(&logger));
2934-
nodes.push(Node { chain_monitor, tx_broadcaster, chan_monitor, node, router });
2937+
nodes.push(Node { chain_monitor, tx_broadcaster, chan_monitor, node, router,
2938+
network_payment_count: payment_count.clone(),
2939+
network_chan_count: chan_count.clone(),
2940+
});
29352941
}
29362942

29372943
nodes

0 commit comments

Comments
 (0)