diff --git a/src/find/matchers/mod.rs b/src/find/matchers/mod.rs index 2ac407c0..ffbdaacc 100644 --- a/src/find/matchers/mod.rs +++ b/src/find/matchers/mod.rs @@ -975,7 +975,7 @@ fn build_matcher_tree( ) } } - None => return Err(From::from(format!("Unrecognized flag: '{}'", args[i]))), + None => return Err(From::from(format!("unknown predicate '{}'", args[i]))), } } }; diff --git a/src/find/mod.rs b/src/find/mod.rs index df87609d..deb0a24a 100644 --- a/src/find/mod.rs +++ b/src/find/mod.rs @@ -546,7 +546,7 @@ mod tests { // let result = super::parse_args(&["-asdadsafsfsadcs"]); if let Err(e) = result { - assert_eq!(e.to_string(), "Unrecognized flag: '-asdadsafsfsadcs'"); + assert_eq!(e.to_string(), "unknown predicate '-asdadsafsfsadcs'"); } else { panic!("parse_args should have returned an error"); } diff --git a/tests/test_find.rs b/tests/test_find.rs index 5497a32e..266bb7ca 100644 --- a/tests/test_find.rs +++ b/tests/test_find.rs @@ -82,6 +82,24 @@ fn multiple_matcher_success() { .stdout_contains("abbbc"); } +#[test] +fn unknown_predicate_is_rejected() { + // GNU find rejects an unrecognized predicate with + // "find: unknown predicate ''" and exit code 1 (see the GNU + // testsuite's tests/find/refuse-noop test). + ucmd() + .arg("-noop") + .fails() + .stderr_contains("unknown predicate '-noop'") + .no_stdout(); + + ucmd() + .arg("---noop") + .fails() + .stderr_contains("unknown predicate '---noop'") + .no_stdout(); +} + #[test] fn multiple_matcher_failure() { ucmd()