use crate::helpers::{bench_pull_save_dest, benchmark_dir, scarf_command};
mod helpers;
#[test]
fn bench_list_outputs_a_table() {
let benchmark_dir = benchmark_dir();
let output = scarf_command()
.arg("bench")
.arg("list")
.arg("--benchmark-dir")
.arg(benchmark_dir.to_str().unwrap())
.output()
.expect("Run scarf bench list --benchmark-dir ... ");
assert!(
output.status.success(),
"stderr: {}",
String::from_utf8_lossy(&output.stderr)
);
}
#[test]
fn bench_list_outputs_a_table_with_a_specific_layer() {
let benchmark_dir = benchmark_dir();
let (layer, _, __) = helpers::find_first_app(&benchmark_dir);
let output = scarf_command()
.arg("bench")
.arg("list")
.arg("--benchmark-dir")
.arg(benchmark_dir.to_str().unwrap())
.arg("--layer")
.arg(layer.as_str())
.output()
.expect("Run scarf bench list --benchmark-dir ... --layer ... ");
assert!(
output.status.success(),
"stderr: {}",
String::from_utf8_lossy(&output.stderr)
);
}
#[test]
fn bench_list_bails_when_a_layer_does_not_exist() {
let benchmark_dir = benchmark_dir();
let output = scarf_command()
.arg("bench")
.arg("list")
.arg("--benchmark-dir")
.arg(benchmark_dir.to_str().unwrap())
.arg("--layer")
.arg("this_layer_does_not_exist")
.output()
.expect("Run scarf bench list --benchmark-dir ... --layer ... ");
assert!(
!output.status.success(),
"stderr: {}",
String::from_utf8_lossy(&output.stderr)
);
assert!(
String::from_utf8_lossy(&output.stderr)
.contains("this_layer_does_not_exist"),
"Error message did not include the non-existent layer name"
);
}
#[test]
fn bench_test_as_a_dryrun_on_a_specfic_layer() {
let benchmark_dir = benchmark_dir();
let (layer, _, _) = helpers::find_first_app(&benchmark_dir);
let output = scarf_command()
.arg("bench")
.arg("test")
.arg("--benchmark-dir")
.arg(benchmark_dir.to_str().unwrap())
.arg("--layer")
.arg(layer.as_str())
.arg("--dry-run") .output()
.expect("Run scarf bench test --benchmark-dir ... --layer ... ");
assert!(
output.status.success(),
"stderr: {}",
String::from_utf8_lossy(&output.stderr)
);
}
#[test]
fn bench_test_on_an_absent_layer() {
let benchmark_dir = benchmark_dir();
let output = scarf_command()
.arg("bench")
.arg("test")
.arg("--benchmark-dir")
.arg(benchmark_dir.to_str().unwrap())
.arg("--layer")
.arg("this_layer_does_not_exist")
.output()
.expect("Run scarf bench test --benchmark-dir ... --layer ... ");
assert!(
!output.status.success(),
"stderr: {}",
String::from_utf8_lossy(&output.stderr)
);
}
#[test]
fn bench_pull_gets_the_latest_version() -> anyhow::Result<()> {
scarf_command()
.arg("bench")
.arg("pull")
.arg("--dest")
.arg(bench_pull_save_dest().to_str().unwrap())
.output()
.inspect(|o| {
assert!(
o.status.success(),
"stderr: {}",
String::from_utf8_lossy(&o.stderr)
)
})?;
Ok(())
}