summaryrefslogtreecommitdiff
path: root/src/bin/obnam-benchmark.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/obnam-benchmark.rs')
-rw-r--r--src/bin/obnam-benchmark.rs12
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)?);