Skip to content

Commit cd7fcdd

Browse files
committed
Fixed codecoverage to not ignore executable lines
1 parent de8096a commit cd7fcdd

File tree

1 file changed

+30
-4
lines changed

1 file changed

+30
-4
lines changed

src/CodeCoverage.php

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@ class PHP_CodeCoverage
115115
*/
116116
private $ignoredLines = array();
117117

118+
/**
119+
* To track lines which have open brackets/close brackets + code
120+
* @var array
121+
*/
122+
private $doNotIgnoreLines = array();
123+
118124
/**
119125
* Test data.
120126
*
@@ -671,6 +677,10 @@ private function getLinesToBeIgnored($filename)
671677

672678
if (!isset($this->ignoredLines[$filename])) {
673679
$this->ignoredLines[$filename] = array();
680+
//[TARLABS] Added below 2 lines for
681+
$this->doNotIgnoreLines[$filename] = array();
682+
$lastLineIgnoredForStartOrEndPhpTag = 0;
683+
674684
$ignore = false;
675685
$stop = false;
676686
$lines = file($filename);
@@ -790,11 +800,26 @@ private function getLinesToBeIgnored($filename)
790800
$this->ignoredLines[$filename][] = $token->getEndLine();
791801

792802
// Intentional fallthrough
803+
case 'PHP_Token_NAMESPACE':
804+
$this->ignoredLines[$filename][] = $token->getEndLine();
805+
// Intentional fallthrough
806+
case 'PHP_Token_USE':
807+
$this->ignoredLines[$filename][] = $token->getLine();
808+
break;
793809
case 'PHP_Token_OPEN_TAG':
794810
case 'PHP_Token_CLOSE_TAG':
795-
case 'PHP_Token_USE':
811+
$lastLineIgnoredForStartOrEndPhpTag = $token->getLine();
796812
$this->ignoredLines[$filename][] = $token->getLine();
797813
break;
814+
case 'PHP_Token_WHITESPACE':
815+
break;
816+
default:
817+
if ($lastLineIgnoredForStartOrEndPhpTag == $token->getLine())
818+
{
819+
//This line possibly has some code and cannot be ignored
820+
$this->doNotIgnoreLines[$filename][] = $token->getLine();
821+
}
822+
break;
798823
}
799824

800825
if ($ignore) {
@@ -807,12 +832,13 @@ private function getLinesToBeIgnored($filename)
807832
}
808833
}
809834

835+
810836
$this->ignoredLines[$filename][] = $numLines + 1;
837+
$this->doNotIgnoreLines[$filename] = array_unique($this->doNotIgnoreLines[$filename]);
811838

812839
$this->ignoredLines[$filename] = array_unique(
813-
$this->ignoredLines[$filename]
840+
array_diff($this->ignoredLines[$filename], $this->doNotIgnoreLines[$filename])
814841
);
815-
816842
sort($this->ignoredLines[$filename]);
817843
}
818844

@@ -896,4 +922,4 @@ private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed)
896922

897923
return $allowedLines;
898924
}
899-
}
925+
}

0 commit comments

Comments
 (0)