/** * @param array $data * @param array $linesToBeCovered * @param array $linesToBeUsed * @throws PHP_CodeCoverage_Exception_UnintentionallyCoveredCode * @since Method available since Release 2.0.0 */ private function performUnintentionallyCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed) { $allowedLines = $this->parser->getAllowedLines($linesToBeCovered, $linesToBeUsed); $message = ''; foreach ($data as $file => $_data) { foreach ($_data as $line => $flag) { if ($flag == 1 && (!isset($allowedLines[$file]) || !isset($allowedLines[$file][$line]))) { $message .= sprintf('- %s:%d' . PHP_EOL, $file, $line); } } } if (!empty($message)) { throw new PHP_CodeCoverage_Exception_UnintentionallyCoveredCode($message); } }
/** * Performs blacklist and whitelist as well as @codeCoverageIgnore* filtering. * * @param array $data */ private function filter(array &$data) { foreach (array_keys($data) as $filename) { if ($this->filter->isFiltered($filename)) { unset($data[$filename]); continue; } foreach ($this->parser->getLinesToBeIgnored($filename) as $line) { unset($data[$filename][$line]); } if (empty($data[$filename])) { unset($data[$filename]); } } }
/** * @param string $filename * @param array $expectedResult * @dataProvider ignoredLinesProvider * @covers PHP_CodeCoverage_Parser::getLinesToBeIgnored */ public function testLinesToBeIgnoredAreParsedCorrectly($filename, array $expectedResult) { $this->assertEquals($expectedResult, $this->parser->getLinesToBeIgnored($filename)); }