diff --git a/crates/test-support/src/lib.rs b/crates/test-support/src/lib.rs index 2e6adffe..54f3c8e2 100644 --- a/crates/test-support/src/lib.rs +++ b/crates/test-support/src/lib.rs @@ -2,11 +2,12 @@ extern crate wasm_bindgen_cli_support as cli; use std::env; use std::fs; -use std::io::Write; +use std::io::{Write, Read}; use std::path::{PathBuf, Path}; use std::process::Command; -use std::sync::{Once, ONCE_INIT}; use std::sync::atomic::*; +use std::sync::{Once, ONCE_INIT}; +use std::time::Instant; pub struct Project { files: Vec<(String, String)>, @@ -16,6 +17,10 @@ pub fn project() -> Project { let dir = Path::new(env!("CARGO_MANIFEST_DIR")); let dir = dir.parent().unwrap() // chop off `test-support` .parent().unwrap(); // chop off `crates` + + let mut lockfile = String::new(); + fs::File::open(&dir.join("Cargo.lock")).unwrap() + .read_to_string(&mut lockfile).unwrap(); Project { files: vec![ ("Cargo.toml".to_string(), format!(r#" @@ -34,6 +39,8 @@ pub fn project() -> Project { opt-level = 2 # TODO: decrease when upstream is not buggy "#, dir.display())), + ("Cargo.lock".to_string(), lockfile), + ("run.js".to_string(), r#" var fs = require("fs"); var out = require("./out.compat"); @@ -153,12 +160,16 @@ impl Project { } fn run(cmd: &mut Command, program: &str) { + println!("···················································"); println!("running {:?}", cmd); + let start = Instant::now(); let output = match cmd.output() { Ok(output) => output, Err(err) => panic!("failed to spawn `{}`: {}", program, err), }; println!("exit: {}", output.status); + let dur = start.elapsed(); + println!("dur: {}.{:03}ms", dur.as_secs(), dur.subsec_nanos() / 1_000_000); if output.stdout.len() > 0 { println!("stdout ---\n{}", String::from_utf8_lossy(&output.stdout)); } diff --git a/tests/simple.rs b/tests/simple.rs index cd3fcd91..a67105d5 100644 --- a/tests/simple.rs +++ b/tests/simple.rs @@ -25,5 +25,4 @@ fn add() { } "#) .test(); - }