/** * Parse the skip section * - if skip * - run the code * - return the skip reason * * @param Zept $zept * @param array $sections * @return \ZephirTestCase\Zept */ private function hydrateSkip(Zept $zept, array $sections) { if (isset($sections['SKIPIF'])) { $jobResult = $this->codeRunner->runPhp($sections['SKIPIF'], $zept->getIni()); if (!strncasecmp('skip', ltrim($jobResult['stdout']), 4)) { $message = ''; if (preg_match('/^\\s*skip\\s*(.+)\\s*/i', $jobResult['stdout'], $rawMessage)) { $message = substr($rawMessage[1], 2); } $zept->setSkipMessage($message); } } return $zept; }
/** * Run the test * * @param \PHPUnit_Framework_TestResult $result * @param Zept $zept * @return \PHPUnit_Framework_TestResult */ private function doRun(\PHPUnit_Framework_TestResult $result, Zept $zept) { $time = 0; \PHP_Timer::start(); try { $jobResult = $this->codeRunner->run($zept->getZephirCode(), $zept->getPhpCode(), $this->silent); $time = \PHP_Timer::stop(); $assertion = $zept->getAssertion(); \PHPUnit_Framework_Assert::$assertion($this->cleanString($zept->getExpected()), $this->cleanString($jobResult['stdout'])); } catch (\Exception $exception) { $result->addError($this, $exception, $time); } catch (\Throwable $throwable) { $result->addError($this, $throwable, $time); } $result->endTest($this, $time); $result->flushListeners(); return $result; }