2016-05-22 17:35:30 +00:00
|
|
|
#[macro_export]
|
|
|
|
macro_rules! assert_empty_stderr(
|
|
|
|
($cond:expr) => (
|
|
|
|
if $cond.stderr.len() > 0 {
|
|
|
|
panic!(format!("stderr: {}", $cond.stderr))
|
|
|
|
}
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! assert_empty_stdout(
|
|
|
|
($cond:expr) => (
|
|
|
|
if $cond.stdout.len() > 0 {
|
|
|
|
panic!(format!("stdout: {}", $cond.stdout))
|
|
|
|
}
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! assert_no_error(
|
|
|
|
($cond:expr) => (
|
|
|
|
assert!($cond.success);
|
|
|
|
if $cond.stderr.len() > 0 {
|
|
|
|
panic!(format!("stderr: {}", $cond.stderr))
|
|
|
|
}
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! path_concat {
|
|
|
|
($e:expr, ..$n:expr) => {{
|
|
|
|
use std::path::PathBuf;
|
|
|
|
let n = $n;
|
|
|
|
let mut pb = PathBuf::new();
|
|
|
|
for _ in 0..n {
|
|
|
|
pb.push($e);
|
|
|
|
}
|
|
|
|
pb.to_str().unwrap().to_owned()
|
|
|
|
}};
|
|
|
|
($($e:expr),*) => {{
|
|
|
|
use std::path::PathBuf;
|
|
|
|
let mut pb = PathBuf::new();
|
|
|
|
$(
|
|
|
|
pb.push($e);
|
|
|
|
)*
|
|
|
|
pb.to_str().unwrap().to_owned()
|
|
|
|
}};
|
|
|
|
}
|
2016-08-23 11:52:43 +00:00
|
|
|
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! util_name {
|
|
|
|
() => ( module_path!().split("_").nth(1).expect("no test name") )
|
|
|
|
}
|
|
|
|
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! new_ucmd {
|
|
|
|
() => ( TestScenario::new(util_name!()).ucmd() )
|
|
|
|
}
|
|
|
|
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! at_and_ucmd {
|
|
|
|
() => ({
|
|
|
|
let ts = TestScenario::new(util_name!());
|
2016-08-23 12:57:13 +00:00
|
|
|
(ts.fixtures.clone(), ts.ucmd())
|
2016-08-23 11:52:43 +00:00
|
|
|
})
|
|
|
|
}
|