rust/tests/dogfood.rs

50 lines
1.3 KiB
Rust
Raw Normal View History

2016-02-17 11:16:29 -06:00
#![feature(test, plugin)]
#![plugin(clippy)]
#![deny(clippy, clippy_pedantic)]
2015-11-18 10:09:48 -06:00
extern crate compiletest_rs as compiletest;
extern crate test;
2015-11-18 10:09:48 -06:00
2017-09-05 04:33:04 -05:00
use std::env::{set_var, var};
use std::path::PathBuf;
use test::TestPaths;
2015-11-18 10:09:48 -06:00
#[test]
fn dogfood() {
// don't run dogfood on travis, cargo-clippy already runs clippy on itself
if let Ok(travis) = var("TRAVIS") {
if travis == "true" {
return;
}
}
2017-08-02 11:07:05 -05:00
let mut config = compiletest::Config::default();
2015-11-18 10:09:48 -06:00
let cfg_mode = "run-fail".parse().expect("Invalid mode");
2015-11-18 10:09:48 -06:00
let mut s = String::new();
2017-08-01 10:54:21 -05:00
s.push_str(" -L target/debug/");
s.push_str(" -L target/debug/deps");
2017-11-04 14:55:56 -05:00
s.push_str(" -Zextra-plugins=clippy -Ltarget_recur/debug -Dwarnings -Dclippy_pedantic -Dclippy -Dclippy_internal");
2015-11-18 10:09:48 -06:00
config.target_rustcflags = Some(s);
2016-02-17 11:16:29 -06:00
if let Ok(name) = var("TESTNAME") {
config.filter = Some(name.to_owned())
2015-11-18 10:09:48 -06:00
}
config.mode = cfg_mode;
config.verbose = true;
2015-11-18 10:09:48 -06:00
let files = ["src/main.rs", "src/lib.rs", "clippy_lints/src/lib.rs"];
2016-02-17 11:16:29 -06:00
for file in &files {
let paths = TestPaths {
base: PathBuf::new(),
file: PathBuf::from(file),
relative_dir: PathBuf::new(),
};
2016-02-17 11:16:29 -06:00
set_var("CLIPPY_DOGFOOD", "tastes like chicken");
compiletest::runtest::run(config.clone(), &paths);
}
2015-11-18 10:09:48 -06:00
}