mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 12:50:30 +00:00
FileCheck: Add a flag to allow checking empty input
Currently FileCheck errors out on empty input. This is usually the right thing to do, but makes testing things like "this command does not emit some error message" hard to test. This usually leads to people using "command 2>&1 | count 0" instead, and then the bots that use guard malloc fail a few hours later. By adding a flag to FileCheck that allows empty inputs, we can make tests that consist entirely of "CHECK-NOT" lines feasible. llvm-svn: 215127
This commit is contained in:
parent
466f144415
commit
cb358e7d95
11
test/FileCheck/check-empty.txt
Normal file
11
test/FileCheck/check-empty.txt
Normal file
@ -0,0 +1,11 @@
|
||||
// RUN: not FileCheck -check-prefix=FOO %s </dev/null 2>&1 | FileCheck -check-prefix=EMPTY-ERR %s
|
||||
// RUN: not FileCheck -check-prefix=NOFOO %s </dev/null 2>&1 | FileCheck -check-prefix=EMPTY-ERR %s
|
||||
// RUN: not FileCheck -check-prefix=FOO -allow-empty %s </dev/null 2>&1 | FileCheck -check-prefix=NO-EMPTY-ERR -check-prefix=NOT-FOUND %s
|
||||
// RUN: FileCheck -check-prefix=NOFOO -allow-empty %s </dev/null 2>&1 | FileCheck -allow-empty -check-prefix=NO-EMPTY-ERR %s
|
||||
|
||||
; FOO: foo
|
||||
; NOFOO-NOT: foo
|
||||
|
||||
; EMPTY-ERR: FileCheck error: '-' is empty.
|
||||
; NO-EMPTY-ERR-NOT: FileCheck error: '-' is empty.
|
||||
; NOT-FOUND: error: expected string not found in input
|
@ -57,6 +57,11 @@ static cl::list<std::string> ImplicitCheckNot(
|
||||
"this pattern occur which are not matched by a positive pattern"),
|
||||
cl::value_desc("pattern"));
|
||||
|
||||
static cl::opt<bool> AllowEmptyInput(
|
||||
"allow-empty", cl::init(false),
|
||||
cl::desc("Allow the input file to be empty. This is useful when making\n"
|
||||
"checks that some error message does not occur, for example."));
|
||||
|
||||
typedef cl::list<std::string>::const_iterator prefix_iterator;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
@ -1260,7 +1265,7 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
std::unique_ptr<MemoryBuffer> &File = FileOrErr.get();
|
||||
|
||||
if (File->getBufferSize() == 0) {
|
||||
if (File->getBufferSize() == 0 && !AllowEmptyInput) {
|
||||
errs() << "FileCheck error: '" << InputFilename << "' is empty.\n";
|
||||
return 2;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user