Exemple #1
0
 function collectSourceFileData($sourcefile)
 {
     $all_lines = array();
     $this->getTouchedLines($sourcefile, $all_lines);
     foreach ($this->getObjectFiles() as $objfile) {
         DwarfLineInfo::loadObject($objfile);
     }
     $exe_lines = DwarfLineInfo::mergedSourceLines($sourcefile);
     $max_line = max($exe_lines);
     /* now build a string containing the coverage info.
      * This is compatible with ArcanistUnitTestResult coverage data:
      * N not executable
      * C covered
      * U uncovered
      * X unreachable (we can't detect that here)
      */
     $cov = str_repeat('N', $max_line);
     for ($i = 1; $i <= $max_line; $i++) {
         if (isset($all_lines[$i])) {
             $cov[$i - 1] = 'C';
         } else {
             if (isset($exe_lines[$i])) {
                 $cov[$i - 1] = 'U';
             }
         }
     }
     return $cov;
 }