test logs

This commit is contained in:
Bryan Stitt 2023-06-24 16:43:11 -07:00
parent 38b266156a
commit 94d0a25aaf
5 changed files with 26 additions and 59 deletions

39
Cargo.lock generated

@ -4752,32 +4752,6 @@ dependencies = [
"zeroize",
]
[[package]]
name = "rstest"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de1bb486a691878cd320c2f0d319ba91eeaa2e894066d8b5f8f117c000e9d962"
dependencies = [
"futures",
"futures-timer",
"rstest_macros",
"rustc_version",
]
[[package]]
name = "rstest_macros"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "290ca1a1c8ca7edb7c3283bd44dc35dd54fdec6253a3912e201ba1072018fca8"
dependencies = [
"cfg-if",
"proc-macro2",
"quote",
"rustc_version",
"syn 1.0.109",
"unicode-ident",
]
[[package]]
name = "rust_decimal"
version = "1.30.0"
@ -5991,6 +5965,17 @@ dependencies = [
"winapi-util",
]
[[package]]
name = "test-log"
version = "0.2.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9601d162c1d77e62c1ea0bc8116cd1caf143ce3af947536c3c9052a1677fe0c"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "textwrap"
version = "0.16.0"
@ -6974,7 +6959,6 @@ dependencies = [
"regex",
"reqwest",
"rmp-serde",
"rstest",
"rust_decimal",
"sentry",
"sentry-tracing",
@ -6983,6 +6967,7 @@ dependencies = [
"serde_prometheus",
"siwe",
"strum 0.25.0",
"test-log",
"time 0.3.22",
"tokio",
"tokio-console",

@ -51,9 +51,4 @@ mod tests {
assert!(x.get(&1).is_some());
assert!(x.get(&0).is_none());
}
// #[tokio::test(start_paused = true)]
// async fn test_overweight() {
// todo!("wip");
// }
}

@ -105,5 +105,7 @@ url = { version = "2.4.0", features = ["serde"] }
uuid = { version = "1.3.4", default-features = false, features = ["fast-rng", "serde", "v4", "zerocopy"] }
[dev-dependencies]
rstest = "0.17.0"
test-log = { version = "0.2.12", default-features = false, features = ["trace"] }
tokio = { version = "1.28.2", features = ["full", "test-util"] }
tracing = {version = "0.1", default-features = false}
tracing-subscriber = {version = "0.3", default-features = false, features = ["env-filter", "fmt"]}

@ -258,6 +258,7 @@ mod tests {
};
use hashbrown::HashMap;
use std::env;
use tokio::task::JoinHandle;
use web3_proxy::{
config::{AppConfig, Web3RpcConfig},
@ -266,26 +267,17 @@ mod tests {
use super::*;
#[tokio::test]
#[test_log::test(tokio::test)]
async fn it_works() {
// TODO: move basic setup into a test fixture
let path = env::var("PATH").unwrap();
println!("path: {}", path);
// TODO: how should we handle logs in this?
// TODO: option for super verbose logs
std::env::set_var(
"RUST_LOG",
"info,ethers_providers::rpc=off,web3_proxy=debug",
);
// TODO: how should we do test logging setup with tracing?
// let _ = env_logger::builder().is_test(true).try_init();
info!("path: {}", path);
// todo: fork polygon so we can test our payment contracts
let anvil = Anvil::new().spawn();
println!("Anvil running at `{}`", anvil.endpoint());
info!("Anvil running at `{}`", anvil.endpoint());
let anvil_provider = Provider::<Http>::try_from(anvil.endpoint()).unwrap();
@ -306,8 +298,6 @@ mod tests {
min_synced_rpcs: 1,
public_requests_per_period: Some(1_000_000),
response_cache_max_bytes: 10_u64.pow(7),
redirect_public_url: Some("example.com/".to_string()),
redirect_rpc_key_url: Some("example.com/{{rpc_key_id}}".to_string()),
..Default::default()
},
balanced_rpcs: HashMap::from([
@ -328,6 +318,7 @@ mod tests {
},
),
(
// TODO: i don't think "both" is working
"anvil_both".to_string(),
Web3RpcConfig {
http_url: Some(anvil.endpoint()),
@ -345,7 +336,7 @@ mod tests {
// spawn another thread for running the app
// TODO: allow launching into the local tokio runtime instead of creating a new one?
let handle = {
let app_handle = {
let frontend_port = 0;
let prometheus_port = 0;
let shutdown_sender = shutdown_sender.clone();
@ -400,11 +391,12 @@ mod tests {
assert_eq!(first_block_num, second_block_num - 1);
// TODO: how do we make fixtures run this at the end?
// tell the test app to shut down
shutdown_sender.send(()).unwrap();
println!("waiting for shutdown...");
info!("waiting for shutdown...");
// TODO: panic if a timeout is reached
handle.await.unwrap().unwrap();
app_handle.await.unwrap().unwrap();
}
}

@ -1954,15 +1954,8 @@ mod tests {
}
}
#[tokio::test]
#[test_log::test(tokio::test)]
async fn test_all_connections() {
// // TODO: how should we do test logging setup with tracing?
// let _ = env_logger::builder()
// .filter_level(LevelFilter::Error)
// .filter_module("web3_proxy", LevelFilter::Trace)
// .is_test(true)
// .try_init();
// TODO: use chrono, not SystemTime
let now: U256 = SystemTime::now()
.duration_since(UNIX_EPOCH)