Browse Source

CodeCoverage: Fix previous commit missing lines

add only first (duplicate) occurence
do not break on finalSP, else will miss Contract.Ensures lines
pull/67/head
Dragan 12 years ago
parent
commit
d0266a1f1e
  1. 7
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethodElement.cs

7
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageMethodElement.cs

@ -136,6 +136,7 @@ namespace ICSharpCode.CodeCoverage @@ -136,6 +136,7 @@ namespace ICSharpCode.CodeCoverage
CodeCoverageSequencePoint finalSP = getBodyFinalSP(sps);
if (Object.ReferenceEquals(null, finalSP)) { return sps; }
bool foundFinalSP = false;
List<CodeCoverageSequencePoint> selected = new List<CodeCoverageSequencePoint>();
foreach (var point in sps) {
if (
@ -147,13 +148,15 @@ namespace ICSharpCode.CodeCoverage @@ -147,13 +148,15 @@ namespace ICSharpCode.CodeCoverage
// After ccrewrite ContractClass/ContractClassFor
// duplicate method end-sequence-point (}) is added
//
// Add(point) and Break on first (duplicate) finalSP
// Add (point) on first finalSP (duplicate)
// Note: IL.Offset of second duplicate finalSP will
// extend branch coverage outside method-end "}",
// and that can lead to wrong branch coverage report!
if (!foundFinalSP) {
if (point.Line == finalSP.Line && point.Column == finalSP.Column) {
selected.Add (point);
break;
foundFinalSP = true;
}
}
}

Loading…
Cancel
Save