*/
#include <sys/file.h>
+#include <dpl/assert.h>
#include <dpl/exception.h>
#include <dpl/test/test_failed.h>
#include <dpl/test/test_ignored.h>
return ERROR;
}
-void RunMultiProc(TestRunner::TestCase procMulti)
+void RunMultiProc(const std::function<void(void)> &testFunc)
{
SimplePipeWrapper pipe;
- int code = MULTI_TEST_PASS;
- std::string msg = "";
int pipeReturn;
int waitStatus;
}
// pipe
- try {
- procMulti();
- } catch (const TestFailed &e) {
- code = MULTI_TEST_FAILED;
- msg = e.GetMessage();
- } catch (const TestIgnored &e) {
- code = MULTI_TEST_IGNORED;
- msg = e.GetMessage();
- } catch (const std::exception &) {
- code = MULTI_TEST_FAILED;
- msg = "std exception";
- } catch (...) {
- // Unknown exception failure
- code = MULTI_TEST_FAILED;
- msg = "unknown exception";
+ int code;
+ std::string msg;
+ switch (TryCatch(testFunc, msg)) {
+ case TestResult::FailStatus::FAILED:
+ code = MULTI_TEST_FAILED;
+ break;
+ case TestResult::FailStatus::IGNORED:
+ code = MULTI_TEST_IGNORED;
+ break;
+ case TestResult::FailStatus::NONE:
+ code = MULTI_TEST_PASS;
+ break;
+ default:
+ Assert(false && "Unhandled fail status");
}
while (true) {