diff options
Diffstat (limited to 'src/bin/get-test-duration.rs')
-rw-r--r-- | src/bin/get-test-duration.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/bin/get-test-duration.rs b/src/bin/get-test-duration.rs new file mode 100644 index 0000000..79dc819 --- /dev/null +++ b/src/bin/get-test-duration.rs @@ -0,0 +1,30 @@ +use std::fs::File; +use memmap::MmapOptions; +use std::process; +use ci_cgi::{ciconfig_read, test_duration}; +use clap::Parser; + +#[derive(Parser)] +#[command(author, version, about, long_about = None)] +struct Args { + test: String, + subtest: String, +} + +fn main() { + let args = Args::parse(); + + let rc = ciconfig_read(); + if let Err(e) = rc { + eprintln!("could not read config; {}", e); + process::exit(1); + } + let rc = rc.unwrap(); + let rc = rc.ktest; + + let durations_file = File::open(rc.output_dir.join("test_durations.capnp")).ok(); + let durations_map = durations_file.map(|x| unsafe { MmapOptions::new().map(&x).ok() } ).flatten(); + let durations = durations_map.as_ref().map(|x| x.as_ref()); + + println!("{:?}", test_duration(durations, &args.test, &args.subtest)); +} |