From 3d61a89290e16c432587807fe667889ed833e018 Mon Sep 17 00:00:00 2001 From: uyga Date: Mon, 26 Aug 2013 18:07:39 +0400 Subject: [PATCH] Using var_export instead of serialize for PHP_CodeCoverage object export --- PHP/CodeCoverage.php | 10 ++++++++++ PHP/CodeCoverage/Filter.php | 20 +++++++++++++++++++ PHP/CodeCoverage/Report/PHP.php | 15 +++++++++----- Tests/_files/CoverageClassExtendedTest.php | 1 + .../CoverageFunctionParenthesesTest.php | 1 + .../NamespaceCoverageClassExtendedTest.php | 1 + 6 files changed, 43 insertions(+), 5 deletions(-) diff --git a/PHP/CodeCoverage.php b/PHP/CodeCoverage.php index 50044006a..0d717ba31 100644 --- a/PHP/CodeCoverage.php +++ b/PHP/CodeCoverage.php @@ -794,4 +794,14 @@ protected function getLinesToBeIgnored($filename) return $this->ignoredLines[$filename]; } + + public function setData(array $data) + { + $this->data = $data; + } + + public function setTests(array $tests) + { + $this->tests = $tests; + } } diff --git a/PHP/CodeCoverage/Filter.php b/PHP/CodeCoverage/Filter.php index d2f68d3be..4c3332b9e 100644 --- a/PHP/CodeCoverage/Filter.php +++ b/PHP/CodeCoverage/Filter.php @@ -347,4 +347,24 @@ protected function addDirectoryContainingClassToBlacklist($className, $parent = $this->addDirectoryToBlacklist($directory); } + + public function getBlacklistedFiles() + { + return $this->blacklistedFiles; + } + + public function setBlacklistedFiles($blacklistedFiles) + { + $this->blacklistedFiles = $blacklistedFiles; + } + + public function getWhitelistedFiles() + { + return $this->whitelistedFiles; + } + + public function setWhitelistedFiles($whitelistedFiles) + { + $this->whitelistedFiles = $whitelistedFiles; + } } diff --git a/PHP/CodeCoverage/Report/PHP.php b/PHP/CodeCoverage/Report/PHP.php index c3482b5af..0f904247d 100644 --- a/PHP/CodeCoverage/Report/PHP.php +++ b/PHP/CodeCoverage/Report/PHP.php @@ -44,11 +44,11 @@ */ /** - * Uses serialize() to write a PHP_CodeCoverage object to a file. + * Uses var_export() to write a PHP_CodeCoverage object to a file. * * @category PHP * @package CodeCoverage - * @author Sebastian Bergmann + * @author uyga * @copyright 2009-2013 Sebastian Bergmann * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License * @link http://github.com/sebastianbergmann/php-code-coverage @@ -63,12 +63,17 @@ class PHP_CodeCoverage_Report_PHP */ public function process(PHP_CodeCoverage $coverage, $target = NULL) { - $coverage = serialize($coverage); + $output = 'setBlacklistedFiles(' . var_export($coverage->filter()->getBlacklistedFiles(), 1) . ');' + . '$filter->setWhitelistedFiles(' . var_export($coverage->filter()->getWhitelistedFiles(), 1) . ');' + . '$object = new PHP_CodeCoverage(new PHP_CodeCoverage_Driver_Xdebug(), $filter); $object->setData(' + . var_export($coverage->getData(), 1) . '); $object->setTests(' + . var_export($coverage->getTests(), 1) . '); return $object;'; if ($target !== NULL) { - return file_put_contents($target, $coverage); + return file_put_contents($target, $output); } else { - return $coverage; + return $output; } } } diff --git a/Tests/_files/CoverageClassExtendedTest.php b/Tests/_files/CoverageClassExtendedTest.php index df12d3470..b3947449e 100644 --- a/Tests/_files/CoverageClassExtendedTest.php +++ b/Tests/_files/CoverageClassExtendedTest.php @@ -1,4 +1,5 @@