blob: 3f0d5c11214a25ecda0b1dbc0e7d3d870745f54d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#![cfg(not(miri))]
#![warn(rust_2018_idioms, single_use_lifetimes)]
use std::{
env,
process::{Command, ExitStatus, Stdio},
};
const PATH: &str = "tests/expand/**/*.rs";
#[rustversion::attr(not(nightly), ignore)]
#[test]
fn expandtest() {
let is_ci = env::var_os("CI").is_some();
let cargo = &*env::var("CARGO").unwrap_or_else(|_| "cargo".into());
if !has_command(&[cargo, "expand"]) || !has_command(&[cargo, "fmt"]) {
if is_ci {
panic!("expandtest requires rustfmt and cargo-expand");
}
return;
}
let args = &["--all-features"];
if is_ci {
macrotest::expand_without_refresh_args(PATH, args);
} else {
env::set_var("MACROTEST", "overwrite");
macrotest::expand_args(PATH, args);
}
}
fn has_command(command: &[&str]) -> bool {
Command::new(command[0])
.args(&command[1..])
.arg("--version")
.stdin(Stdio::null())
.stdout(Stdio::null())
.stderr(Stdio::null())
.status()
.as_ref()
.map(ExitStatus::success)
.unwrap_or(false)
}
|