[hibernate-commits] Hibernate SVN: r16004 - validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Thu Feb 19 20:54:11 EST 2009


Author: shane.bryzak at jboss.com
Date: 2009-02-19 20:54:11 -0500 (Thu, 19 Feb 2009)
New Revision: 16004

Modified:
   validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/AuditAssertion.java
   validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/AuditParser.java
   validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/CoverageReport.java
Log:
report improvements

Modified: validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/AuditAssertion.java
===================================================================
--- validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/AuditAssertion.java	2009-02-19 19:50:39 UTC (rev 16003)
+++ validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/AuditAssertion.java	2009-02-20 01:54:11 UTC (rev 16004)
@@ -12,13 +12,18 @@
    private String id;
    private String text;
    private String note;
+   private boolean testable;
+   private boolean implied;
    
-   public AuditAssertion(String section, String id, String text, String note)
+   public AuditAssertion(String section, String id, String text, String note, 
+         boolean testable, boolean implied)
    {
       this.section = section;
       this.id = id;
       this.text = text;
       this.note = note;
+      this.testable = testable;
+      this.implied = implied;
    }
    
    public String getSection()
@@ -40,6 +45,16 @@
    {
       return note;
    }
+   
+   public boolean isTestable()
+   {
+      return testable;
+   }
+   
+   public boolean isImplied()
+   {
+      return implied;
+   }
 
    public int compareTo(AuditAssertion other)
    {            
@@ -47,5 +62,4 @@
       return i != 0 ? i : id.compareTo(other.id);
    }
    
-   
 }

Modified: validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/AuditParser.java
===================================================================
--- validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/AuditParser.java	2009-02-19 19:50:39 UTC (rev 16003)
+++ validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/AuditParser.java	2009-02-20 01:54:11 UTC (rev 16004)
@@ -194,7 +194,13 @@
          }                   
       }
       
+      boolean testable = node.hasAttribute("testable") ? 
+            Boolean.parseBoolean(node.getAttribute("testable")) : true;
+            
+      boolean implied = node.hasAttribute("implied") ?
+            Boolean.parseBoolean(node.getAttribute("implied")) : false;
+      
       value.add(new AuditAssertion(sectionId, 
-            node.getAttribute("id"), text, note));     
+            node.getAttribute("id"), text, note, testable, implied));     
    }
 }

Modified: validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/CoverageReport.java
===================================================================
--- validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/CoverageReport.java	2009-02-19 19:50:39 UTC (rev 16003)
+++ validator/trunk/tck-utils/impl/src/main/java/org/hibernate/tck/report/CoverageReport.java	2009-02-20 01:54:11 UTC (rev 16004)
@@ -36,6 +36,9 @@
     private String svnBaseUrl = null;
     
     private List<SpecReference> unmatched;
