Upgrade compiletest-rs to 0.6 and tester to 0.9
These updates allow us to specify multiple testnames for `TESTNAME`. The new version of compiletest-rs also includes `bless` support, but is not enabled with this PR.
This commit is contained in:
parent
2f19f5f0d7
commit
7226291025
@ -37,8 +37,8 @@ tempfile = { version = "3.1.0", optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
cargo_metadata = "0.12"
|
||||
compiletest_rs = { version = "0.5.0", features = ["tmp"] }
|
||||
tester = "0.7"
|
||||
compiletest_rs = { version = "0.6.0", features = ["tmp"] }
|
||||
tester = "0.9"
|
||||
clippy-mini-macro-test = { version = "0.2", path = "mini-macro" }
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
derive-new = "0.5"
|
||||
|
@ -108,6 +108,9 @@ should only commit files changed by `cargo dev bless` for the
|
||||
specific lint you are creating/editing. Note that if the generated files are
|
||||
empty, they should be removed.
|
||||
|
||||
Note that you can run multiple test files by specifying a comma separated list:
|
||||
`TESTNAME=foo_functions,test2,test3`.
|
||||
|
||||
### Cargo lints
|
||||
|
||||
For cargo lints, the process of testing differs in that we are interested in
|
||||
|
@ -66,8 +66,8 @@ fn third_party_crates() -> String {
|
||||
fn default_config() -> compiletest::Config {
|
||||
let mut config = compiletest::Config::default();
|
||||
|
||||
if let Ok(name) = env::var("TESTNAME") {
|
||||
config.filter = Some(name);
|
||||
if let Ok(filters) = env::var("TESTNAME") {
|
||||
config.filters = filters.split(',').map(std::string::ToString::to_string).collect();
|
||||
}
|
||||
|
||||
if let Some(path) = option_env!("RUSTC_LIB_PATH") {
|
||||
@ -167,7 +167,7 @@ fn run_ui_toml(config: &mut compiletest::Config) {
|
||||
fn run_ui_cargo(config: &mut compiletest::Config) {
|
||||
fn run_tests(
|
||||
config: &compiletest::Config,
|
||||
filter: &Option<String>,
|
||||
filters: &[String],
|
||||
mut tests: Vec<tester::TestDescAndFn>,
|
||||
) -> Result<bool, io::Error> {
|
||||
let mut result = true;
|
||||
@ -181,9 +181,10 @@ fn run_ui_cargo(config: &mut compiletest::Config) {
|
||||
|
||||
// Use the filter if provided
|
||||
let dir_path = dir.path();
|
||||
match &filter {
|
||||
Some(name) if !dir_path.ends_with(name) => continue,
|
||||
_ => {},
|
||||
for filter in filters {
|
||||
if !dir_path.ends_with(filter) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
for case in fs::read_dir(&dir_path)? {
|
||||
@ -243,8 +244,7 @@ fn run_ui_cargo(config: &mut compiletest::Config) {
|
||||
|
||||
let current_dir = env::current_dir().unwrap();
|
||||
let conf_dir = var("CLIPPY_CONF_DIR").unwrap_or_default();
|
||||
let filter = env::var("TESTNAME").ok();
|
||||
let res = run_tests(&config, &filter, tests);
|
||||
let res = run_tests(&config, &config.filters, tests);
|
||||
env::set_current_dir(current_dir).unwrap();
|
||||
set_var("CLIPPY_CONF_DIR", conf_dir);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user