; 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