From fede7718acd7bd0fc66daf9651fa5801f4d37633 Mon Sep 17 00:00:00 2001 From: Erik Hollensbe Date: Fri, 18 Feb 2022 07:40:26 -0800 Subject: [PATCH] move is_debug() predicate to a static Signed-off-by: Erik Hollensbe --- Cargo.lock | 2 +- src/test/mod.rs | 43 ++++++++++++++++++------------------------- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5075dd8..bcb8449 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -158,7 +158,7 @@ dependencies = [ [[package]] name = "coyote" -version = "0.1.0" +version = "0.1.1" dependencies = [ "async-trait", "base64", diff --git a/src/test/mod.rs b/src/test/mod.rs index 00e829f..52c4888 100644 --- a/src/test/mod.rs +++ b/src/test/mod.rs @@ -34,8 +34,15 @@ use url::Url; const DEBUG_VAR: &str = "DEBUG"; -fn is_debug() -> bool { - !std::env::var(DEBUG_VAR).unwrap_or_default().is_empty() +static INIT: Once = Once::new(); + +lazy_static! { + static ref DEBUG: bool = !std::env::var(DEBUG_VAR).unwrap_or_default().is_empty(); + static ref IMAGES: Vec<&'static str> = vec![ + "certbot/certbot:latest", + "postgres:latest", + "zerotier/zlint:latest", + ]; } impl From for eggshell::Error { @@ -60,7 +67,7 @@ fn pull_images(images: Vec<&str>) -> () { for image in images { let mut cmd = &mut std::process::Command::new("docker"); - if !is_debug() { + if !*DEBUG { cmd = cmd.stdout(Stdio::null()).stderr(Stdio::null()); } @@ -86,22 +93,13 @@ async fn wait_for_images(images: Vec<&str>) -> () { } } -static INIT: Once = Once::new(); -lazy_static! { - static ref IMAGES: Vec<&'static str> = vec![ - "certbot/certbot:latest", - "postgres:latest", - "zerotier/zlint:latest", - ]; -} - const HBA_CONFIG_PATH: &str = "hack/pg_hba.conf"; impl PGTest { pub async fn new(name: &str) -> Result { INIT.call_once(|| { let mut builder = &mut env_logger::builder(); - if is_debug() { + if *DEBUG { builder = builder.filter_level(log::LevelFilter::Info) } builder.init(); @@ -118,7 +116,7 @@ impl PGTest { let docker = Arc::new(Mutex::new(Docker::connect_with_local_defaults().unwrap())); let mut gs = EggShell::new(docker.clone()).await?; - if is_debug() { + if *DEBUG { gs.set_debug(true) } @@ -286,8 +284,8 @@ impl TestService { .launch( name, Config { - attach_stdout: Some(is_debug()), - attach_stderr: Some(is_debug()), + attach_stdout: Some(*DEBUG), + attach_stderr: Some(*DEBUG), image: Some("zerotier/zlint:latest".to_string()), entrypoint: Some( vec!["/bin/sh", "-c"] @@ -387,12 +385,7 @@ impl TestService { config: Config, start_opts: Option>, ) -> Result<(), eggshell::Error> { - self.pg - .clone() - .eggshell() - .lock() - .await - .set_debug(is_debug()); + self.pg.clone().eggshell().lock().await.set_debug(*DEBUG); self.pg .clone() @@ -426,8 +419,8 @@ impl TestService { .logs::( name, Some(LogsOptions:: { - stderr: is_debug(), - stdout: is_debug(), + stderr: *DEBUG, + stdout: *DEBUG, ..Default::default() }), ) @@ -436,7 +429,7 @@ impl TestService { if let Ok(Some(logs)) = logs { error = Some(format!("{}", logs)); let logs = logs.into_bytes(); - if logs.len() > 50 && is_debug() { + if logs.len() > 50 && *DEBUG { std::fs::write("error.log", logs).unwrap(); error = Some("error too long: error written to error.log".to_string()) }