diff --git a/src/lib.rs b/src/lib.rs index 33ae07b7a..57a92f999 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,6 +3,10 @@ #![feature(num_bits_bytes, iter_arith)] #![allow(unknown_lints)] +// this only exists to allow the "dogfood" integration test to work +#[allow(dead_code)] +fn main() { println!("What are you doing? Don't run clippy as an executable"); } + #[macro_use] extern crate syntax; #[macro_use] diff --git a/tests/dogfood.rs b/tests/dogfood.rs new file mode 100644 index 000000000..61e37c28c --- /dev/null +++ b/tests/dogfood.rs @@ -0,0 +1,24 @@ +extern crate compiletest_rs as compiletest; + +use std::path::Path; +use std::env::var; + +#[test] +fn dogfood() { + let mut config = compiletest::default_config(); + + let cfg_mode = "run-pass".parse().ok().expect("Invalid mode"); + 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); + if let Ok(name) = var::<&str>("TESTNAME") { + let s : String = name.to_owned(); + config.filter = Some(s) + } + + config.mode = cfg_mode; + + compiletest::runtest::run(config, &Path::new("src/lib.rs")); +}