| ; basic functionality |
| ; RUN: FileCheck %s --input-file %s --check-prefix=CHECK1 |
| foo |
| |
| bar |
| CHECK1: foo |
| CHECK1-EMPTY: |
| CHECK1-NEXT: bar |
| |
| ; next line must be blank |
| ; RUN: %ProtectFileCheckOutput \ |
| ; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK2A 2>&1 \ |
| ; RUN: | FileCheck %s --check-prefix=CHECK2B |
| badger |
| CHECK2A: badger |
| CHECK2A-EMPTY: |
| CHECK2B: CHECK2A-EMPTY: is not on the line after the previous match |
| |
| ; CHECK-EMPTY must have empty pattern |
| ; RUN: %ProtectFileCheckOutput \ |
| ; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK3A 2>&1 \ |
| ; RUN: | FileCheck %s --check-prefix=CHECK3B |
| CHECK3A: foo |
| CHECK3A-EMPTY: this is not empty |
| CHECK3B: found non-empty check string for empty check with prefix 'CHECK3A:' |
| |
| ; CHECK-EMPTY cannot be the first check |
| ; RUN: %ProtectFileCheckOutput \ |
| ; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK4A 2>&1 \ |
| ; RUN: | FileCheck %s --check-prefix=CHECK4B |
| CHECK4A-EMPTY: |
| CHECK4B: found 'CHECK4A-EMPTY' without previous 'CHECK4A: line |
| |
| ; CHECK-EMPTY-NOT and CHECK-NOT-EMPTY rejected |
| ; RUN: %ProtectFileCheckOutput \ |
| ; RUN: not FileCheck %s --input-file %s --check-prefixes=CHECK5A 2>&1 \ |
| ; RUN: | FileCheck %s --check-prefix=CHECK5C |
| ; RUN: %ProtectFileCheckOutput \ |
| ; RUN: not FileCheck %s --input-file %s --check-prefixes=CHECK5B 2>&1 \ |
| ; RUN: | FileCheck %s --check-prefix=CHECK5C |
| CHECK5A-EMPTY-NOT: |
| CHECK5B-NOT-EMPTY: |
| CHECK5C: unsupported -NOT combo on prefix 'CHECK5{{A|B}}' |
| |
| ; whitespace does not count as empty |
| ; RUN: %ProtectFileCheckOutput \ |
| ; RUN: not FileCheck %s --input-file %s --check-prefix=CHECK6A --match-full-lines \ |
| ; RUN: 2>&1 | FileCheck %s --check-prefix=CHECK6B |
| CHECK6A: the next line has spaces |
| CHECK6A-EMPTY: |
| CHECK6B: expected string not found in input |
| |
| ; ***don't add any further blank lines after this point*** |
| ; CHECK-EMPTY, like CHECK-NEXT, will report an error if the first matching |
| ; line is not the line immediately following the previous check. |
| the next line has spaces |
| |