Skip to content

Commit d5bf615

Browse files
committed
Integration test logging to stdout
1 parent 0f1d66c commit d5bf615

File tree

3 files changed

+61
-60
lines changed

3 files changed

+61
-60
lines changed

tests/common/mod.rs

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ pub(crate) fn random_node_alias() -> Option<NodeAlias> {
227227
Some(NodeAlias(bytes))
228228
}
229229

230-
pub(crate) fn random_config(anchor_channels: bool) -> TestConfig {
230+
pub(crate) fn random_config(anchor_channels: bool, node_id: String) -> TestConfig {
231231
let mut node_config = Config::default();
232232

233233
if !anchor_channels {
@@ -249,7 +249,9 @@ pub(crate) fn random_config(anchor_channels: bool) -> TestConfig {
249249
println!("Setting random LDK node alias: {:?}", alias);
250250
node_config.node_alias = alias;
251251

252-
TestConfig { node_config, ..Default::default() }
252+
let log_writer = TestLogWriter::Custom(Arc::new(MultiNodeLogger::new(node_id)));
253+
254+
TestConfig { node_config, log_writer }
253255
}
254256

255257
#[cfg(feature = "uniffi")]
@@ -274,24 +276,28 @@ pub(crate) struct TestConfig {
274276
macro_rules! setup_builder {
275277
($builder: ident, $config: expr) => {
276278
#[cfg(feature = "uniffi")]
277-
let $builder = Builder::from_config($config.clone());
279+
let $builder = Builder::from_config($config.node_config.clone());
278280
#[cfg(not(feature = "uniffi"))]
279-
let mut $builder = Builder::from_config($config.clone());
281+
let mut $builder = Builder::from_config($config.node_config.clone());
282+
283+
crate::common::set_builder_log_writer(&mut $builder, &$config);
280284
};
281285
}
282286

283287
pub(crate) use setup_builder;
284288

289+
use crate::common::logging::MultiNodeLogger;
290+
285291
pub(crate) fn setup_two_nodes(
286292
chain_source: &TestChainSource, allow_0conf: bool, anchor_channels: bool,
287293
anchors_trusted_no_reserve: bool,
288294
) -> (TestNode, TestNode) {
289295
println!("== Node A ==");
290-
let config_a = random_config(anchor_channels);
296+
let config_a = random_config(anchor_channels, "node_a".to_string());
291297
let node_a = setup_node(chain_source, config_a, None);
292298

293299
println!("\n== Node B ==");
294-
let mut config_b = random_config(anchor_channels);
300+
let mut config_b = random_config(anchor_channels, "node_b".to_string());
295301
if allow_0conf {
296302
config_b.node_config.trusted_peers_0conf.push(node_a.node_id());
297303
}
@@ -311,7 +317,7 @@ pub(crate) fn setup_two_nodes(
311317
pub(crate) fn setup_node(
312318
chain_source: &TestChainSource, config: TestConfig, seed_bytes: Option<Vec<u8>>,
313319
) -> TestNode {
314-
setup_builder!(builder, config.node_config);
320+
setup_builder!(builder, config);
315321
match chain_source {
316322
TestChainSource::Esplora(electrsd) => {
317323
let esplora_url = format!("http://{}", electrsd.esplora_url.as_ref().unwrap());
@@ -350,17 +356,7 @@ pub(crate) fn setup_node(
350356
},
351357
}
352358

353-
match &config.log_writer {
354-
TestLogWriter::FileWriter => {
355-
builder.set_filesystem_logger(None, None);
356-
},
357-
TestLogWriter::LogFacade => {
358-
builder.set_log_facade_logger();
359-
},
360-
TestLogWriter::Custom(custom_log_writer) => {
361-
builder.set_custom_logger(Arc::clone(custom_log_writer));
362-
},
363-
}
359+
set_builder_log_writer(&mut builder, &config);
364360

365361
if let Some(seed) = seed_bytes {
366362
#[cfg(feature = "uniffi")]
@@ -383,6 +379,20 @@ pub(crate) fn setup_node(
383379
node
384380
}
385381

382+
pub(crate) fn set_builder_log_writer(builder: &mut Builder, config: &TestConfig) {
383+
match &config.log_writer {
384+
TestLogWriter::FileWriter => {
385+
builder.set_filesystem_logger(None, None);
386+
},
387+
TestLogWriter::LogFacade => {
388+
builder.set_log_facade_logger();
389+
},
390+
TestLogWriter::Custom(custom_log_writer) => {
391+
builder.set_custom_logger(Arc::clone(custom_log_writer));
392+
},
393+
}
394+
}
395+
386396
pub(crate) fn generate_blocks_and_wait<E: ElectrumApi>(
387397
bitcoind: &BitcoindClient, electrs: &E, num: usize,
388398
) {

tests/integration_tests_rust.rs

Lines changed: 28 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ use common::{
1212
expect_channel_pending_event, expect_channel_ready_event, expect_event,
1313
expect_payment_claimable_event, expect_payment_received_event, expect_payment_successful_event,
1414
generate_blocks_and_wait,
15-
logging::MultiNodeLogger,
1615
logging::{init_log_logger, validate_log_entry, TestLogWriter},
1716
open_channel, open_channel_push_amt, premine_and_distribute_funds, premine_blocks, prepare_rbf,
1817
random_config, random_listening_addresses, setup_bitcoind_and_electrsd, setup_builder,
@@ -151,10 +150,10 @@ fn multi_hop_sending() {
151150

152151
// Setup and fund 5 nodes
153152
let mut nodes = Vec::new();
154-
for _ in 0..5 {
155-
let config = random_config(true);
153+
for node_idx in 0..5 {
154+
let config = random_config(true, format!("node_{}", node_idx));
156155
let sync_config = EsploraSyncConfig { background_sync_config: None };
157-
setup_builder!(builder, config.node_config);
156+
setup_builder!(builder, config);
158157
builder.set_chain_source_esplora(esplora_url.clone(), Some(sync_config));
159158
let node = builder.build().unwrap();
160159
node.start().unwrap();
@@ -244,15 +243,15 @@ fn multi_hop_sending() {
244243
#[test]
245244
fn start_stop_reinit() {
246245
let (bitcoind, electrsd) = setup_bitcoind_and_electrsd();
247-
let config = random_config(true);
246+
let config = random_config(true, "single_node".to_string());
248247

249248
let esplora_url = format!("http://{}", electrsd.esplora_url.as_ref().unwrap());
250249

251250
let test_sync_store: Arc<dyn KVStoreSync + Sync + Send> =
252251
Arc::new(TestSyncStore::new(config.node_config.storage_dir_path.clone().into()));
253252

254253
let sync_config = EsploraSyncConfig { background_sync_config: None };
255-
setup_builder!(builder, config.node_config);
254+
setup_builder!(builder, config);
256255
builder.set_chain_source_esplora(esplora_url.clone(), Some(sync_config));
257256

258257
let node = builder.build_with_store(Arc::clone(&test_sync_store)).unwrap();
@@ -289,7 +288,7 @@ fn start_stop_reinit() {
289288
assert_eq!(node.stop(), Err(NodeError::NotRunning));
290289
drop(node);
291290

292-
setup_builder!(builder, config.node_config);
291+
setup_builder!(builder, config);
293292
builder.set_chain_source_esplora(esplora_url.clone(), Some(sync_config));
294293

295294
let reinitialized_node = builder.build_with_store(Arc::clone(&test_sync_store)).unwrap();
@@ -601,7 +600,7 @@ fn onchain_wallet_recovery() {
601600

602601
let seed_bytes = vec![42u8; 64];
603602

604-
let original_config = random_config(true);
603+
let original_config = random_config(true, "original_node".to_string());
605604
let original_node = setup_node(&chain_source, original_config, Some(seed_bytes.clone()));
606605

607606
let premine_amount_sat = 100_000;
@@ -640,7 +639,7 @@ fn onchain_wallet_recovery() {
640639
drop(original_node);
641640

642641
// Now we start from scratch, only the seed remains the same.
643-
let recovered_config = random_config(true);
642+
let recovered_config = random_config(true, "recovered_node".to_string());
644643
let recovered_node = setup_node(&chain_source, recovered_config, Some(seed_bytes));
645644

646645
recovered_node.sync_wallets().unwrap();
@@ -693,17 +692,17 @@ fn run_rbf_test(is_insert_block: bool) {
693692
let chain_source_esplora = TestChainSource::Esplora(&electrsd);
694693

695694
macro_rules! config_node {
696-
($chain_source: expr, $anchor_channels: expr) => {{
697-
let config_a = random_config($anchor_channels);
695+
($chain_source: expr, $anchor_channels: expr, $node_id: expr) => {{
696+
let config_a = random_config($anchor_channels, $node_id);
698697
let node = setup_node(&$chain_source, config_a, None);
699698
node
700699
}};
701700
}
702701
let anchor_channels = false;
703702
let nodes = vec![
704-
config_node!(chain_source_electrsd, anchor_channels),
705-
config_node!(chain_source_bitcoind, anchor_channels),
706-
config_node!(chain_source_esplora, anchor_channels),
703+
config_node!(chain_source_electrsd, anchor_channels, "node_electrsd".to_string()),
704+
config_node!(chain_source_bitcoind, anchor_channels, "node_bitcoind".to_string()),
705+
config_node!(chain_source_esplora, anchor_channels, "node_esplora".to_string()),
707706
];
708707

709708
let (bitcoind, electrs) = (&bitcoind.client, &electrsd.client);
@@ -811,7 +810,7 @@ fn run_rbf_test(is_insert_block: bool) {
811810
#[test]
812811
fn sign_verify_msg() {
813812
let (_bitcoind, electrsd) = setup_bitcoind_and_electrsd();
814-
let config = random_config(true);
813+
let config = random_config(true, "single_node".to_string());
815814
let chain_source = TestChainSource::Esplora(&electrsd);
816815
let node = setup_node(&chain_source, config, None);
817816

@@ -1136,31 +1135,23 @@ fn static_invoice_server() {
11361135
let (bitcoind, electrsd) = setup_bitcoind_and_electrsd();
11371136
let chain_source = TestChainSource::Esplora(&electrsd);
11381137

1139-
let mut config_sender = random_config(true);
1138+
let mut config_sender = random_config(true, "sender ".to_string());
11401139
config_sender.node_config.listening_addresses = None;
11411140
config_sender.node_config.node_alias = None;
1142-
config_sender.log_writer =
1143-
TestLogWriter::Custom(Arc::new(MultiNodeLogger::new("sender ".to_string())));
11441141
let node_sender = setup_node(&chain_source, config_sender, None);
11451142

1146-
let mut config_sender_lsp = random_config(true);
1143+
let mut config_sender_lsp = random_config(true, "sender_lsp ".to_string());
11471144
config_sender_lsp.node_config.async_payment_services_enabled = true;
1148-
config_sender_lsp.log_writer =
1149-
TestLogWriter::Custom(Arc::new(MultiNodeLogger::new("sender_lsp ".to_string())));
11501145
let node_sender_lsp = setup_node(&chain_source, config_sender_lsp, None);
11511146

1152-
let mut config_receiver_lsp = random_config(true);
1147+
let mut config_receiver_lsp = random_config(true, "receiver_lsp".to_string());
11531148
config_receiver_lsp.node_config.async_payment_services_enabled = true;
1154-
config_receiver_lsp.log_writer =
1155-
TestLogWriter::Custom(Arc::new(MultiNodeLogger::new("receiver_lsp".to_string())));
11561149

11571150
let node_receiver_lsp = setup_node(&chain_source, config_receiver_lsp, None);
11581151

1159-
let mut config_receiver = random_config(true);
1152+
let mut config_receiver = random_config(true, "receiver ".to_string());
11601153
config_receiver.node_config.listening_addresses = None;
11611154
config_receiver.node_config.node_alias = None;
1162-
config_receiver.log_writer =
1163-
TestLogWriter::Custom(Arc::new(MultiNodeLogger::new("receiver ".to_string())));
11641155
let node_receiver = setup_node(&chain_source, config_receiver, None);
11651156

11661157
let address_sender = node_sender.onchain_payment().new_address().unwrap();
@@ -1253,7 +1244,7 @@ fn test_node_announcement_propagation() {
12531244
let chain_source = TestChainSource::Esplora(&electrsd);
12541245

12551246
// Node A will use both listening and announcement addresses
1256-
let mut config_a = random_config(true);
1247+
let mut config_a = random_config(true, "node_a".to_string());
12571248
let node_a_alias_string = "ldk-node-a".to_string();
12581249
let mut node_a_alias_bytes = [0u8; 32];
12591250
node_a_alias_bytes[..node_a_alias_string.as_bytes().len()]
@@ -1265,7 +1256,7 @@ fn test_node_announcement_propagation() {
12651256
config_a.node_config.announcement_addresses = Some(node_a_announcement_addresses.clone());
12661257

12671258
// Node B will only use listening addresses
1268-
let mut config_b = random_config(true);
1259+
let mut config_b = random_config(true, "node_b".to_string());
12691260
let node_b_alias_string = "ldk-node-b".to_string();
12701261
let mut node_b_alias_bytes = [0u8; 32];
12711262
node_b_alias_bytes[..node_b_alias_string.as_bytes().len()]
@@ -1525,8 +1516,8 @@ fn lsps2_client_service_integration() {
15251516
max_client_to_self_delay: 1024,
15261517
};
15271518

1528-
let service_config = random_config(true);
1529-
setup_builder!(service_builder, service_config.node_config);
1519+
let service_config = random_config(true, "service_node".to_string());
1520+
setup_builder!(service_builder, service_config);
15301521
service_builder.set_chain_source_esplora(esplora_url.clone(), Some(sync_config));
15311522
service_builder.set_liquidity_provider_lsps2(lsps2_service_config);
15321523
let service_node = service_builder.build().unwrap();
@@ -1535,15 +1526,15 @@ fn lsps2_client_service_integration() {
15351526
let service_node_id = service_node.node_id();
15361527
let service_addr = service_node.listening_addresses().unwrap().first().unwrap().clone();
15371528

1538-
let client_config = random_config(true);
1539-
setup_builder!(client_builder, client_config.node_config);
1529+
let client_config = random_config(true, "client_node".to_string());
1530+
setup_builder!(client_builder, client_config);
15401531
client_builder.set_chain_source_esplora(esplora_url.clone(), Some(sync_config));
15411532
client_builder.set_liquidity_source_lsps2(service_node_id, service_addr, None);
15421533
let client_node = client_builder.build().unwrap();
15431534
client_node.start().unwrap();
15441535

1545-
let payer_config = random_config(true);
1546-
setup_builder!(payer_builder, payer_config.node_config);
1536+
let payer_config = random_config(true, "payer_node".to_string());
1537+
setup_builder!(payer_builder, payer_config);
15471538
payer_builder.set_chain_source_esplora(esplora_url.clone(), Some(sync_config));
15481539
let payer_node = payer_builder.build().unwrap();
15491540
payer_node.start().unwrap();
@@ -1729,7 +1720,7 @@ fn facade_logging() {
17291720
let chain_source = TestChainSource::Esplora(&electrsd);
17301721

17311722
let logger = init_log_logger(LevelFilter::Trace);
1732-
let mut config = random_config(false);
1723+
let mut config = random_config(false, "single_node".to_string());
17331724
config.log_writer = TestLogWriter::LogFacade;
17341725

17351726
println!("== Facade logging starts ==");
@@ -1813,7 +1804,7 @@ async fn drop_in_async_context() {
18131804
let chain_source = TestChainSource::Esplora(&electrsd);
18141805
let seed_bytes = vec![42u8; 64];
18151806

1816-
let config = random_config(true);
1807+
let config = random_config(true, "single_node".to_string());
18171808
let node = setup_node(&chain_source, config, Some(seed_bytes));
18181809
node.stop().unwrap();
18191810
}

tests/reorg_test.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@ proptest! {
2222
let chain_source_esplora = TestChainSource::Esplora(&electrsd);
2323

2424
macro_rules! config_node {
25-
($chain_source: expr, $anchor_channels: expr) => {{
26-
let config_a = random_config($anchor_channels);
25+
($chain_source: expr, $anchor_channels: expr, $node_id: expr) => {{
26+
let config_a = random_config($anchor_channels, $node_id);
2727
let node = setup_node(&$chain_source, config_a, None);
2828
node
2929
}};
3030
}
3131
let anchor_channels = true;
3232
let nodes = vec![
33-
config_node!(chain_source_electrsd, anchor_channels),
34-
config_node!(chain_source_bitcoind, anchor_channels),
35-
config_node!(chain_source_esplora, anchor_channels),
33+
config_node!(chain_source_electrsd, anchor_channels, "node_electrsd".to_string()),
34+
config_node!(chain_source_bitcoind, anchor_channels, "node_bitcoind".to_string()),
35+
config_node!(chain_source_esplora, anchor_channels, "node_esplora".to_string()),
3636
];
3737

3838
let (bitcoind, electrs) = (&bitcoind.client, &electrsd.client);

0 commit comments

Comments
 (0)