[Yanel-commits] rev 22447 - in public/yanel/trunk/src/resources/testing-times: src/java/org/wyona/yanel/impl/resources xslt

josias at wyona.com josias at wyona.com
Mon Feb 5 21:28:55 CET 2007


Author: josias
Date: 2007-02-05 21:28:54 +0100 (Mon, 05 Feb 2007)
New Revision: 22447

Modified:
   public/yanel/trunk/src/resources/testing-times/src/java/org/wyona/yanel/impl/resources/TestingTimes.java
   public/yanel/trunk/src/resources/testing-times/xslt/testNames2html.xsl
Log:
improved scalability (option to select only n testcases to be analyzed), and show individual testcases instead of just testsuites. see bug #5140, thanks to simon

Modified: public/yanel/trunk/src/resources/testing-times/src/java/org/wyona/yanel/impl/resources/TestingTimes.java
===================================================================
--- public/yanel/trunk/src/resources/testing-times/src/java/org/wyona/yanel/impl/resources/TestingTimes.java	2007-02-05 19:54:56 UTC (rev 22446)
+++ public/yanel/trunk/src/resources/testing-times/src/java/org/wyona/yanel/impl/resources/TestingTimes.java	2007-02-05 20:28:54 UTC (rev 22447)
@@ -206,13 +206,18 @@
         return defaultView;
     }
     
