about summary refs log tree commit diff
path: root/src/test/mod.rs
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2018-09-06 02:07:09 +0200
committerMatthias Krüger <matthias.krueger@famsik.de>2018-09-06 02:07:09 +0200
commite058a3f7e7299fda0e2667765069aba60e400a0f (patch)
tree2c70f94dc02311fa51e478c4d3e232ed9125746f /src/test/mod.rs
parentf655671e12281c1b6ea9d22a0695c14a70de54ee (diff)
fix cargo test --release.
test::verify_check_works was failing in relase mode on my machine.

The problem was it would check for target/debug/rustfmt in release mode instead of
target/release/rustfmt and fail an assert.

This commit fixes it so that cargo check looks for target/debug/rustfmt and
cargo check --release looks for target/release/rustfmt
Diffstat (limited to 'src/test/mod.rs')
-rw-r--r--src/test/mod.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/test/mod.rs b/src/test/mod.rs
index 17f8ffec9a1..f7848dfd737 100644
--- a/src/test/mod.rs
+++ b/src/test/mod.rs
@@ -944,10 +944,21 @@ fn rustfmt() -> PathBuf {
     let mut me = env::current_exe().expect("failed to get current executable");
     me.pop(); // chop of the test name
     me.pop(); // chop off `deps`
+
+    // if we run `cargo test --release` we might only have a release build
+    if cfg!(release) {
+        // ../release/
+        me.pop();
+        me.push("release");
+    }
     me.push("rustfmt");
     assert!(
         me.is_file() || me.with_extension("exe").is_file(),
-        "no rustfmt bin, try running `cargo build` before testing"
+        if cfg!(release) {
+            "no rustfmt bin, try running `cargo build --release` before testing"
+        } else {
+            "no rustfmt bin, try running `cargo build` before testing"
+        }
     );
     me
 }