*
*/
-#include <config.h>
+#include "libtest/yatlcon.h"
#include <libtest/common.h>
+// @todo possibly have this code fork off so if it fails nothing goes bad
static test_return_t runner_code(libtest::Framework* frame,
test_st* run,
libtest::Timer& _timer)
try
{
_timer.reset();
- return_code= frame->runner()->run(run->test_fn, frame->creators_ptr());
+ assert(frame);
+ assert(frame->runner());
+ assert(run->test_fn);
+ return_code= frame->runner()->main(run->test_fn, frame->creators_ptr());
}
// Special case where check for the testing of the exception
// system.
- catch (libtest::fatal &e)
+ catch (const libtest::fatal& e)
{
if (libtest::fatal::is_disabled())
{
_skipped(0),
_failed(0),
_total(0),
- _formatter(_name)
+ _formatter(frame_arg->name(), _name)
{
fatal_assert(arg);
}
test_return_t Collection::exec()
{
- if (test_success(_frame->runner()->pre(_pre, _frame->creators_ptr())))
+ if (test_success(_frame->runner()->setup(_pre, _frame->creators_ptr())))
{
for (test_st *run= _tests; run->name; run++)
{
}
}
- alarm(60);
+ set_alarm();
+
try
{
return_code= runner_code(_frame, run, _timer);
}
catch (...)
{
- alarm(0);
+ cancel_alarm();
+
throw;
}
- alarm(0);
+ libtest::cancel_alarm();
}
- catch (libtest::exception &e)
+ catch (const libtest::fatal& e)
{
- stream::cerr(e.file(), e.line(), e.func()) << e.what();
_failed++;
formatter()->failed();
+ stream::make_cerr(e.file(), e.line(), e.func()) << e.what();
throw;
}
break;
default:
- fatal_message("invalid return code");
+ FATAL("invalid return code");
}
#if 0
@TODO add code here to allow for a collection to define a method to reset to allow tests to continue.
#endif
}
- (void) _frame->runner()->post(_post, _frame->creators_ptr());
+ (void) _frame->runner()->teardown(_post, _frame->creators_ptr());
}
if (_failed == 0 and _skipped == 0 and _success)