summaryrefslogtreecommitdiffstats
path: root/application/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'application/controllers')
-rw-r--r--application/controllers/tools.php20
1 files changed, 16 insertions, 4 deletions
diff --git a/application/controllers/tools.php b/application/controllers/tools.php
index e226b1815..7c8538cfb 100644
--- a/application/controllers/tools.php
+++ b/application/controllers/tools.php
@@ -74,14 +74,26 @@ class Tools extends MY_Controller {
$test = new $testclass();
$test->setServer($url);
+ $exitcode = 0;
+
$refl = new ReflectionClass($test);
foreach ($refl->getMethods() as $method) {
if (strpos($method->name, "test_") === 0) {
- $test->init();
- $test->{$method->name}();
- $test->cleanup();
+ try {
+ $test->init();
+ $test->{$method->name}();
+ $test->cleanup();
+ } catch (\Exception $e) {
+ echo "not ok - uncaught exception in $testcase->$method->name\n";
+ _actual_exception_handler($e);
+ $exitcode = 255;
+ }
}
}
- $test->done_testing();
+ if ($exitcode == 0) {
+ $test->done_testing();
+ } else {
+ exit($exitcode);
+ }
}
}