From c5ce50cb8ddeac096370587299180cf1715a5f97 Mon Sep 17 00:00:00 2001 From: al amoda Date: Wed, 26 Feb 2025 14:19:39 -0500 Subject: [PATCH 1/4] testing_zebradeez --- testutils/tests/integration.rs | 66 ++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/testutils/tests/integration.rs b/testutils/tests/integration.rs index a8ca1b9..df358f0 100644 --- a/testutils/tests/integration.rs +++ b/testutils/tests/integration.rs @@ -57,6 +57,7 @@ async fn launch_zebrad() { zebrad.print_stderr(); } +/* #[ignore = "temporary during refactor into workspace"] #[tokio::test] async fn launch_zebrad_with_cache() { @@ -78,6 +79,71 @@ async fn launch_zebrad_with_cache() { assert_eq!(zebrad.get_chain_height().await, 52.into()); } +*/ +/* +#[ignore = "temporary during refactor into workspace"] +#[tokio::test] +async fn launch_zebrad_with_cache_again() { + tracing_subscriber::fmt().init(); + + let zebrad = Zebrad::launch(ZebradConfig { + zebrad_bin: ZEBRAD_BIN, + network_listen_port: None, + rpc_listen_port: None, + activation_heights: network::ActivationHeights::default(), + miner_address: ZEBRAD_DEFAULT_MINER, + chain_cache: Some(utils::chain_cache_dir().join("client_rpc_tests_large")), + network: network::Network::Regtest, + }) + .await + .unwrap(); + zebrad.print_stdout(); + zebrad.print_stderr(); + + assert_eq!(zebrad.get_chain_height().await, 52.into()); +} +*/ + +#[ignore = "temporary during refactor into workspace"] +#[tokio::test] +async fn launch_zebradeez_with_cache() { + tracing_subscriber::fmt().init(); + + let mut zebradeez1 = Zebrad::launch(ZebradConfig { + zebrad_bin: ZEBRAD_BIN, + network_listen_port: None, + rpc_listen_port: None, + activation_heights: network::ActivationHeights::default(), + miner_address: ZEBRAD_DEFAULT_MINER, + chain_cache: Some(utils::chain_cache_dir().join("client_rpc_tests_large")), + network: network::Network::Regtest, + }) + .await + .unwrap(); + zebradeez1.print_stdout(); + zebradeez1.print_stderr(); + + zebradeez1.stop(); + + let mut zebradeez2 = Zebrad::launch(ZebradConfig { + zebrad_bin: ZEBRAD_BIN, + network_listen_port: None, + rpc_listen_port: None, + activation_heights: network::ActivationHeights::default(), + miner_address: ZEBRAD_DEFAULT_MINER, + chain_cache: Some(utils::chain_cache_dir().join("client_rpc_tests_large")), + network: network::Network::Regtest, + }) + .await + .unwrap(); + zebradeez2.print_stdout(); + zebradeez2.print_stderr(); + + zebradeez2.stop(); + + assert_eq!(zebradeez1.get_chain_height().await, 52.into()); + assert_eq!(zebradeez2.get_chain_height().await, 52.into()); +} #[tokio::test] async fn launch_localnet_zainod_zcashd() { From 8ac296989fc3f63979e9c456b78aa24f6990e345 Mon Sep 17 00:00:00 2001 From: al amoda Date: Thu, 27 Feb 2025 10:49:10 -0500 Subject: [PATCH 2/4] add tests for multiple zebrads --- testutils/tests/integration.rs | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/testutils/tests/integration.rs b/testutils/tests/integration.rs index df358f0..ddfb187 100644 --- a/testutils/tests/integration.rs +++ b/testutils/tests/integration.rs @@ -57,7 +57,6 @@ async fn launch_zebrad() { zebrad.print_stderr(); } -/* #[ignore = "temporary during refactor into workspace"] #[tokio::test] async fn launch_zebrad_with_cache() { @@ -79,9 +78,8 @@ async fn launch_zebrad_with_cache() { assert_eq!(zebrad.get_chain_height().await, 52.into()); } -*/ -/* -#[ignore = "temporary during refactor into workspace"] + +#[ignore = "added to test multiple zcashd instances"] #[tokio::test] async fn launch_zebrad_with_cache_again() { tracing_subscriber::fmt().init(); @@ -102,14 +100,13 @@ async fn launch_zebrad_with_cache_again() { assert_eq!(zebrad.get_chain_height().await, 52.into()); } -*/ -#[ignore = "temporary during refactor into workspace"] +#[ignore = "added to test multiple zcashd instances"] #[tokio::test] -async fn launch_zebradeez_with_cache() { +async fn launch_zebrad_multiple_times_with_cache() { tracing_subscriber::fmt().init(); - let mut zebradeez1 = Zebrad::launch(ZebradConfig { + let zebrad1 = Zebrad::launch(ZebradConfig { zebrad_bin: ZEBRAD_BIN, network_listen_port: None, rpc_listen_port: None, @@ -120,12 +117,10 @@ async fn launch_zebradeez_with_cache() { }) .await .unwrap(); - zebradeez1.print_stdout(); - zebradeez1.print_stderr(); + zebrad1.print_stdout(); + zebrad1.print_stderr(); - zebradeez1.stop(); - - let mut zebradeez2 = Zebrad::launch(ZebradConfig { + let zebrad2 = Zebrad::launch(ZebradConfig { zebrad_bin: ZEBRAD_BIN, network_listen_port: None, rpc_listen_port: None, @@ -136,13 +131,12 @@ async fn launch_zebradeez_with_cache() { }) .await .unwrap(); - zebradeez2.print_stdout(); - zebradeez2.print_stderr(); - - zebradeez2.stop(); + zebrad2.print_stdout(); + zebrad2.print_stderr(); - assert_eq!(zebradeez1.get_chain_height().await, 52.into()); - assert_eq!(zebradeez2.get_chain_height().await, 52.into()); + // Don't stop either zebrad + assert_eq!(zebrad1.get_chain_height().await, 52.into()); + assert_eq!(zebrad2.get_chain_height().await, 52.into()); } #[tokio::test] From ae2f3a3ed2c9cf0fa44623f5f6f9cee9bd581d3b Mon Sep 17 00:00:00 2001 From: al amoda Date: Thu, 27 Feb 2025 12:31:24 -0500 Subject: [PATCH 3/4] typo in label --- testutils/tests/integration.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testutils/tests/integration.rs b/testutils/tests/integration.rs index ddfb187..9573ed5 100644 --- a/testutils/tests/integration.rs +++ b/testutils/tests/integration.rs @@ -79,7 +79,7 @@ async fn launch_zebrad_with_cache() { assert_eq!(zebrad.get_chain_height().await, 52.into()); } -#[ignore = "added to test multiple zcashd instances"] +#[ignore = "added to test multiple zebrad instances"] #[tokio::test] async fn launch_zebrad_with_cache_again() { tracing_subscriber::fmt().init(); @@ -101,7 +101,7 @@ async fn launch_zebrad_with_cache_again() { assert_eq!(zebrad.get_chain_height().await, 52.into()); } -#[ignore = "added to test multiple zcashd instances"] +#[ignore = "added to test multiple zebrad instances"] #[tokio::test] async fn launch_zebrad_multiple_times_with_cache() { tracing_subscriber::fmt().init(); From 55de3c9abc4f5234bb81fe50042864aa8ee86a7a Mon Sep 17 00:00:00 2001 From: al amoda Date: Thu, 27 Feb 2025 17:26:53 -0500 Subject: [PATCH 4/4] add tokio tasks-based async multi zebrad test --- testutils/tests/integration.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/testutils/tests/integration.rs b/testutils/tests/integration.rs index 9573ed5..ef7b0b1 100644 --- a/testutils/tests/integration.rs +++ b/testutils/tests/integration.rs @@ -3,6 +3,7 @@ use std::path::PathBuf; use zcash_protocol::{PoolType, ShieldedProtocol}; use testvectors::REG_O_ADDR_FROM_ABANDONART; +use tokio::task::{AbortHandle, JoinSet}; use zingolib::testutils::lightclient::{from_inputs, get_base_address}; use zingo_infra_testutils::client; @@ -139,6 +140,39 @@ async fn launch_zebrad_multiple_times_with_cache() { assert_eq!(zebrad2.get_chain_height().await, 52.into()); } +#[ignore = "added to test multiple zebrad instances"] +#[tokio::test] +async fn launch_zebrad_multiple_times_in_tokio_tasks_with_cache() { + tracing_subscriber::fmt().init(); + + let mut tests_set: JoinSet<()> = JoinSet::new(); + // spawn 3 tests as tasks + for _ in 0..=2 { + tests_set.spawn(async { + let zebrad = Zebrad::launch(ZebradConfig { + zebrad_bin: ZEBRAD_BIN, + network_listen_port: None, + rpc_listen_port: None, + activation_heights: network::ActivationHeights::default(), + miner_address: ZEBRAD_DEFAULT_MINER, + chain_cache: Some(utils::chain_cache_dir().join("client_rpc_tests_large")), + network: network::Network::Regtest, + }) + .await + .expect("future inside task to unwrap"); + zebrad.print_stdout(); + zebrad.print_stderr(); + // assert within task + assert_eq!(zebrad.get_chain_height().await, 52.into()); + }); + + // Don't stop either zebrad + } + // will only be joined when all tasks have completed launch and asserted a chain height. + tests_set.join_all().await; + // returns pass +} + #[tokio::test] async fn launch_localnet_zainod_zcashd() { tracing_subscriber::fmt().init();