diff options
author | Haibo Huang <hhb@google.com> | 2021-02-09 17:42:22 -0800 |
---|---|---|
committer | ThiƩbaud Weksteen <tweek@google.com> | 2021-02-23 14:15:28 +0000 |
commit | c1311073c0eab8a9f0566dbe0753f80865912a01 (patch) | |
tree | aa583765ea0c0fd8bddb46d99bb04eae1334edd3 /tests/expandtest.rs | |
parent | ec01bc83d1b6780ca097d8de43908ed4be296222 (diff) | |
download | pin-project-c1311073c0eab8a9f0566dbe0753f80865912a01.tar.gz |
Upgrade rust/crates/pin-project to 1.0.5
Test: make
Change-Id: Ib3aa891d12640b626e328863102306eb9f973622
Diffstat (limited to 'tests/expandtest.rs')
-rw-r--r-- | tests/expandtest.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/expandtest.rs b/tests/expandtest.rs new file mode 100644 index 0000000..adf8dde --- /dev/null +++ b/tests/expandtest.rs @@ -0,0 +1,41 @@ +#![cfg(not(miri))] +#![warn(rust_2018_idioms, single_use_lifetimes)] + +use std::{ + env, + process::{Command, ExitStatus, Stdio}, +}; + +#[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 path = "tests/expand/*/*.rs"; + if is_ci { + macrotest::expand_without_refresh(path); + } else { + env::set_var("MACROTEST", "overwrite"); + macrotest::expand(path); + } +} + +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) +} |