@@ -96,27 +96,28 @@ func traverseAndCalculateCoverage(t *testing.T, expr ast.NavigableExpr, p Progra
9696 // Check for Branch Coverage if the node is a boolean type
9797 if interestingBoolNode {
9898 cr .branches += 2
99- if info , found := p .CoverageStats [nodeID ]; ! found {
100- if logUnencountered {
101- cr .unencounteredBranches = append (cr .unencounteredBranches ,
102- "\n " + preceedingTabs + fmt .Sprintf ("Expression ID %d ('%s'): No coverage" , nodeID , exprText ))
103- preceedingTabs = preceedingTabs + "\t \t "
104- }
105- } else {
106- if _ , ok := info [types .True ]; ok {
99+ if info , found := p .CoverageStats [nodeID ]; found {
100+ var trueFound , falseFound bool
101+ if _ , trueFound = info [types .True ]; trueFound {
107102 cr .coveredBooleanOutcomes ++
108- } else if logUnencountered {
109- cr .unencounteredBranches = append (cr .unencounteredBranches ,
110- "\n " + preceedingTabs + fmt .Sprintf ("Expression ID %d ('%s'): lacks 'true' coverage" , nodeID , exprText ))
111- preceedingTabs = preceedingTabs + "\t \t "
112-
113103 }
114- if _ , ok : = info [types .False ]; ok {
104+ if _ , falseFound = info [types .False ]; falseFound {
115105 cr .coveredBooleanOutcomes ++
116- } else if logUnencountered {
117- cr .unencounteredBranches = append (cr .unencounteredBranches ,
118- "\n " + preceedingTabs + fmt .Sprintf ("Expression ID %d ('%s'): lacks 'false' coverage" , nodeID , exprText ))
119- preceedingTabs = preceedingTabs + "\t \t "
106+ }
107+ if logUnencountered && ! (trueFound && falseFound ) {
108+ if falseFound {
109+ cr .unencounteredBranches = append (cr .unencounteredBranches ,
110+ "\n " + preceedingTabs + fmt .Sprintf ("Expression ID %d ('%s'): lacks 'true' coverage" , nodeID , exprText ))
111+ preceedingTabs = preceedingTabs + "\t \t "
112+ } else if trueFound {
113+ cr .unencounteredBranches = append (cr .unencounteredBranches ,
114+ "\n " + preceedingTabs + fmt .Sprintf ("Expression ID %d ('%s'): lacks 'false' coverage" , nodeID , exprText ))
115+ preceedingTabs = preceedingTabs + "\t \t "
116+ } else {
117+ cr .unencounteredBranches = append (cr .unencounteredBranches ,
118+ "\n " + preceedingTabs + fmt .Sprintf ("Expression ID %d ('%s'): No coverage" , nodeID , exprText ))
119+ preceedingTabs = preceedingTabs + "\t \t "
120+ }
120121 }
121122 }
122123 }
0 commit comments