diff options
Diffstat (limited to 'src/bin/obnam-benchmark.rs')
-rw-r--r-- | src/bin/obnam-benchmark.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/bin/obnam-benchmark.rs b/src/bin/obnam-benchmark.rs index 4ac3e4d..8b75229 100644 --- a/src/bin/obnam-benchmark.rs +++ b/src/bin/obnam-benchmark.rs @@ -1,4 +1,5 @@ use log::{debug, error, info}; +use obnam_benchmark::builder::{which_obnam, ObnamBuilder, WhichObnam}; use obnam_benchmark::junk::junk; use obnam_benchmark::report::Reporter; use obnam_benchmark::result::SuiteMeasurements; @@ -75,14 +76,21 @@ struct Run { /// Construct output filename from benchmark run metadata. #[structopt(short, long)] auto: bool, + + /// Which Obnam to run? Defaults to installed. Value is + /// "installed" or a git commit ref. + #[structopt(long, default_value = "installed", parse(try_from_str = which_obnam))] + obnam: WhichObnam, } impl Run { fn run(&self) -> anyhow::Result<()> { info!("running benchmarks from {}", self.spec.display()); + let spec = Specification::from_file(&self.spec)?; - let mut suite = Suite::new()?; - let obnam_version = obnam_benchmark::client::ObnamClient::version()?; + let builder = ObnamBuilder::new(&self.obnam)?; + let obnam_version = builder.version()?; + let mut suite = Suite::new(&builder)?; let mut result = SuiteMeasurements::new(obnam_version)?; for step in spec.steps().iter() { result.push(suite.execute(step)?); |