From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- vendor/xshell/tests/compile_time.rs | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 vendor/xshell/tests/compile_time.rs (limited to 'vendor/xshell/tests/compile_time.rs') diff --git a/vendor/xshell/tests/compile_time.rs b/vendor/xshell/tests/compile_time.rs new file mode 100644 index 000000000..ca35eefe8 --- /dev/null +++ b/vendor/xshell/tests/compile_time.rs @@ -0,0 +1,41 @@ +use std::time::{Duration, Instant}; + +use xshell::{cmd, Shell}; + +#[test] +fn fixed_cost_compile_times() { + let sh = Shell::new().unwrap(); + + let _p = sh.push_dir("tests/data"); + let baseline = compile_bench(&sh, "baseline"); + let _ducted = compile_bench(&sh, "ducted"); + let xshelled = compile_bench(&sh, "xshelled"); + let ratio = (xshelled.as_millis() as f64) / (baseline.as_millis() as f64); + assert!(1.0 < ratio && ratio < 10.0); + + fn compile_bench(sh: &Shell, name: &str) -> Duration { + let _p = sh.push_dir(name); + let cargo_build = cmd!(sh, "cargo build -q"); + cargo_build.read().unwrap(); + + let n = 5; + let mut times = Vec::new(); + for _ in 0..n { + sh.remove_path("./target").unwrap(); + let start = Instant::now(); + cargo_build.read().unwrap(); + let elapsed = start.elapsed(); + times.push(elapsed); + } + + times.sort(); + times.remove(0); + times.pop(); + let total = times.iter().sum::(); + let average = total / (times.len() as u32); + + eprintln!("compiling {name}: {average:?}"); + + total + } +} -- cgit v1.2.3