Skip to content

Commit

Permalink
Upgrade compiletest-rs to 0.6 and tester to 0.9
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
phansch committed Feb 15, 2021
1 parent 2f19f5f commit 7226291
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 10 deletions.
4 changes: 2 additions & 2 deletions Cargo.toml
Expand Up @@ -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"
Expand Down
3 changes: 3 additions & 0 deletions doc/adding_lints.md
Expand Up @@ -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
Expand Down
16 changes: 8 additions & 8 deletions tests/compile-test.rs
Expand Up @@ -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") {
Expand Down Expand Up @@ -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;
Expand All @@ -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)? {
Expand Down Expand Up @@ -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);

Expand Down

0 comments on commit 7226291

Please sign in to comment.