]> git.lizzy.rs Git - rust.git/blobdiff - build_system/utils.rs
Sync from rust 8e9c93df464b7ada3fc7a1c8ccddd9dcb24ee0a0
[rust.git] / build_system / utils.rs
index 4015a2beaba2279b80bd2f4bb3ab2c083caf048c..48da64906e2a4b30189c82535f560a899e547510 100644 (file)
@@ -24,6 +24,32 @@ pub(crate) fn cargo_command(
     cmd
 }
 
+pub(crate) fn hyperfine_command(
+    warmup: u64,
+    runs: u64,
+    prepare: Option<Command>,
+    a: Command,
+    b: Command,
+) -> Command {
+    let mut bench = Command::new("hyperfine");
+
+    if warmup != 0 {
+        bench.arg("--warmup").arg(warmup.to_string());
+    }
+
+    if runs != 0 {
+        bench.arg("--runs").arg(runs.to_string());
+    }
+
+    if let Some(prepare) = prepare {
+        bench.arg("--prepare").arg(format!("{:?}", prepare));
+    }
+
+    bench.arg(format!("{:?}", a)).arg(format!("{:?}", b));
+
+    bench
+}
+
 #[track_caller]
 pub(crate) fn try_hard_link(src: impl AsRef<Path>, dst: impl AsRef<Path>) {
     let src = src.as_ref();