X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Frunner.cc;h=456af7d1c64a44d6db8e9cba21110e8c07cd5781;hb=bcc7e71dd0d2c7d875ddb3583fd5ab2585304642;hp=5f1acf56aacce795bdb42d27542541a907c002ad;hpb=65b7303ef858d676779e2f97c0ae381a188c76c8;p=m6w6%2Flibmemcached diff --git a/libtest/runner.cc b/libtest/runner.cc index 5f1acf56..456af7d1 100644 --- a/libtest/runner.cc +++ b/libtest/runner.cc @@ -34,7 +34,7 @@ * */ -#include "mem_config.h" +#include "libtest/yatlcon.h" #include namespace libtest { @@ -53,7 +53,22 @@ test_return_t Runner::run(test_callback_fn* func, void *object) { if (func) { - return func(object); + try { + return func(object); + } + catch (libtest::__skipped) + { + return TEST_SKIPPED; + } + catch (libtest::__failure e) + { + libtest::stream::make_cerr(e.file(), e.line(), e.func()) << e.what(); + return TEST_FAILURE; + } + catch (libtest::__success) + { + return TEST_SUCCESS; + } } return TEST_SUCCESS; @@ -63,7 +78,22 @@ test_return_t Runner::pre(test_callback_fn* func, void *object) { if (func) { - return func(object); + try { + return func(object); + } + catch (libtest::__skipped) + { + return TEST_SKIPPED; + } + catch (libtest::__failure e) + { + libtest::stream::make_cerr(e.file(), e.line(), e.func()) << e.what(); + return TEST_FAILURE; + } + catch (libtest::__success) + { + return TEST_SUCCESS; + } } return TEST_SUCCESS; @@ -73,7 +103,22 @@ test_return_t Runner::post(test_callback_fn* func, void *object) { if (func) { - return func(object); + try { + return func(object); + } + catch (libtest::__skipped) + { + return TEST_SKIPPED; + } + catch (libtest::__failure e) + { + libtest::stream::make_cerr(e.file(), e.line(), e.func()) << e.what(); + return TEST_FAILURE; + } + catch (libtest::__success) + { + return TEST_SUCCESS; + } } return TEST_SUCCESS;