From 4195eadc9aaf12256ef22b4c598bb9fc79d52a9d Mon Sep 17 00:00:00 2001 From: Suyono Date: Mon, 4 Dec 2023 11:04:24 +1100 Subject: [PATCH] test(spawner): added logs --- Cargo.lock | 124 +++++++++++++++++++++++++++++++++ Cargo.toml | 5 +- src/bin/test-helper/spawner.rs | 30 ++++++-- 3 files changed, 154 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d3b1437..6b05801 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -107,6 +107,17 @@ version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + [[package]] name = "gimli" version = "0.28.0" @@ -119,6 +130,12 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + [[package]] name = "lazy_static" version = "1.4.0" @@ -141,6 +158,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + [[package]] name = "memchr" version = "2.6.4" @@ -241,6 +264,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "proc-macro2" version = "1.0.69" @@ -259,6 +288,36 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + [[package]] name = "redox_syscall" version = "0.4.1" @@ -338,6 +397,17 @@ dependencies = [ "libc", ] +[[package]] +name = "simplelog" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acee08041c5de3d5048c8b3f6f13fafb3026b24ba43c6a695a0c76179b844369" +dependencies = [ + "log", + "termcolor", + "time", +] + [[package]] name = "smallvec" version = "1.11.2" @@ -365,6 +435,15 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + [[package]] name = "thiserror" version = "1.0.50" @@ -392,11 +471,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ "deranged", + "itoa", "libc", "num_threads", "powerfmt", "serde", "time-core", + "time-macros", ] [[package]] @@ -405,6 +486,15 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +[[package]] +name = "time-macros" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] + [[package]] name = "tokio" version = "1.34.0" @@ -460,6 +550,37 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-sys" version = "0.48.0" @@ -532,8 +653,11 @@ version = "0.1.0" dependencies = [ "anyhow", "lazy_static", + "log", "nix", + "rand", "regex", + "simplelog", "thiserror", "time", "tokio", diff --git a/Cargo.toml b/Cargo.toml index 0d95386..bda3dba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,8 +21,11 @@ path = "src/bin/test-helper/log.rs" [dependencies] anyhow = "1.0.75" lazy_static = "1.4.0" -nix = {version = "0.27.1", features = ["process", "signal", "fs"]} +log = { version = "0.4.20", features = ["std"]} +nix = { version = "0.27.1", features = ["process", "signal", "fs"]} +rand = "0.8.5" regex = "1.10.2" +simplelog = "0.12.1" thiserror = "1.0.50" time = { version = "0.3.30", features = ["local-offset"]} tokio = { version = "1.34.0", features = ["full"] } diff --git a/src/bin/test-helper/spawner.rs b/src/bin/test-helper/spawner.rs index c641793..c9d1804 100644 --- a/src/bin/test-helper/spawner.rs +++ b/src/bin/test-helper/spawner.rs @@ -1,17 +1,39 @@ +#[macro_use] extern crate log; +extern crate simplelog; + +use simplelog::*; + use std::error::Error; +use std::fs::OpenOptions; use std::process::Command; use std::env; +use rand::Rng; fn main() -> Result<(), Box> { let args: Vec = env::args().collect(); + let mut rng = rand::thread_rng(); + + let log_path = env::var("LOG_PATH")?; + let file = OpenOptions::new().append(true).create(true).open(log_path)?; + WriteLogger::new(LevelFilter::Debug, Config::default(), file); if args.len() > 1 { let x: u64 = args[1].parse()?; - for _i in 0..x { - // println!("spawning {}", _i); - Command::new("/usr/local/bin/dummy").arg("10").spawn()?; + loop { + for _i in 0..x { + let sleep_time = rng.gen_range(10..20); + info!("starting wmtest-helper-dummy {}", &sleep_time); + let child = Command::new("/usr/local/bin/wmtest-helper-dummy").arg(format!("{}", sleep_time)).spawn(); + if let Err(e) = child { + error!("error spawning child: {e}"); + } + } + + let pause_time = rng.gen_range(10..20); + info!("going to sleep for {}", &pause_time); + std::thread::sleep(std::time::Duration::from_secs(pause_time)); + info!("waking up") } } else { return Err(anyhow::anyhow!("invalid arguments").into()); } - Ok(()) }