1<?php 2use SebastianBergmann\CodeCoverage\CodeCoverage; 3 4if (!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} 12ini_set('display_errors', 'stderr'); 13set_include_path('{include_path}'); 14 15$composerAutoload = {composerAutoload}; 16$phar = {phar}; 17 18ob_start(); 19 20if ($composerAutoload) { 21 require_once $composerAutoload; 22 define('PHPUNIT_COMPOSER_INSTALL', $composerAutoload); 23} else if ($phar) { 24 require $phar; 25} 26 27function __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 78if ('' !== $configurationFilePath) { 79 $configuration = PHPUnit_Util_Configuration::getInstance($configurationFilePath); 80 $configuration->handlePHPConfiguration(); 81 unset($configuration); 82} 83 84function __phpunit_error_handler($errno, $errstr, $errfile, $errline, $errcontext) 85{ 86 return true; 87} 88 89set_error_handler("__phpunit_error_handler"); 90 91{constants} 92{included_files} 93{globals} 94 95restore_error_handler(); 96 97if (isset($GLOBALS['__PHPUNIT_BOOTSTRAP'])) { 98 require_once $GLOBALS['__PHPUNIT_BOOTSTRAP']; 99 unset($GLOBALS['__PHPUNIT_BOOTSTRAP']); 100} 101 102__phpunit_run_isolated_test(); 103