Coverage getCoveredInsn() { Coverage cov = new Coverage(0, 0); if (methods != null) { for (MethodCoverage mc : methods.values()) { Coverage c = mc.getCoveredInsn(); cov.total += c.total; cov.covered += c.covered; } } return cov; }
void printMethodCoverages(ClassCoverage cc) { String space = " "; boolean result = true; if (cc.methods == null) { return; } ArrayList<Map.Entry<MethodInfo, MethodCoverage>> mthEntries = Misc.createSortedEntryList( cc.methods, new Comparator<Map.Entry<MethodInfo, MethodCoverage>>() { public int compare( Map.Entry<MethodInfo, MethodCoverage> o1, Map.Entry<MethodInfo, MethodCoverage> o2) { int a = o2.getValue().getCoveredInsn().percent(); int b = o1.getValue().getCoveredInsn().percent(); if (a == b) { return o2.getKey().getUniqueName().compareTo(o1.getKey().getUniqueName()); } else { return a - b; } } }); Coverage emptyCoverage = new Coverage(0, 0); for (Map.Entry<MethodInfo, MethodCoverage> e : mthEntries) { MethodCoverage mc = e.getValue(); MethodInfo mi = mc.getMethodInfo(); Coverage insnCoverage = mc.getCoveredInsn(); Coverage lineCoverage = mc.getCoveredLines(); Coverage branchCoverage = mc.getCoveredBranches(); result = result && insnCoverage.isFullyCovered(); pw.print(space); printCoverage(insnCoverage); pw.print(space); printCoverage(lineCoverage); pw.print(space); printCoverage(mc.getCoveredBasicBlocks()); pw.print(space); printCoverage(branchCoverage); pw.print(space); printCoverage(emptyCoverage); pw.print(space); pw.print(mi.getLongName()); pw.println(); if (showMethodBodies && (!insnCoverage.isFullyCovered() || !branchCoverage.isFullyCovered())) { printBodyCoverage(mc); } } }
void printRequirementsCoverage() { HashMap<String, Integer> reqMethods = getGlobalRequirementsMethods(); Coverage bbAll = new Coverage(0, 0); Coverage insnAll = new Coverage(0, 0); Coverage branchAll = new Coverage(0, 0); Coverage mthAll = new Coverage(0, 0); Coverage reqAll = new Coverage(0, 0); reqAll.total = reqMethods.size(); mthAll.total = computeTotalRequirementsMethods(reqMethods); pw.println(" <p><b>Requirements Coverage</b></p>"); pw.println(" <table>"); pw.println( " <tr><th colspan=\"4\">Instructions</th><th colspan=\"4\">Basic Block</th><th colspan=\"4\">Branch</th><th colspan=\"4\">Methods</th><th colspan=\"4\">Requirement</th></tr>"); for (String id : Misc.getSortedKeyStrings(reqMethods)) { Coverage bbCoverage = new Coverage(0, 0); Coverage insnCoverage = new Coverage(0, 0); Coverage branchCoverage = new Coverage(0, 0); Coverage reqMth = new Coverage(reqMethods.get(id), 0); if (requirements != null && requirements.containsKey(id)) { reqAll.covered++; for (MethodCoverage mc : requirements.get(id)) { insnCoverage.add(mc.getCoveredInsn()); bbCoverage.add(mc.getCoveredBasicBlocks()); branchCoverage.add(mc.getCoveredBranches()); mthAll.covered++; reqMth.covered++; } pw.print(" <tr>"); printCoverage(insnCoverage); printCoverage(bbCoverage); printCoverage(branchCoverage); printCoverage(reqMth); pw.print("\"" + id + "\""); pw.print("</tr>"); pw.println(); if (showMethods) { for (MethodCoverage mc : requirements.get(id)) { pw.print(" <tr>"); printCoverage(mc.getCoveredInsn()); printCoverage(mc.getCoveredBasicBlocks()); printCoverage(mc.getCoveredBranches()); pw.print("<td align=\"left\" colspan=\"4\" style=\"padding-right: 10px;\">"); pw.print(mc.getMethodInfo().getFullName()); pw.print("</tr>"); pw.println(); } } } else { // requirement not covered pw.print( " <tr><td colspan=\"4\"></td><td colspan=\"4\"></td><td colspan=\"4\"></td>"); printCoverage(reqMth); pw.print("\"" + id + "\""); pw.print("</tr>"); pw.println(); } insnAll.add(insnCoverage); bbAll.add(bbCoverage); branchAll.add(branchCoverage); } pw.print(" <tr>"); printCoverage(insnAll); printCoverage(bbAll); printCoverage(branchAll); printCoverage(mthAll); printCoverage(reqAll); pw.print(" total"); pw.println("</tr>"); pw.println(" </table>"); }
void printRequirementsCoverage() { HashMap<String, Integer> reqMethods = getGlobalRequirementsMethods(); String space = " "; Coverage bbAll = new Coverage(0, 0); Coverage insnAll = new Coverage(0, 0); Coverage branchAll = new Coverage(0, 0); Coverage mthAll = new Coverage(0, 0); Coverage reqAll = new Coverage(0, 0); reqAll.total = reqMethods.size(); mthAll.total = computeTotalRequirementsMethods(reqMethods); pw.println(); pw.println(); pw.println( "--------------------------------- requirements coverage -----------------------------------"); pw.println( "bytecode basic-block branch methods requirement"); pw.println( "-------------------------------------------------------------------------------------------"); for (String id : Misc.getSortedKeyStrings(reqMethods)) { Coverage bbCoverage = new Coverage(0, 0); Coverage insnCoverage = new Coverage(0, 0); Coverage branchCoverage = new Coverage(0, 0); Coverage reqMth = new Coverage(reqMethods.get(id), 0); if (requirements != null && requirements.containsKey(id)) { reqAll.covered++; for (MethodCoverage mc : requirements.get(id)) { insnCoverage.add(mc.getCoveredInsn()); bbCoverage.add(mc.getCoveredBasicBlocks()); branchCoverage.add(mc.getCoveredBranches()); mthAll.covered++; reqMth.covered++; } printCoverage(insnCoverage); pw.print(space); printCoverage(bbCoverage); pw.print(space); printCoverage(branchCoverage); pw.print(space); printCoverage(reqMth); pw.print("\"" + id + "\""); pw.println(); if (showMethods) { for (MethodCoverage mc : requirements.get(id)) { pw.print(space); printCoverage(mc.getCoveredInsn()); pw.print(space); printCoverage(mc.getCoveredBasicBlocks()); pw.print(space); printCoverage(mc.getCoveredBranches()); pw.print(space); pw.print(mc.getMethodInfo().getFullName()); pw.println(); } } } else { // requirement not covered pw.print(" - - - "); printCoverage(reqMth); pw.print("\"" + id + "\""); pw.println(); } insnAll.add(insnCoverage); bbAll.add(bbCoverage); branchAll.add(branchCoverage); } pw.println(); pw.println( "------------------------------------------------------------------------------------------"); printCoverage(insnAll); pw.print(space); printCoverage(bbAll); pw.print(space); printCoverage(branchAll); pw.print(space); printCoverage(mthAll); pw.print(space); printCoverage(reqAll); pw.print(" total"); pw.println(); }
void printMethodCoverages(ClassCoverage cc) { String classNameTree = "cc-" + cc.className.replace('.', '-') + '-'; int line, lineNumbers[]; boolean result = true; if (cc.methods == null) { return; } ArrayList<Map.Entry<MethodInfo, MethodCoverage>> mthEntries = Misc.createSortedEntryList( cc.methods, new Comparator<Map.Entry<MethodInfo, MethodCoverage>>() { public int compare( Map.Entry<MethodInfo, MethodCoverage> o1, Map.Entry<MethodInfo, MethodCoverage> o2) { int a = o2.getValue().getCoveredInsn().percent(); int b = o1.getValue().getCoveredInsn().percent(); if (a == b) { return o2.getKey().getUniqueName().compareTo(o1.getKey().getUniqueName()); } else { return a - b; } } }); for (Map.Entry<MethodInfo, MethodCoverage> e : mthEntries) { MethodCoverage mc = e.getValue(); MethodInfo mi = mc.getMethodInfo(); Coverage insnCoverage = mc.getCoveredInsn(); Coverage lineCoverage = mc.getCoveredLines(); Coverage branchCoverage = mc.getCoveredBranches(); result = result && insnCoverage.isFullyCovered(); HTMLPublisher.writeTableTreeNodeBegin( pw, classNameTree + HTMLPublisher.escape(mi.getLongName())); pw.print(" <td class=\"firstCol\">"); lineNumbers = mi.getLineNumbers(); if ((lineNumbers != null) && (lineNumbers.length > 0)) { line = lineNumbers[0]; } else { line = 0; } ((HTMLPublisher) publisher).writeSourceAnchor(pw, mi.getSourceFileName(), line); pw.print(HTMLPublisher.escape(mi.getLongName())); pw.println("</a></td>"); pw.print(" "); printCoverage(insnCoverage); printCoverage(lineCoverage); printCoverage(mc.getCoveredBasicBlocks()); printCoverage(branchCoverage); pw.println(); HTMLPublisher.writeTableTreeNodeEnd(pw); } }