diff options
Diffstat (limited to 'find_test.cc')
-rw-r--r-- | find_test.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/find_test.cc b/find_test.cc index 10f865c..d7d44bd 100644 --- a/find_test.cc +++ b/find_test.cc @@ -107,6 +107,17 @@ void CompareFind(const string& cmd) { } } +void ExpectParseFailure(const string& cmd) { + Run(cmd); + + FindCommand fc; + if (fc.Parse(cmd)) { + fprintf(stderr, "Expected parse failure for `%s`\n", cmd.c_str()); + fprintf(stderr, "------------------------------------------\n"); + unit_test_failed = true; + } +} + int FindUnitTests() { Run("rm -rf out/find"); Run("mkdir -p out/find"); @@ -149,5 +160,11 @@ int FindUnitTests() { CompareFind("find .//top"); + CompareFind("find top -type f -name 'a*' -o -name \\*b"); + CompareFind("find top \\! -name 'a*'"); + CompareFind("find top \\( -name 'a*' \\)"); + + ExpectParseFailure("find top -name a\\*"); + return unit_test_failed ? 1 : 0; } |