55 lines
1.8 KiB
Rust
55 lines
1.8 KiB
Rust
extern crate walkdir;
|
|
|
|
use std::process::Command;
|
|
|
|
use self::walkdir::DirEntry;
|
|
|
|
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" |
|
|
// 2015-style dyn that libsyntax rejects
|
|
"tests/rust/src/test/ui/dyn-keyword/dyn-2015-no-warnings-without-lints.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();
|
|
assert!(result.success());
|
|
}
|