aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cpp/qps/json_run_localhost.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/cpp/qps/json_run_localhost.cc')
-rw-r--r--test/cpp/qps/json_run_localhost.cc22
1 files changed, 20 insertions, 2 deletions
diff --git a/test/cpp/qps/json_run_localhost.cc b/test/cpp/qps/json_run_localhost.cc
index 74e40fbf1a..106509ab83 100644
--- a/test/cpp/qps/json_run_localhost.cc
+++ b/test/cpp/qps/json_run_localhost.cc
@@ -50,6 +50,18 @@ std::string as_string(const T& val) {
return out.str();
}
+static void LogStatus(int status, const char* label) {
+ if (WIFEXITED(status)) {
+ gpr_log(GPR_INFO, "%s: subprocess exited with status %d", label,
+ WEXITSTATUS(status));
+ } else if (WIFSIGNALED(status)) {
+ gpr_log(GPR_INFO, "%s: subprocess terminated with signal %d", label,
+ WTERMSIG(status));
+ } else {
+ gpr_log(GPR_INFO, "%s: unknown subprocess status: %d", label, status);
+ }
+}
+
int main(int argc, char** argv) {
typedef std::unique_ptr<SubProcess> SubProcessPtr;
std::vector<SubProcessPtr> jobs;
@@ -75,12 +87,18 @@ int main(int argc, char** argv) {
for (int i = 1; i < argc; i++) {
args.push_back(argv[i]);
}
- GPR_ASSERT(SubProcess(args).Join() == 0);
+ int status = SubProcess(args).Join();
+ if (status != 0) {
+ LogStatus(status, "driver");
+ }
for (auto it = jobs.begin(); it != jobs.end(); ++it) {
(*it)->Interrupt();
}
for (auto it = jobs.begin(); it != jobs.end(); ++it) {
- (*it)->Join();
+ status = (*it)->Join();
+ if (status != 0) {
+ LogStatus(status, "worker");
+ }
}
}