+    
+    private int failThreshold;
+    private int passThreshold;
 
     public CoverageReport(List<SpecReference> references, AuditParser auditParser) {
         this.references = new HashMap<String, List<SpecReference>>();
@@ -67,6 +70,9 @@
            {
               svnBaseUrl = svnBaseUrl + "/";
            }
+           
+           passThreshold = this.properties.getIntValue("pass_threshold", 75, false);
+           failThreshold = this.properties.getIntValue("fail_threshold", 50, false);
         }
         catch (Exception ex)
         {
@@ -152,9 +158,23 @@
         sb.append("   .coverageMethod {\n");
         sb.append("    font-style: italic; }\n");
         sb.append("  .pass {\n");
+        sb.append("    border-top: 1px solid #488c41;\n");
+        sb.append("    border-bottom: 1px solid #488c41;\n");
+        sb.append("    padding-bottom: 1px;\n");
+        sb.append("    margin-bottom: 2px;\n");
         sb.append("    background-color: #dfd; }\n");
         sb.append("  .fail {\n");
+        sb.append("    border-top: 1px solid #ab2020;\n");
+        sb.append("    border-bottom: 1px solid #ab2020;\n");
+        sb.append("    padding-bottom: 1px;\n");
+        sb.append("    margin-bottom: 2px;\n");
         sb.append("    background-color: #fdd; }\n");
+        sb.append("  .untestable {\n");
+        sb.append("    padding-bottom: 16px;\n");
+        sb.append("    margin-bottom: 2px;\n");
+        sb.append("    border-top: 1px solid #317ba6;\n");
+        sb.append("    border-bottom: 1px solid #317ba6;\n");
+        sb.append("    background-color: #80d1ff; }\n");        
 
         sb.append("</style>\n");
 
@@ -191,15 +211,28 @@
        sb.append("<td>");
        
        int assertionTotal = 0;
+       int testableAssertionTotal = 0;
        
        for (List<AuditAssertion> assertions : auditParser.getAssertions().values())
        {
           assertionTotal += assertions.size();
+          
+          for (AuditAssertion a : assertions)
+          {
+             if (a.isTestable()) testableAssertionTotal++;
+          }
        }
        
        sb.append(assertionTotal);
        sb.append("</td>");
        sb.append("</tr>");
+
+       sb.append("<tr>");
+       sb.append("<td>Total number of testable assertions</td>");
+       sb.append("<td>");
+       sb.append(testableAssertionTotal);
+       sb.append("</td>");
+       sb.append("</tr>");       
        
        sb.append("<tr>");
        sb.append("<td>Total number of tested assertions</td>");
@@ -223,17 +256,13 @@
               
        sb.append("</tr>");
 
-       double coveragePercent = assertionTotal > 0 ? ((coverage * 1.0) / assertionTotal) * 100 : 0;
-       String bgColor = coveragePercent < 60 ? "#ffaaaa" : coveragePercent < 80 ? "#ffffaa" : "#aaffaa";
+       double coveragePercent = testableAssertionTotal > 0 ? ((coverage * 1.0) / testableAssertionTotal) * 100 : 100;
+       String bgColor = coveragePercent < failThreshold ? "#ffaaaa" : 
+          coveragePercent < passThreshold ? "#ffffaa" : "#aaffaa";
        
        sb.append("<tr style=\"background-color:" + bgColor + "; border-color: " + bgColor + "\">");
        
-       
-       
        sb.append("<td style=\"background-color:" + bgColor + "; border-color: " + bgColor + "\">Total percentage of tested assertions</td>");
-       
-       
-       
        sb.append("<td align=\"center\" style=\"background-color:" + bgColor + "; border-color: " + bgColor + "\">");       
        
        sb.append(String.format("%.2f%%", coveragePercent));
@@ -265,6 +294,7 @@
        sb.append("<tr style=\"background-color:#dddddd\">");
        sb.append("<th align=\"left\">Section</th>");
        sb.append("<th>Assertions</th>");
+       sb.append("<th>Testable</th>");
        sb.append("<th>Tested</th>");
        sb.append("<th>Coverage %</th>");
        sb.append("</tr>");
@@ -295,6 +325,13 @@
          sb.append("</td>");
          
          int assertions = auditParser.getAssertionsForSection(sectionId).size();
+         int testable = 0;
+         
+         for (AuditAssertion a : auditParser.getAssertionsForSection(sectionId))
+         {
+            if (a.isTestable()) testable++;
+         }
+         
          int coverage = 0;
          
          for (AuditAssertion assertion : auditParser.getAssertionsForSection(sectionId))
@@ -305,28 +342,27 @@
             }
          }
          
-         double coveragePercent = assertions > 0 ? ((coverage * 1.0) / assertions) * 100 : -1;
+         double coveragePercent = testable > 0 ? ((coverage * 1.0) / testable) * 100 : 100;
          
          sb.append("<td align=\"center\">");
          sb.append(assertions);
          sb.append("</td>");
          
          sb.append("<td align=\"center\">");
+         sb.append(testable);
+         sb.append("</td>");
+         
+         sb.append("<td align=\"center\">");
          sb.append(coverage);
          sb.append("</td>");
          
-         if (coveragePercent >= 0)
-         {
-            String bgColor = coveragePercent < 60 ? "#ffaaaa" : coveragePercent < 80 ? "#ffffaa" : "#aaffaa" ;
-         
-            sb.append("<td align=\"center\" style=\"background-color:" + bgColor + "\">");
-            sb.append(String.format("%.2f%%", coveragePercent));
-            sb.append("</td>");
-         }
-         else
-         {
-            sb.append("<td />");
-         }
+         String bgColor = coveragePercent < failThreshold ? "#ffaaaa" : 
+            coveragePercent < passThreshold ? "#ffffaa" : "#aaffaa";
+
+         sb.append("<td align=\"center\" style=\"background-color:" + bgColor + "\">");
+         sb.append(String.format("%.2f%%", coveragePercent));
+         sb.append("</td>");
+
          sb.append("</tr>");
        }
 
