|  | ; 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 | 
|  |  |