From bfc388d264a4b7c56ffa5765a1cedee3f7d7d8cf Mon Sep 17 00:00:00 2001 From: Daniel Karzel Date: Mon, 11 Jan 2021 12:55:19 +1100 Subject: [PATCH] Enable tracing in monero-harness --- Cargo.lock | 2 ++ monero-harness/Cargo.toml | 2 ++ monero-harness/tests/monerod.rs | 5 +++++ monero-harness/tests/testutils/mod.rs | 27 +++++++++++++++++++++++++++ monero-harness/tests/wallet.rs | 5 +++++ 5 files changed, 41 insertions(+) create mode 100644 monero-harness/tests/testutils/mod.rs diff --git a/Cargo.lock b/Cargo.lock index 53c8cd69..26c27b34 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1945,6 +1945,8 @@ dependencies = [ "testcontainers", "tokio", "tracing", + "tracing-log", + "tracing-subscriber", "url", ] diff --git a/monero-harness/Cargo.toml b/monero-harness/Cargo.toml index 060df781..7b03f00c 100644 --- a/monero-harness/Cargo.toml +++ b/monero-harness/Cargo.toml @@ -17,4 +17,6 @@ spectral = "0.6" testcontainers = "0.11" tokio = { version = "0.2", default-features = false, features = ["blocking", "macros", "rt-core", "time"] } tracing = "0.1" +tracing-log = "0.1" +tracing-subscriber = { version = "0.2", default-features = false, features = ["fmt", "ansi", "env-filter"] } url = "2" diff --git a/monero-harness/tests/monerod.rs b/monero-harness/tests/monerod.rs index 35f12744..62995b7d 100644 --- a/monero-harness/tests/monerod.rs +++ b/monero-harness/tests/monerod.rs @@ -1,11 +1,16 @@ +use crate::testutils::init_tracing; use monero_harness::Monero; use spectral::prelude::*; use std::time::Duration; use testcontainers::clients::Cli; use tokio::time; +mod testutils; + #[tokio::test] async fn init_miner_and_mine_to_miner_address() { + let _guard = init_tracing(); + let tc = Cli::default(); let (monero, _monerod_container) = Monero::new(&tc, None, vec![]).await.unwrap(); diff --git a/monero-harness/tests/testutils/mod.rs b/monero-harness/tests/testutils/mod.rs new file mode 100644 index 00000000..36e861e3 --- /dev/null +++ b/monero-harness/tests/testutils/mod.rs @@ -0,0 +1,27 @@ +use tracing::subscriber::DefaultGuard; +use tracing_log::LogTracer; + +/// Utility function to initialize logging in the test environment. +/// Note that you have to keep the `_guard` in scope after calling in test: +/// +/// ```rust +/// let _guard = init_tracing(); +/// ``` +pub fn init_tracing() -> DefaultGuard { + // converts all log records into tracing events + // Note: Make sure to initialize without unwrapping, otherwise this causes + // trouble when running multiple tests. + let _ = LogTracer::init(); + + let global_filter = tracing::Level::WARN; + let test_filter = tracing::Level::DEBUG; + let monero_harness_filter = tracing::Level::INFO; + + use tracing_subscriber::util::SubscriberInitExt as _; + tracing_subscriber::fmt() + .with_env_filter(format!( + "{},test={},monero_harness={}", + global_filter, test_filter, monero_harness_filter, + )) + .set_default() +} diff --git a/monero-harness/tests/wallet.rs b/monero-harness/tests/wallet.rs index 44fc6ec5..1238a89b 100644 --- a/monero-harness/tests/wallet.rs +++ b/monero-harness/tests/wallet.rs @@ -1,9 +1,14 @@ +use crate::testutils::init_tracing; use monero_harness::Monero; use spectral::prelude::*; use testcontainers::clients::Cli; +mod testutils; + #[tokio::test] async fn fund_transfer_and_check_tx_key() { + let _guard = init_tracing(); + let fund_alice: u64 = 1_000_000_000_000; let fund_bob = 0; let send_to_bob = 5_000_000_000;