예제 #1
0
    /**
     * Processes whitelisted files that are not covered.
     */
    private function addUncoveredFilesFromWhitelist()
    {
        $data           = array();
        $uncoveredFiles = array_diff(
            $this->filter->getWhitelist(),
            array_keys($this->data)
        );

        foreach ($uncoveredFiles as $uncoveredFile) {
            if (!file_exists($uncoveredFile)) {
                continue;
            }

            if ($this->processUncoveredFilesFromWhitelist) {
                $this->processUncoveredFileFromWhitelist(
                    $uncoveredFile,
                    $data,
                    $uncoveredFiles
                );
            } else {
                $data[$uncoveredFile] = array();

                $lines = count(file($uncoveredFile));

                for ($i = 1; $i <= $lines; $i++) {
                    $data[$uncoveredFile][$i] = -1;
                }
            }
        }

        $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST');
    }
예제 #2
0
 /**
  * Processes whitelisted files that are not covered.
  */
 protected function processUncoveredFilesFromWhitelist()
 {
     $data = array();
     $uncoveredFiles = array_diff($this->filter->getWhitelist(), array_keys($this->coveredFiles));
     $newVariables = array();
     $newVariableNames = array();
     $oldVariableNames = array();
     $uncoveredFile = NULL;
     $variableName = NULL;
     foreach ($uncoveredFiles as $uncoveredFile) {
         if ($this->promoteGlobals) {
             $oldVariableNames = array_keys(get_defined_vars());
         }
         $this->driver->start();
         include_once $uncoveredFile;
         $coverage = $this->driver->stop();
         if ($this->promoteGlobals) {
             $newVariables = get_defined_vars();
             $newVariableNames = array_diff(array_keys($newVariables), $oldVariableNames);
             foreach ($newVariableNames as $variableName) {
                 if ($variableName != 'oldVariableNames') {
                     $GLOBALS[$variableName] = $newVariables[$variableName];
                 }
             }
         }
         foreach ($coverage as $file => $fileCoverage) {
             if (!isset($data[$file])) {
                 $data[$file] = $fileCoverage;
             }
         }
     }
     $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST');
 }
예제 #3
0
 /**
  * Processes whitelisted files that are not covered.
  */
 protected function processUncoveredFilesFromWhitelist()
 {
     $data = array();
     $uncoveredFiles = array_diff($this->filter->getWhitelist(), array_keys($this->data));
     foreach ($uncoveredFiles as $uncoveredFile) {
         if (!file_exists($uncoveredFile)) {
             continue;
         }
         if ($this->cacheTokens) {
             $tokens = PHP_Token_Stream_CachingFactory::get($uncoveredFile);
         } else {
             $tokens = new PHP_Token_Stream($uncoveredFile);
         }
         $classes = $tokens->getClasses();
         $interfaces = $tokens->getInterfaces();
         $functions = $tokens->getFunctions();
         unset($tokens);
         foreach (array_keys($classes) as $class) {
             if (class_exists($class, FALSE)) {
                 continue 2;
             }
         }
         unset($classes);
         foreach (array_keys($interfaces) as $interface) {
             if (interface_exists($interface, FALSE)) {
                 continue 2;
             }
         }
         unset($interfaces);
         foreach (array_keys($functions) as $function) {
             if (function_exists($function)) {
                 continue 2;
             }
         }
         unset($functions);
         $this->driver->start();
         include_once $uncoveredFile;
         $coverage = $this->driver->stop();
         foreach ($coverage as $file => $fileCoverage) {
             if (!isset($data[$file]) && in_array($file, $uncoveredFiles)) {
                 foreach (array_keys($fileCoverage) as $key) {
                     if ($fileCoverage[$key] == 1) {
                         $fileCoverage[$key] = -1;
                     }
                 }
                 $data[$file] = $fileCoverage;
             }
         }
     }
     $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST');
 }
 /**
  * Processes whitelisted files that are not covered.
  */
 protected function processUncoveredFilesFromWhitelist()
 {
     $data = array();
     $includedFiles = array_flip(get_included_files());
     $uncoveredFiles = array_diff($this->filter->getWhitelist(), $this->coveredFiles);
     foreach ($uncoveredFiles as $uncoveredFile) {
         if (isset($includedFiles[$uncoveredFile])) {
             foreach (array_keys($this->data) as $test) {
                 if (isset($this->data[$test]['raw'][$uncoveredFile])) {
                     $coverage = $this->data[$test]['raw'][$uncoveredFile];
                     foreach (array_keys($coverage) as $key) {
                         if ($coverage[$key] == 1) {
                             $coverage[$key] = -1;
                         }
                     }
                     $data[$uncoveredFile] = $coverage;
                     break;
                 }
             }
         } else {
             $this->driver->start();
             include_once $uncoveredFile;
             $coverage = $this->driver->stop();
             foreach ($coverage as $file => $fileCoverage) {
                 if (!isset($data[$file]) && in_array($file, $uncoveredFiles)) {
                     foreach (array_keys($fileCoverage) as $key) {
                         if ($fileCoverage[$key] == 1) {
                             $fileCoverage[$key] = -1;
                         }
                     }
                     $data[$file] = $fileCoverage;
                     $includedFiles[$file] = TRUE;
                 }
             }
         }
     }
     $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST');
 }