158 lines
2.8 KiB
Rust
158 lines
2.8 KiB
Rust
#![allow(dead_code)]
|
|
#![warn(clippy::redundant_test_prefix)]
|
|
|
|
fn main() {
|
|
// Normal function, no redundant prefix.
|
|
}
|
|
|
|
fn f1() {
|
|
// Normal function, no redundant prefix.
|
|
}
|
|
|
|
fn test_f2() {
|
|
// Has prefix, but no `#[test]` attribute, ignore.
|
|
}
|
|
|
|
#[test]
|
|
fn f3() {
|
|
//~^ redundant_test_prefix
|
|
|
|
// Has prefix, has `#[test]` attribute. Not within a `#[cfg(test)]`.
|
|
// No collision with other functions, should emit warning.
|
|
}
|
|
|
|
#[cfg(test)]
|
|
#[test]
|
|
fn f4() {
|
|
//~^ redundant_test_prefix
|
|
|
|
// Has prefix, has `#[test]` attribute, within a `#[cfg(test)]`.
|
|
// No collision with other functions, should emit warning.
|
|
}
|
|
|
|
mod m1 {
|
|
pub fn f5() {}
|
|
}
|
|
|
|
#[cfg(test)]
|
|
#[test]
|
|
fn f6() {
|
|
//~^ redundant_test_prefix
|
|
|
|
use m1::f5;
|
|
|
|
f5();
|
|
// Has prefix, has `#[test]` attribute, within a `#[cfg(test)]`.
|
|
// No collision, has function call, but it will not result in recursion.
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn foo() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn foo_with_call() {
|
|
//~^ redundant_test_prefix
|
|
|
|
main();
|
|
}
|
|
|
|
#[test]
|
|
fn f1() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn f2() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn f3() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn f4() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn f5() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn f6() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
}
|
|
|
|
mod tests_no_annotations {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn foo() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn foo_with_call() {
|
|
//~^ redundant_test_prefix
|
|
|
|
main();
|
|
}
|
|
|
|
#[test]
|
|
fn f1() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn f2() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn f3() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn f4() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn f5() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
|
|
#[test]
|
|
fn f6() {
|
|
//~^ redundant_test_prefix
|
|
}
|
|
}
|
|
|
|
// This test is inspired by real test in `clippy_utils/src/sugg.rs`.
|
|
// The `is_in_test_function()` checks whether any identifier within a given node's parents is
|
|
// marked with `#[test]` attribute. Thus flagging false positives when nested functions are
|
|
// prefixed with `test_`. Therefore `is_test_function()` has been defined in `clippy_utils`,
|
|
// allowing to select only functions that are immediately marked with `#[test]` annotation.
|
|
//
|
|
// This test case ensures that for such nested functions no error is emitted.
|
|
#[test]
|
|
fn not_op() {
|
|
fn test_not(foo: bool) {
|
|
assert!(foo);
|
|
}
|
|
|
|
// Use helper function
|
|
test_not(true);
|
|
test_not(false);
|
|
}
|