diff options
author | Reid Kleckner <rnk@google.com> | 2019-09-11 20:29:22 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2019-09-11 20:29:22 +0000 |
commit | 6d5f0029fc06dbb9968c770a5101e109ddfa63f7 (patch) | |
tree | 0b1ebb6c0cdb698f8b8ef8a29be39b71918b0392 /llvm/tools/llvm-reduce/TestRunner.cpp | |
parent | 09f320ad34153546e332e6322dec029714435e2c (diff) | |
download | bcm5719-llvm-6d5f0029fc06dbb9968c770a5101e109ddfa63f7.tar.gz bcm5719-llvm-6d5f0029fc06dbb9968c770a5101e109ddfa63f7.zip |
[llvm-reduce] Fix a bug, improve error handling when running test
llvm::sys::ExecuteAndWait can report errors, so let's make use of that.
Second, while iterating uses of functions to remove, a call can appear
multiple times. Use a SetVector so we don't attempt to erase such a call
twice.
llvm-svn: 371653
Diffstat (limited to 'llvm/tools/llvm-reduce/TestRunner.cpp')
-rw-r--r-- | llvm/tools/llvm-reduce/TestRunner.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/tools/llvm-reduce/TestRunner.cpp b/llvm/tools/llvm-reduce/TestRunner.cpp index 2fd01abfd47..1940e426941 100644 --- a/llvm/tools/llvm-reduce/TestRunner.cpp +++ b/llvm/tools/llvm-reduce/TestRunner.cpp @@ -44,10 +44,14 @@ int TestRunner::run(StringRef Filename) { ProgramArgs.push_back(Arg.c_str()); Optional<StringRef> Redirects[3]; // STDIN, STDOUT, STDERR - int Result = sys::ExecuteAndWait(TestName, ProgramArgs, None, Redirects); + std::string ErrMsg; + int Result = + sys::ExecuteAndWait(TestName, ProgramArgs, None, Redirects, + /*SecondsToWait=*/0, /*MemoryLimit=*/0, &ErrMsg); if (Result < 0) { - Error E = make_error<StringError>("Error running interesting-ness test\n", + Error E = make_error<StringError>("Error running interesting-ness test: " + + ErrMsg, inconvertibleErrorCode()); errs() << toString(std::move(E)); exit(1); |