/** * Constructor. * * @param PHP_CodeCoverage_Driver $driver * @param PHP_CodeCoverage_Filter $filter * @throws PHP_CodeCoverage_Exception */ public function __construct(PHP_CodeCoverage_Driver $driver = null, PHP_CodeCoverage_Filter $filter = null) { if ($driver === null) { $runtime = new Runtime(); if ($runtime->isHHVM()) { $driver = new PHP_CodeCoverage_Driver_HHVM(); } elseif ($runtime->hasXdebug()) { $driver = new PHP_CodeCoverage_Driver_Xdebug(); } else { throw new PHP_CodeCoverage_Exception('No code coverage driver available'); } } if ($filter === null) { $filter = new PHP_CodeCoverage_Filter(); } $this->driver = $driver; $this->filter = $filter; }
/** * @covers \SebastianBergmann\Environment\Runtime::isHHVM */ public function testCanBeDetected() { $this->assertInternalType('boolean', $this->env->isHHVM()); }
/** * @return PHP_CodeCoverage_Driver * @throws PHP_CodeCoverage_RuntimeException */ private function selectDriver() { $runtime = new Runtime(); if (!$runtime->canCollectCodeCoverage()) { throw new PHP_CodeCoverage_RuntimeException('No code coverage driver available'); } if ($runtime->isHHVM()) { return new PHP_CodeCoverage_Driver_HHVM(); } elseif ($runtime->isPHPDBG()) { return new PHP_CodeCoverage_Driver_PHPDBG(); } else { return new PHP_CodeCoverage_Driver_Xdebug(); } }