Module Name: src Committed By: christos Date: Wed Dec 30 22:23:38 UTC 2015
Modified Files: src/external/bsd/atf/dist/tools: process.cpp process.hpp test-program.cpp Log Message: Print symbolically why the process exited. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/external/bsd/atf/dist/tools/process.cpp cvs rdiff -u -r1.1.1.1 -r1.2 src/external/bsd/atf/dist/tools/process.hpp cvs rdiff -u -r1.2 -r1.3 src/external/bsd/atf/dist/tools/test-program.cpp Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/bsd/atf/dist/tools/process.cpp diff -u src/external/bsd/atf/dist/tools/process.cpp:1.3 src/external/bsd/atf/dist/tools/process.cpp:1.4 --- src/external/bsd/atf/dist/tools/process.cpp:1.3 Tue Feb 11 13:13:45 2014 +++ src/external/bsd/atf/dist/tools/process.cpp Wed Dec 30 17:23:38 2015 @@ -360,6 +360,25 @@ impl::status::~status(void) { } +std::string +impl::status::str(void) + const +{ + int mutable_status = m_status; + std::stringstream rv; + if (WIFEXITED(mutable_status)) + rv << "exit(" << WEXITSTATUS(mutable_status); + else if (WIFSTOPPED(mutable_status)) + rv << "stopped(" << WSTOPSIG(mutable_status); + else if (WIFSIGNALED(mutable_status)) + rv << "terminated(" << WTERMSIG(mutable_status); + if (WCOREDUMP(mutable_status)) + rv << "/core)"; + else + rv << ")"; + return rv.str(); +} + bool impl::status::exited(void) const Index: src/external/bsd/atf/dist/tools/process.hpp diff -u src/external/bsd/atf/dist/tools/process.hpp:1.1.1.1 src/external/bsd/atf/dist/tools/process.hpp:1.2 --- src/external/bsd/atf/dist/tools/process.hpp:1.1.1.1 Sat Feb 8 14:11:33 2014 +++ src/external/bsd/atf/dist/tools/process.hpp Wed Dec 30 17:23:38 2015 @@ -207,6 +207,8 @@ class status { public: ~status(void); + std::string str(void) const; + bool exited(void) const; int exitstatus(void) const; Index: src/external/bsd/atf/dist/tools/test-program.cpp diff -u src/external/bsd/atf/dist/tools/test-program.cpp:1.2 src/external/bsd/atf/dist/tools/test-program.cpp:1.3 --- src/external/bsd/atf/dist/tools/test-program.cpp:1.2 Tue Feb 11 11:31:38 2014 +++ src/external/bsd/atf/dist/tools/test-program.cpp Wed Dec 30 17:23:38 2015 @@ -664,7 +664,7 @@ impl::get_metadata(const tools::fs::path const tools::process::status status = child.wait(); if (!status.exited() || status.exitstatus() != EXIT_SUCCESS) throw tools::parser::format_error("Test program returned failure " - "exit status for test case list"); + "exit status " + status.str() + " for test case list"); return metadata(parser.get_tcs()); }