Prevent GC during phpunit shutdown
authorcsteipp <csteipp@wikimedia.org>
Wed, 2 Apr 2014 00:28:55 +0000 (17:28 -0700)
committerTim Starling <tstarling@wikimedia.org>
Mon, 14 Apr 2014 21:09:10 +0000 (21:09 +0000)
To keep phpunit from segfaulting during shutdown, turn off GC for
php 5.3.

Bug: 62623
Change-Id: Ie59780e37cbea027cc204a43df406667c3f432ab

tests/phpunit/phpunit.php

index 1aa2b4d..8e2bc03 100755 (executable)
@@ -114,4 +114,15 @@ if ( PHPUnit_Runner_Version::id() !== '@package_version@'
 if ( !class_exists( 'PHPUnit_TextUI_Command' ) ) {
        require_once 'PHPUnit/Autoload.php';
 }
+
+// Prevent segfault when we have lots of unit tests (bug 62623)
+if ( version_compare( PHP_VERSION, '5.4.0', '<' )
+       && version_compare( PHP_VERSION, '5.3.0', '>=' )
+) {
+       register_shutdown_function( function() {
+               gc_collect_cycles();
+               gc_disable();
+       } );
+}
+
 MediaWikiPHPUnitCommand::main();