From 4fe07c6b0a341b0b99ee1b051f7c0bdfda572e04 Mon Sep 17 00:00:00 2001 From: Jozef Selesi Date: Mon, 4 Mar 2013 21:37:38 +0100 Subject: Return "1" to CLI if not all unit tests pass. --- modules/gallery_unit_test/controllers/gallery_unit_test.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'modules/gallery_unit_test') diff --git a/modules/gallery_unit_test/controllers/gallery_unit_test.php b/modules/gallery_unit_test/controllers/gallery_unit_test.php index 67d006b3..55d0abc1 100644 --- a/modules/gallery_unit_test/controllers/gallery_unit_test.php +++ b/modules/gallery_unit_test/controllers/gallery_unit_test.php @@ -27,6 +27,9 @@ class Gallery_Unit_Test_Controller extends Controller { ini_set("display_errors", true); error_reporting(-1); + // Track whether all tests pass so we can return an appropriate code to the CLI + $all_tests_passed = false; + // Jump through some hoops to satisfy the way that we check for the site_domain in // config.php. We structure this such that the code in config will leave us with a // site_domain of "." (for historical reasons) @@ -132,7 +135,7 @@ class Gallery_Unit_Test_Controller extends Controller { graphics::choose_default_toolkit(); $filter = count($_SERVER["argv"]) > 2 ? $_SERVER["argv"][2] : null; - print new Unit_Test($modules, $filter); + print new Unit_Test($modules, $filter, $all_tests_passed); } catch (ORM_Validation_Exception $e) { print "Validation Exception: {$e->getMessage()}\n"; print $e->getTraceAsString() . "\n"; @@ -143,5 +146,11 @@ class Gallery_Unit_Test_Controller extends Controller { print "Exception: {$e->getMessage()}\n"; print $e->getTraceAsString() . "\n"; } + + // Let the CLI caller know whether all tests passed or not, + // to allow usage of continuous integration servers. + if (PHP_SAPI == 'cli') { + exit($all_tests_passed ? 0 : 1); + } } } -- cgit v1.2.3