aboutsummaryrefslogtreecommitdiff
path: root/tests/expandtest.rs
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2021-02-09 17:42:22 -0800
committerThiƩbaud Weksteen <tweek@google.com>2021-02-23 14:15:28 +0000
commitc1311073c0eab8a9f0566dbe0753f80865912a01 (patch)
treeaa583765ea0c0fd8bddb46d99bb04eae1334edd3 /tests/expandtest.rs
parentec01bc83d1b6780ca097d8de43908ed4be296222 (diff)
downloadpin-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.rs41
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)
+}