1 <?php 2 use SebastianBergmann\CodeCoverage\CodeCoverage; 3 4 if (!defined('STDOUT')) { 5 // php://stdout does not obey output buffering. Any output would break 6 // unserialization of child process results in the parent process. 7 define('STDOUT', fopen('php://temp', 'w+b')); 8 define('STDERR', fopen('php://stderr', 'wb')); 9 } 10 11 {iniSettings} 12 ini_set('display_errors', 'stderr'); 13 set_include_path('{include_path}'); 14 15 $composerAutoload = {composerAutoload}; 16 $phar = {phar}; 17 18 ob_start(); 19 20 if ($composerAutoload) { 21 require_once $composerAutoload; 22 define('PHPUNIT_COMPOSER_INSTALL', $composerAutoload); 23 } else if ($phar) { 24 require $phar; 25 } 26 27 function __phpunit_run_isolated_test() 28 { 29 if (!class_exists('{className}')) { 30 require_once '{filename}'; 31 } 32 33 $result = new PHPUnit_Framework_TestResult; 34 35 if ({collectCodeCoverageInformation}) { 36 $result->setCodeCoverage( 37 new CodeCoverage( 38 null, 39 unserialize('{codeCoverageFilter}') 40 ) 41 ); 42 } 43 44 $result->beStrictAboutTestsThatDoNotTestAnything({isStrictAboutTestsThatDoNotTestAnything}); 45 $result->beStrictAboutOutputDuringTests({isStrictAboutOutputDuringTests}); 46 $result->enforceTimeLimit({enforcesTimeLimit}); 47 $result->beStrictAboutTodoAnnotatedTests({isStrictAboutTodoAnnotatedTests}); 48 $result->beStrictAboutResourceUsageDuringSmallTests({isStrictAboutResourceUsageDuringSmallTests}); 49 50 $test = new {className}('{methodName}', unserialize('{data}'), '{dataName}'); 51 $test->setDependencyInput(unserialize('{dependencyInput}')); 52 $test->setInIsolation(TRUE); 53 54 ob_end_clean(); 55 $test->run($result); 56 $output = ''; 57 if (!$test->hasExpectationOnOutput()) { 58 $output = $test->getActualOutput(); 59 } 60 61 @rewind(STDOUT); /* @ as not every STDOUT target stream is rewindable */ 62 if ($stdout = stream_get_contents(STDOUT)) { 63 $output = $stdout . $output; 64 } 65 66 print serialize( 67 array( 68 'testResult' => $test->getResult(), 69 'numAssertions' => $test->getNumAssertions(), 70 'result' => $result, 71 'output' => $output 72 ) 73 ); 74 } 75 76 $configurationFilePath = '{configurationFilePath}'; 77 78 if ('' !== $configurationFilePath) { 79 $configuration = PHPUnit_Util_Configuration::getInstance($configurationFilePath); 80 $configuration->handlePHPConfiguration(); 81 unset($configuration); 82 } 83 84 function __phpunit_error_handler($errno, $errstr, $errfile, $errline, $errcontext) 85 { 86 return true; 87 } 88 89 set_error_handler("__phpunit_error_handler"); 90 91 {constants} 92 {included_files} 93 {globals} 94 95 restore_error_handler(); 96 97 if (isset($GLOBALS['__PHPUNIT_BOOTSTRAP'])) { 98 require_once $GLOBALS['__PHPUNIT_BOOTSTRAP']; 99 unset($GLOBALS['__PHPUNIT_BOOTSTRAP']); 100 } 101 102 __phpunit_run_isolated_test(); 103