#![feature(test)]
-extern crate compiletest_rs as compiletest;
+use compiletest_rs as compiletest;
extern crate test;
-use std::io;
+use std::env::{set_var, var};
use std::ffi::OsStr;
use std::fs;
-use std::env::{set_var, var};
+use std::io;
use std::path::{Path, PathBuf};
fn clippy_driver_path() -> PathBuf {
config.run_lib_path = rustc_lib_path();
config.compile_lib_path = rustc_lib_path();
}
- config.target_rustcflags = Some(format!("-L {0} -L {0}/deps -Dwarnings", host_libs().display()));
+ config.target_rustcflags = Some(format!(
+ "-L {0} -L {0}/deps -Dwarnings -Zui-testing",
+ host_libs().display()
+ ));
config.mode = cfg_mode;
config.build_base = if rustc_test_suite().is_some() {
}
fn run_mode(mode: &str, dir: PathBuf) {
- compiletest::run_tests(&config(mode, dir));
+ let cfg = config(mode, dir);
+ // clean rmeta data, otherwise "cargo check; cargo test" fails (#2896)
+ cfg.clean_rmeta();
+ compiletest::run_tests(&cfg);
}
fn run_ui_toml_tests(config: &compiletest::Config, mut tests: Vec<test::TestDescAndFn>) -> Result<bool, io::Error> {
relative_dir: dir_path.file_name().unwrap().into(),
};
let test_name = compiletest::make_test_name(&config, &paths);
- let index = tests.iter()
+ let index = tests
+ .iter()
.position(|test| test.desc.name == test_name)
.expect("The test should be in there");
- result &= test::run_tests_console(
- &opts,
- vec![tests.swap_remove(index)])?;
+ result &= test::run_tests_console(&opts, vec![tests.swap_remove(index)])?;
}
}
Ok(result)
let res = run_ui_toml_tests(&config, tests);
match res {
- Ok(true) => {}
+ Ok(true) => {},
Ok(false) => panic!("Some tests failed"),
Err(e) => {
println!("I/O failure during tests: {:?}", e);
- }
+ },
}
}
#[test]
fn compile_test() {
prepare_env();
- run_mode("run-pass", "tests/run-pass".into());
run_mode("ui", "tests/ui".into());
run_ui_toml();
}