From 23db3a41e7121425cff21894e9060a487147533a Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Tue, 5 May 2020 21:49:21 -0700 Subject: [PATCH] Run expansion tests only if rustfmt is present --- test_suite/Cargo.toml | 5 ++++- test_suite/build.rs | 25 ++++++++++++++++--------- test_suite/tests/expandtest.rs | 2 +- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/test_suite/Cargo.toml b/test_suite/Cargo.toml index 0decbdaa..b528b031 100644 --- a/test_suite/Cargo.toml +++ b/test_suite/Cargo.toml @@ -12,11 +12,14 @@ unstable = ["serde/unstable"] [dependencies] serde = { path = "../serde" } +[build-dependencies] +toolchain_find = "0.1" + [dev-dependencies] fnv = "1.0" +macrotest = "=1.0.0" rustversion = "1.0" serde = { path = "../serde", features = ["rc", "derive"] } serde_derive = { path = "../serde_derive", features = ["deserialize_in_place"] } serde_test = { path = "../serde_test" } trybuild = "1.0" -macrotest = "=1.0.0" diff --git a/test_suite/build.rs b/test_suite/build.rs index 526e2a4e..5271f2d6 100644 --- a/test_suite/build.rs +++ b/test_suite/build.rs @@ -1,13 +1,13 @@ use std::process::{Command, ExitStatus, Stdio}; -#[cfg(not(windows))] -const CARGO_EXPAND: &str = "cargo-expand"; +fn has_cargo_expand() -> bool { + let cargo_expand = if cfg!(windows) { + "cargo-expand.exe" + } else { + "cargo-expand" + }; -#[cfg(windows)] -const CARGO_EXPAND: &str = "cargo-expand.exe"; - -fn main() { - if Command::new(CARGO_EXPAND) + Command::new(cargo_expand) .arg("--version") .stdin(Stdio::null()) .stdout(Stdio::null()) @@ -16,7 +16,14 @@ fn main() { .as_ref() .map(ExitStatus::success) .unwrap_or(false) - { - println!("cargo:rustc-cfg=cargo_expand"); +} + +fn has_rustfmt() -> bool { + toolchain_find::find_installed_component("rustfmt").is_some() +} + +fn main() { + if has_cargo_expand() && has_rustfmt() { + println!("cargo:rustc-cfg=expandtest"); } } diff --git a/test_suite/tests/expandtest.rs b/test_suite/tests/expandtest.rs index d8913be0..d7177365 100644 --- a/test_suite/tests/expandtest.rs +++ b/test_suite/tests/expandtest.rs @@ -1,5 +1,5 @@ #[cfg_attr(target_os = "emscripten", ignore)] -#[cfg_attr(not(cargo_expand), ignore)] +#[cfg_attr(not(expandtest), ignore)] #[rustversion::attr(not(nightly), ignore)] #[test] fn expandtest() {