-    private View showImage(View defaultView, String name) throws Exception, TransformerConfigurationException, TransformerFactoryConfigurationError, TransformerException{
+    private View showImage(View defaultView, String name) throws Exception,
+            TransformerConfigurationException, TransformerFactoryConfigurationError,
+            TransformerException {
         Document doc = getCombinedResults(name);
-        
-        JFreeChart chart = createChart(createTestTimeDataset(doc), name);
-        
+        boolean showCases = false;
+        if (!name.equals("all")) {
+            showCases = true;
+        }
+        JFreeChart chart = createChart(createTestTimeDataset(doc, showCases), name);
+
         ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-        ChartUtilities.writeChartAsPNG(byteArrayOutputStream, chart, chartWidth, chartHeight );
+        ChartUtilities.writeChartAsPNG(byteArrayOutputStream, chart, chartWidth, chartHeight);
 
         defaultView.setMimeType("image/png");
         defaultView.setInputStream(new java.io.ByteArrayInputStream(byteArrayOutputStream.toByteArray()));
@@ -242,15 +247,12 @@
             org.wyona.yarep.core.Path[] children = contentRepo.getChildren(testResultArchivePath);
             
             //to limit the aggregation
-            int iterator = 0;
-            if(!numberOfResults.equals("all")){
-                int omittedCildren = children.length - Integer.parseInt(numberOfResults);
-                if(omittedCildren > 0){
-                    iterator = omittedCildren;
-                }
+            int omittedChildren = 1;
+            if(!numberOfResults.equals("all") && children.length > Integer.parseInt(numberOfResults)){
+                omittedChildren = children.length / Integer.parseInt(numberOfResults);
             }
             
-            for (int i = iterator; i < children.length; i++) {
+            for (int i = 0; i < children.length; i = i + omittedChildren) {
                 if (contentRepo.isResource(children[i])) {
                     //get date from filename
                     String date = children[i].getName().substring(0,
@@ -310,9 +312,10 @@
      *
      * @return The dataset.
      */
-    private XYDataset createTestTimeDataset(Document doc) throws Exception{
+    private XYDataset createTestTimeDataset(Document doc, boolean showCases) throws Exception{
         
-        HashSet distinctNames = new HashSet();
+        HashSet distinctSuiteNames = new HashSet();
+        HashSet distinctCaseNames = new HashSet();
         TimeSeriesCollection dataset = new TimeSeriesCollection();
             
         Element rootElement = doc.getDocumentElement();
@@ -327,18 +330,31 @@
             String time = testSuiteAttributes.getNamedItem("time").getNodeValue();
             String name = testSuiteAttributes.getNamedItem("name").getNodeValue()+" Suite";
               
-            if(distinctNames.contains(name)){
+            if(distinctSuiteNames.contains(name)){
                 dataset.getSeries(name).add(new Second(Integer.parseInt(dateFields[5]),Integer.parseInt(dateFields[4]),Integer.parseInt(dateFields[3]),Integer.parseInt(dateFields[2]),Integer.parseInt(dateFields[1]),Integer.parseInt(dateFields[0])), java.lang.Double.parseDouble(time));
             } else {
-                distinctNames.add(name);
+                distinctSuiteNames.add(name);
                 dataset.addSeries( new TimeSeries(name, Second.class));
                 dataset.getSeries(name).add(new Second(Integer.parseInt(dateFields[5]),Integer.parseInt(dateFields[4]),Integer.parseInt(dateFields[3]),Integer.parseInt(dateFields[2]),Integer.parseInt(dateFields[1]),Integer.parseInt(dateFields[0])), java.lang.Double.parseDouble(time));
             }
-            //TODO add also testcases to the dataset if wished
-            //if(showCases){
-            //    Node testcaseNode = node.getFirstChild();
-            //    NamedNodeMap testCaseAttributes = testcaseNode.getAttributes();
-            //}
+
+            if(showCases){
+                Node testcaseNode = node.getFirstChild();
+                NamedNodeMap testCaseAttributes = testcaseNode.getAttributes();
+                String caseDate = testCaseAttributes.getNamedItem("date").getNodeValue();
+                //parse date
+                String[] caseDateFields = date.split("-");
+                String caseTime = testCaseAttributes.getNamedItem("time").getNodeValue();
+                String caseName = name+": "+testCaseAttributes.getNamedItem("name").getNodeValue()+" Case";
+                
+                if(distinctCaseNames.contains(caseName)){
+                    dataset.getSeries(caseName).add(new Second(Integer.parseInt(caseDateFields[5]),Integer.parseInt(caseDateFields[4]),Integer.parseInt(caseDateFields[3]),Integer.parseInt(caseDateFields[2]),Integer.parseInt(caseDateFields[1]),Integer.parseInt(caseDateFields[0])), java.lang.Double.parseDouble(caseTime));
+                } else {
+                    distinctCaseNames.add(caseName);
+                    dataset.addSeries( new TimeSeries(caseName, Second.class));
+                    dataset.getSeries(caseName).add(new Second(Integer.parseInt(caseDateFields[5]),Integer.parseInt(caseDateFields[4]),Integer.parseInt(caseDateFields[3]),Integer.parseInt(caseDateFields[2]),Integer.parseInt(caseDateFields[1]),Integer.parseInt(caseDateFields[0])), java.lang.Double.parseDouble(caseTime));
+                }
+            }
         }
         return dataset;
     }    
@@ -372,7 +388,7 @@
         plot.setDomainCrosshairVisible(true);
         plot.setRangeCrosshairVisible(true);
         DateAxis axis = (DateAxis) plot.getDomainAxis();
-        axis.setDateFormatOverride(new SimpleDateFormat("yy-MM.dd-hh"));
+        axis.setDateFormatOverride(new SimpleDateFormat("yy/MM/dd"));
         return chart;
 
     }

Modified: public/yanel/trunk/src/resources/testing-times/xslt/testNames2html.xsl
===================================================================
--- public/yanel/trunk/src/resources/testing-times/xslt/testNames2html.xsl	2007-02-05 19:54:56 UTC (rev 22446)
+++ public/yanel/trunk/src/resources/testing-times/xslt/testNames2html.xsl	2007-02-05 20:28:54 UTC (rev 22447)
@@ -33,7 +33,7 @@
             <a href="?showTest=all">
             All Tests</a>
           </p>
-          <img src="?showImage={$testname}&amp;setNumberOfResults=5" alt="All Testsuites Execution Time"/>
+          <img src="?showImage={$testname}" alt="All Testsuites Execution Time"/>
         </div>
       </body>
     </html>




More information about the Yanel-commits mailing list