@@ -352,7 +388,25 @@
                 for (AuditAssertion assertion : sectionAssertions) {
                     List<SpecReference> coverage = getCoverageForAssertion(sectionId, assertion.getId());
 
-                    sb.append("  <div class=\"" + (coverage.isEmpty() ? "fail" : "pass") + "\">\n");
+                    String divClass = null;
+                    
+                    if (assertion.isTestable())
+                    {
+                       if (coverage.isEmpty())
+                       {
+                          divClass = "fail";
+                       }
+                       else
+                       {
+                          divClass = "pass";
+                       }
+                    }
+                    else
+                    {
+                       divClass = "untestable";
+                    }
+                    
+                    sb.append("  <div class=\"" + divClass + "\">\n");
 
                     sb.append("    <span class=\"code\">");
                     sb.append(assertion.getId());
@@ -364,61 +418,66 @@
                     sb.append(assertion.getText());
                     sb.append("</p>\n");
 
-                    sb.append("    <div class=\"coverage\">\n");
-                    sb.append("      <p class=\"coverageHeader\">Coverage</p>\n");
-                    
-                    String currentPackageName = null;                    
-
-                    if (coverage.isEmpty()) {
-                        sb.append("        <p class=\"noCoverage\">No tests exist for this assertion</p>\n");
-                    } else {
-                        for (SpecReference ref : coverage) {
-                            if (!ref.getPackageName().equals(currentPackageName))
-                            {
-                               currentPackageName = ref.getPackageName();
-                               sb.append("        <div class=\"packageName\">");
-                               sb.append(currentPackageName);
-                               sb.append("        </div>\n");                               
-                            }                           
-                          
-                            sb.append("        <div class=\"coverageMethod\">");
-                            sb.append(ref.getClassName());
-                            sb.append(".");
-                            sb.append(ref.getMethodName());
-                            sb.append("()");
-                            
-                            if (fisheyeBaseUrl != null)
-                            {                               
-                               sb.append("<a class=\"external\" target=\"_blank\" href=\"");
-                               sb.append(fisheyeBaseUrl);
-                               sb.append(currentPackageName.replace('.', '/'));
-                               sb.append("/");
+                    if (assertion.isTestable())
+                    {
+                       sb.append("    <div class=\"coverage\">\n");
+                       sb.append("      <p class=\"coverageHeader\">Coverage</p>\n");
+                       
+                       String currentPackageName = null;                    
+   
+                       if (coverage.isEmpty()) {
+                           sb.append("        <p class=\"noCoverage\">No tests exist for this assertion</p>\n");
+                       } else {
+                           for (SpecReference ref : coverage) {
+                               if (!ref.getPackageName().equals(currentPackageName))
+                               {
+                                  currentPackageName = ref.getPackageName();
+                                  sb.append("        <div class=\"packageName\">");
+                                  sb.append(currentPackageName);
+                                  sb.append("        </div>\n");                               
+                               }                           
+                             
+                               sb.append("        <div class=\"coverageMethod\">");
                                sb.append(ref.getClassName());
-                               sb.append(".java");
-                               sb.append("\">fisheye</a>");
-                            }
-                            
-                            if (svnBaseUrl != null)
-                            {
+                               sb.append(".");
+                               sb.append(ref.getMethodName());
+                               sb.append("()");
+                               
                                if (fisheyeBaseUrl != null)
+                               {                               
+                                  sb.append("<a class=\"external\" target=\"_blank\" href=\"");
+                                  sb.append(fisheyeBaseUrl);
+                                  sb.append(currentPackageName.replace('.', '/'));
+                                  sb.append("/");
+                                  sb.append(ref.getClassName());
+                                  sb.append(".java");
+                                  sb.append("\">fisheye</a>");
+                               }
+                               
+                               if (svnBaseUrl != null)
                                {
-                                  sb.append("|");                                  
+                                  if (fisheyeBaseUrl != null)
+                                  {
+                                     sb.append("|");                                  
+                                  }
+                                  
+                                  sb.append("<a class=\"external\" target=\"_blank\" href=\"");
+                                  sb.append(svnBaseUrl);
+                                  sb.append(currentPackageName.replace('.', '/'));
+                                  sb.append("/");
+                                  sb.append(ref.getClassName());
+                                  sb.append(".java");
+                                  sb.append("\">svn</a>");                               
                                }
                                
-                               sb.append("<a class=\"external\" target=\"_blank\" href=\"");
-                               sb.append(svnBaseUrl);
-                               sb.append(currentPackageName.replace('.', '/'));
-                               sb.append("/");
-                               sb.append(ref.getClassName());
-                               sb.append(".java");
-                               sb.append("\">svn</a>");                               
-                            }
-                            
-                            sb.append("</div>\n");
-                        }
+                               sb.append("</div>\n");
+                           }
+                       }
+   
+                       sb.append("    </div>\n");
                     }
-
-                    sb.append("    </div>\n  </div>\n</div>");
+                    
+                    sb.append("</div></div>");
                 }
 
                 out.write(sb.toString().getBytes());




More information about the hibernate-commits mailing list