X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fframework%2Fsrc%2Ftest_runner_multiprocess.cpp;h=81729c57801e6db97169962fc141c929138adbde;hb=cb0c3e54fa2ed9fc04c29b98f9ea4d74fd3d6674;hp=55e889b119528c86f1fc7d5e0ceffb5a5b1a5b82;hpb=9f4a36d7c674bcac2f60271556fbab5ddd5615c2;p=platform%2Fcore%2Ftest%2Fsecurity-tests.git diff --git a/src/framework/src/test_runner_multiprocess.cpp b/src/framework/src/test_runner_multiprocess.cpp index 55e889b..81729c5 100644 --- a/src/framework/src/test_runner_multiprocess.cpp +++ b/src/framework/src/test_runner_multiprocess.cpp @@ -21,6 +21,7 @@ */ #include +#include #include #include #include @@ -131,11 +132,9 @@ PipeWrapper::Status SimplePipeWrapper::receive(std::string &data, bool &empty, t return ERROR; } -void RunMultiProc(TestRunner::TestCase procMulti) +void RunMultiProc(const std::function &testFunc) { SimplePipeWrapper pipe; - int code = MULTI_TEST_PASS; - std::string msg = ""; int pipeReturn; int waitStatus; @@ -147,21 +146,20 @@ void RunMultiProc(TestRunner::TestCase procMulti) } // 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) {