in src/TestUtils/TestTrait.php [122:151]
private static function runSnippet($sampleName, $params = [])
{
// Determine the snippet filename
$sampleFile = $sampleName;
if ('/' !== $sampleName[0]) {
// Default to 'src/' in sample directory
$reflector = new ReflectionClass(__CLASS__);
$testDir = dirname($reflector->getFileName());
$sampleFile = sprintf('%s/../src/%s.php', $testDir, $sampleName);
}
$testFunc = function () use ($sampleFile, $params) {
$argv = array_merge([$sampleFile], $params);
$argc = count($argv);
try {
ob_start();
$ret = require $sampleFile;
self::$lastSnippetReturnValue = $ret;
return ob_get_clean();
} catch (\Exception $e) {
ob_get_clean();
throw $e;
}
};
if (isset(self::$backoff)) {
return self::$backoff->execute($testFunc);
}
return $testFunc();
}