diff options
author | Alexander Kornienko <alexfh@google.com> | 2014-07-11 12:39:32 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2014-07-11 12:39:32 +0000 |
commit | c58b079d23a4d76d0a7c9777ed7bdcb66d92d89b (patch) | |
tree | a6188689dd5b98b7c0d51c8e192a011e510e7e10 /test/FileCheck | |
parent | 52c50f5ec5f5fd35f88c955edeacd5e81e8e025f (diff) |
Add FileCheck -implicit-check-not option to allow stricter tests without adding too many CHECK-NOTs manually.
Summary:
Add FileCheck -implicit-check-not option which allows specifying a
pattern that should only occur in the input when explicitly matched by a
positive check. This feature allows checking tool diagnostics in a way
clang -verify does it for compiler diagnostics.
The option has been tested on a number of clang-tidy checks, I'll post a link to
the clang-tidy patch to this thread.
Once there's an agreement on the general direction, I can add tests and
documentation.
Reviewers: djasper, bkramer
Reviewed By: bkramer
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D4462
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212810 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/FileCheck')
-rw-r--r-- | test/FileCheck/implicit-check-not.txt | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/FileCheck/implicit-check-not.txt b/test/FileCheck/implicit-check-not.txt new file mode 100644 index 00000000000..42677362158 --- /dev/null +++ b/test/FileCheck/implicit-check-not.txt @@ -0,0 +1,44 @@ +; RUN: sed 's#^;.*##' %s | FileCheck -check-prefix=CHECK-PASS -implicit-check-not=warning: %s +; RUN: sed 's#^;.*##' %s | not FileCheck -check-prefix=CHECK-FAIL1 -implicit-check-not=warning: %s 2>&1 | FileCheck %s -check-prefix CHECK-ERROR1 +; RUN: sed 's#^;.*##' %s | not FileCheck -check-prefix=CHECK-FAIL2 -implicit-check-not=warning: %s 2>&1 | FileCheck %s -check-prefix CHECK-ERROR2 +; RUN: sed 's#^;.*##' %s | not FileCheck -check-prefix=CHECK-FAIL3 -implicit-check-not=warning: %s 2>&1 | FileCheck %s -check-prefix CHECK-ERROR3 +; RUN: sed 's#^;.*##' %s | not FileCheck -check-prefix=CHECK-FAIL1 -implicit-check-not='{{aaa|bbb|ccc}}' %s 2>&1 | FileCheck %s -check-prefix CHECK-ERROR4 +; RUN: sed 's#^;.*##' %s | not FileCheck -check-prefix=CHECK-FAIL1 -implicit-check-not=aaa -implicit-check-not=bbb -implicit-check-not=ccc %s 2>&1 | FileCheck %s -check-prefix CHECK-ERROR5 +; RUN: sed 's#^;.*##' %s | not FileCheck -check-prefix=CHECK-FAIL2 -implicit-check-not=aaa -implicit-check-not=bbb -implicit-check-not=ccc %s 2>&1 | FileCheck %s -check-prefix CHECK-ERROR6 +; RUN: sed 's#^;.*##' %s | not FileCheck -check-prefix=CHECK-FAIL3 -implicit-check-not=aaa -implicit-check-not=bbb -implicit-check-not=ccc %s 2>&1 | FileCheck %s -check-prefix CHECK-ERROR7 + +warning: aaa +; CHECK-PASS: warning: aaa +; CHECK-ERROR1: error: CHECK-FAIL1-NOT: string occurred! +; CHECK-ERROR1: command line:1:22: note: CHECK-FAIL1-NOT: pattern specified here +; CHECK-ERROR1-NEXT: -implicit-check-not='warning:' +; CHECK-FAIL2: warning: aaa +; CHECK-FAIL3: warning: aaa +; CHECK-ERROR4: error: CHECK-FAIL1-NOT: string occurred! +; CHECK-ERROR4: command line:1:22: note: CHECK-FAIL1-NOT: pattern specified here +; CHECK-ERROR4-NEXT: {{-implicit-check-not='\{\{aaa\|bbb\|ccc\}\}'}} +; CHECK-ERROR5: error: CHECK-FAIL1-NOT: string occurred! +; CHECK-ERROR5: command line:1:22: note: CHECK-FAIL1-NOT: pattern specified here +; CHECK-ERROR5-NEXT: -implicit-check-not='aaa' + +warning: bbb +; CHECK-PASS: warning: bbb +; CHECK-FAIL1: warning: bbb +; CHECK-ERROR2: error: CHECK-FAIL2-NOT: string occurred! +; CHECK-ERROR2: command line:1:22: note: CHECK-FAIL2-NOT: pattern specified here +; CHECK-ERROR2-NEXT: -implicit-check-not='warning:' +; CHECK-FAIL3: warning: bbb +; CHECK-ERROR6: error: CHECK-FAIL2-NOT: string occurred! +; CHECK-ERROR6: command line:1:22: note: CHECK-FAIL2-NOT: pattern specified here +; CHECK-ERROR6-NEXT: -implicit-check-not='bbb' + +warning: ccc +; CHECK-PASS: warning: ccc +; CHECK-FAIL1: warning: ccc +; CHECK-FAIL2: warning: ccc +; CHECK-ERROR3: error: CHECK-FAIL3-NOT: string occurred! +; CHECK-ERROR3: command line:1:22: note: CHECK-FAIL3-NOT: pattern specified here +; CHECK-ERROR3-NEXT: -implicit-check-not='warning:' +; CHECK-ERROR7: error: CHECK-FAIL3-NOT: string occurred! +; CHECK-ERROR7: command line:1:22: note: CHECK-FAIL3-NOT: pattern specified here +; CHECK-ERROR7-NEXT: -implicit-check-not='ccc' |