blob: 8593c01f744ac4afe66d23020849d2a8ae7fe7ab [file] [log] [blame]
#![allow(dead_code)]
extern crate syntax;
extern crate walkdir;
use std;
use std::env;
use std::process::Command;
use self::walkdir::DirEntry;
pub mod eq;
pub mod parse;
/// Read the `ABORT_AFTER_FAILURE` environment variable, and parse it.
pub fn abort_after() -> usize {
match env::var("ABORT_AFTER_FAILURE") {
Ok(s) => s.parse().expect("failed to parse ABORT_AFTER_FAILURE"),
Err(_) => std::usize::MAX,
}
}
pub fn base_dir_filter(entry: &DirEntry) -> bool {
let path = entry.path();
if path.is_dir() {
return true; // otherwise walkdir does not visit the files
}
if path.extension().map(|e| e != "rs").unwrap_or(true) {
return false;
}
let path_string = path.to_string_lossy();
let path_string = if cfg!(windows) {
path_string.replace('\\', "/").into()
} else {
path_string
};
// TODO assert that parsing fails on the parse-fail cases
if path_string.starts_with("tests/rust/src/test/parse-fail")
|| path_string.starts_with("tests/rust/src/test/compile-fail")
|| path_string.starts_with("tests/rust/src/test/rustfix")
{
return false;
}
if path_string.starts_with("tests/rust/src/test/ui") {
let stderr_path = path.with_extension("stderr");
if stderr_path.exists() {
// Expected to fail in some way
return false;
}
}
match path_string.as_ref() {
// Deprecated placement syntax
"tests/rust/src/test/run-pass/new-box-syntax.rs" |
"tests/rust/src/test/ui/obsolete-in-place/bad.rs" |
// not actually test cases
"tests/rust/src/test/run-pass/macros/auxiliary/macro-comma-support.rs" |
"tests/rust/src/test/run-pass/macros/auxiliary/macro-include-items-expr.rs" |
"tests/rust/src/test/ui/issues/auxiliary/issue-21146-inc.rs" => false,
_ => true,
}
}
pub fn clone_rust() {
let result = Command::new("tests/clone.sh").status().unwrap();
println!("result: {}", result);
assert!(result.success());
}