diff --git a/src/assert.rs b/src/assert.rs index 8e8daf7..aa11a77 100644 --- a/src/assert.rs +++ b/src/assert.rs @@ -31,8 +31,14 @@ impl default::Default for Assert { /// Defaults to asserting _successful_ execution. fn default() -> Self { Assert { - cmd: vec!["cargo", "run", "--quiet", "--"] - .into_iter() + cmd: vec![ + "cargo", + "run", + #[cfg(not(debug_assertions))] + "--release", + "--quiet", + "--", + ].into_iter() .map(OsString::from) .collect(), env: Environment::inherit(), @@ -61,6 +67,8 @@ impl Assert { cmd: vec![ OsStr::new("cargo"), OsStr::new("run"), + #[cfg(not(debug_assertions))] + OsStr::new("--release"), OsStr::new("--quiet"), OsStr::new("--bin"), name.as_ref(), @@ -530,6 +538,52 @@ mod test { Assert::command(&["printenv"]) } + #[test] + fn main_binary_default_uses_active_profile() { + let assert = Assert::main_binary(); + + let expected = if cfg!(debug_assertions) { + OsString::from("cargo run --quiet -- ") + } else { + OsString::from("cargo run --release --quiet -- ") + }; + + assert_eq!( + expected, + assert + .cmd + .into_iter() + .fold(OsString::from(""), |mut cmd, token| { + cmd.push(token); + cmd.push(" "); + cmd + }) + ); + } + + #[test] + fn cargo_binary_default_uses_active_profile() { + let assert = Assert::cargo_binary("hello"); + + let expected = if cfg!(debug_assertions) { + OsString::from("cargo run --quiet --bin hello -- ") + } else { + OsString::from("cargo run --release --quiet --bin hello -- ") + }; + + assert_eq!( + expected, + assert + .cmd + .into_iter() + .fold(OsString::from(""), |mut cmd, token| { + cmd.push(token); + cmd.push(" "); + cmd + }) + ); + } + #[test] fn take_ownership() { let x = Environment::inherit(); diff --git a/src/bin/assert_fixture.rs b/src/bin/assert_fixture.rs index 5651c8f..66a0fb4 100644 --- a/src/bin/assert_fixture.rs +++ b/src/bin/assert_fixture.rs @@ -1,8 +1,8 @@ extern crate failure; +use std::env; use std::io; use std::io::Write; -use std::env; use std::process; use failure::ResultExt; diff --git a/src/output.rs b/src/output.rs index ee91c89..01a4473 100644 --- a/src/output.rs +++ b/src/output.rs @@ -5,8 +5,8 @@ use std::rc; use difference::Changeset; use failure; -use errors::*; use diff; +use errors::*; #[derive(Clone, PartialEq, Eq)] pub enum Content {