mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-27 05:30:29 +00:00
162ad1bb2a
In some cases it is desirable to match the same pattern repeatedly many times. Currently the only way to do it is to copy the same check pattern as many times as needed. And that gets pretty unwieldy when its more than count is big. Introducing CHECK-COUNT-<num> directive which acts like a plain CHECK directive yet matches the same pattern exactly <num> times. Extended FileCheckType to a struct to add Count there. Changed some parsing routines to handle non-fixed length of directive (all currently existing directives were fixed-length). The code is generic enough to allow future support for COUNT in more than just PlainCheck directives. See motivating example for this feature in reviews.llvm.org/D54223. Reviewed By: chandlerc, dblaikie Differential Revision: https://reviews.llvm.org/D54336 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346722 91177308-0d34-0410-b5e6-96231b3b80d8
101 lines
3.0 KiB
Plaintext
101 lines
3.0 KiB
Plaintext
;
|
|
; Basic error checking.
|
|
;
|
|
|
|
this is something else
|
|
|
|
; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK-ERR1 2>&1 | FileCheck %s --check-prefix=ERRCOUNT1
|
|
CHECK-ERR1-COUNT-xx: this
|
|
ERRCOUNT1: [[@LINE-1]]:18: error: invalid count in -COUNT specification on prefix 'CHECK-ERR1'
|
|
|
|
; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK-ERR2 2>&1 | FileCheck %s --check-prefix=ERRCOUNT2
|
|
CHECK-ERR2-COUNT-0x1: something
|
|
ERRCOUNT2: [[@LINE-1]]:19: error: invalid count in -COUNT specification on prefix 'CHECK-ERR2'
|
|
|
|
; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK-ERR3 2>&1 | FileCheck %s --check-prefix=ERRCOUNT3
|
|
CHECK-ERR3-COUNT-100x: else
|
|
ERRCOUNT3: [[@LINE-1]]:21: error: invalid count in -COUNT specification on prefix 'CHECK-ERR3'
|
|
|
|
; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK-ERR4 2>&1 | FileCheck %s --check-prefix=ERRCOUNT4
|
|
CHECK-ERR4-COUNT-0: else
|
|
ERRCOUNT4: [[@LINE-1]]:19: error: invalid count in -COUNT specification on prefix 'CHECK-ERR4'
|
|
|
|
;
|
|
; Main functionality
|
|
;
|
|
|
|
this is duplicate
|
|
this is duplicate
|
|
this is not duplicate
|
|
this is duplicate
|
|
this is duplicate
|
|
this is duplicate
|
|
|
|
; RUN: FileCheck %s --input-file %s --check-prefix=CHECK-CNT1
|
|
CHECK-CNT1-COUNT-1: this is duplicate
|
|
CHECK-CNT1: this is duplicate
|
|
CHECK-CNT1-NEXT: this is not duplicate
|
|
|
|
; RUN: FileCheck %s --input-file %s --check-prefix=CHECK-CNT2
|
|
CHECK-CNT2-COUNT-2: this is duplicate
|
|
CHECK-CNT2: this is not duplicate
|
|
|
|
; RUN: FileCheck %s --input-file %s --check-prefix=CHECK-CNT3
|
|
CHECK-CNT3-COUNT-2: this is duplicate
|
|
CHECK-CNT3: this is not duplicate
|
|
CHECK-CNT3-COUNT-3: this is duplicate
|
|
CHECK-CNT3-NOT: {{^}}this is duplicate
|
|
|
|
; RUN: FileCheck %s --input-file %s --check-prefix=CHECK-CNT4
|
|
CHECK-CNT4-COUNT-5: this is duplicate
|
|
CHECK-CNT4-EMPTY:
|
|
|
|
Many-label:
|
|
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
-many-
|
|
|
|
; RUN: FileCheck %s --input-file %s --check-prefix=CHECK-CNTMANY
|
|
CHECK-CNTMANY-COUNT-2: this is duplicate
|
|
CHECK-CNTMANY-LABEL: Many-label:
|
|
CHECK-CNTMANY-EMPTY:
|
|
CHECK-CNTMANY-COUNT-16: {{^}}-many-
|
|
CHECK-CNTMANY-EMPTY:
|
|
|
|
;
|
|
; Tests on mismatches:
|
|
;
|
|
|
|
; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK-MIS1 2>&1 | FileCheck %s --check-prefix=MISCOUNT1
|
|
CHECK-MIS1-COUNT-3: this is duplicate
|
|
CHECK-MIS1: {{^}}this is not duplicate
|
|
MISCOUNT1: [[@LINE-1]]:13: error: CHECK-MIS1: expected string not found in input
|
|
|
|
; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK-MIS2 2>&1 | FileCheck %s --check-prefix=MISCOUNT2
|
|
CHECK-MIS2-COUNT-10: {{^this is duplicate}}
|
|
CHECK-MIS2: {{^}}this is not duplicate
|
|
MISCOUNT2: [[@LINE-2]]:22: error: CHECK-MIS2-COUNT: expected string not found in input
|
|
|
|
; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK-MIS3 2>&1 | FileCheck %s --check-prefix=MISCOUNT3
|
|
CHECK-MIS3-COUNT-5: this is duplicate
|
|
CHECK-MIS3-EMPTY:
|
|
CHECK-MIS3-LABEL: Many-label:
|
|
CHECK-MIS3-EMPTY:
|
|
CHECK-MIS3-COUNT-160: {{^}}-many-
|
|
CHECK-MIS3-EMPTY:
|
|
MISCOUNT3: [[@LINE-2]]:23: error: CHECK-MIS3-COUNT: expected string not found in input (17 out of 160)
|