summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-reduce/TestRunner.cpp
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2019-09-11 20:29:22 +0000
committerReid Kleckner <rnk@google.com>2019-09-11 20:29:22 +0000
commit6d5f0029fc06dbb9968c770a5101e109ddfa63f7 (patch)
tree0b1ebb6c0cdb698f8b8ef8a29be39b71918b0392 /llvm/tools/llvm-reduce/TestRunner.cpp
parent09f320ad34153546e332e6322dec029714435e2c (diff)
downloadbcm5719-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.cpp8
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);
OpenPOWER on IntegriCloud