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());
}