rust/tests/dogfood.rs

43 lines
1.1 KiB
Rust
Raw Normal View History

2016-02-17 18:16:29 +01:00
#![feature(test, plugin)]
#![plugin(clippy)]
#![deny(clippy, clippy_pedantic)]
2015-11-18 17:09:48 +01:00
extern crate compiletest_rs as compiletest;
extern crate test;
2015-11-18 17:09:48 +01:00
2016-05-13 13:46:13 +02:00
use std::env::{var, set_var, temp_dir};
use std::path::PathBuf;
use test::TestPaths;
2015-11-18 17:09:48 +01:00
#[test]
fn dogfood() {
let mut config = compiletest::default_config();
2016-02-17 18:16:29 +01:00
let cfg_mode = "run-pass".parse().expect("Invalid mode");
2015-11-18 17:09:48 +01:00
let mut s = String::new();
s.push_str(" -L target/debug/");
s.push_str(" -L target/debug/deps");
s.push_str(" -Zextra-plugins=clippy -Ltarget_recur/debug -Dclippy_pedantic -Dclippy");
config.target_rustcflags = Some(s);
2016-02-17 18:16:29 +01:00
if let Ok(name) = var("TESTNAME") {
config.filter = Some(name.to_owned())
2015-11-18 17:09:48 +01:00
}
2016-05-13 13:46:13 +02:00
if cfg!(windows) {
// work around https://github.com/laumann/compiletest-rs/issues/35 on msvc windows
config.build_base = temp_dir();
}
2015-11-18 17:09:48 +01:00
config.mode = cfg_mode;
let paths = TestPaths {
base: PathBuf::new(),
file: PathBuf::from("src/lib.rs"),
relative_dir: PathBuf::new(),
};
2016-02-17 18:16:29 +01:00
set_var("CLIPPY_DOGFOOD", "tastes like chicken");
compiletest::runtest::run(config, &paths);
2015-11-18 17:09:48 +01:00
}