summaryrefslogtreecommitdiff
path: root/src/bin/get-test-duration.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/get-test-duration.rs')
-rw-r--r--src/bin/get-test-duration.rs30
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));
+}