incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From asa...@apache.org
Subject svn commit: r1551534 - /sling/trunk/performance/base/src/main/java/org/apache/sling/performance/ReportLogger.java
Date Tue, 17 Dec 2013 13:06:47 GMT
Author: asanso
Date: Tue Dec 17 13:06:46 2013
New Revision: 1551534

URL: http://svn.apache.org/r1551534
Log:
SLING-2729 - Performance Testing suite: Modified ReportLogger to log the test case name 

* applied patch from Andrei Dulvac (thanks)

Modified:
    sling/trunk/performance/base/src/main/java/org/apache/sling/performance/ReportLogger.java

Modified: sling/trunk/performance/base/src/main/java/org/apache/sling/performance/ReportLogger.java
URL: http://svn.apache.org/viewvc/sling/trunk/performance/base/src/main/java/org/apache/sling/performance/ReportLogger.java?rev=1551534&r1=1551533&r2=1551534&view=diff
==============================================================================
--- sling/trunk/performance/base/src/main/java/org/apache/sling/performance/ReportLogger.java
(original)
+++ sling/trunk/performance/base/src/main/java/org/apache/sling/performance/ReportLogger.java
Tue Dec 17 13:06:46 2013
@@ -12,45 +12,57 @@ import org.apache.commons.math.stat.desc
 
 public class ReportLogger {
 
+    public static final String REPORTS_DIR = "performance-reports";
+
 	public enum ReportType {
 		TXT
 	}
 
-	public static void writeReport(String test, String testSuiteName,
-			String name, DescriptiveStatistics statistics, ReportType reportType, PerformanceRunner.ReportLevel
reportlevel)
-			throws Exception {
+    /**
+     * Method the writes the performance report after a test is run
+     * @param testSuiteName
+     * @param testCaseName
+     * @param className
+     * @param methodName
+     * @param statistics
+     * @param reportType
+     * @param reportLevel
+     * @throws Exception
+     */
+    public static void writeReport(String testSuiteName, String testCaseName, String className,
String methodName,
+            DescriptiveStatistics statistics, ReportType reportType, PerformanceRunner.ReportLevel
reportLevel) throws Exception {
 		switch (reportType) {
 		case TXT:
-			writeReportTxt(test, testSuiteName, name, statistics, reportlevel);
+                writeReportTxt(testSuiteName, testCaseName, className, methodName, statistics,
reportLevel);
 			break;
 		default:
-			throw new Exception(
-					"The specified reporting format is not yet supported");
+                throw new Exception("The specified reporting format is not yet supported");
 		}
 	}
 
 	/**
-	 * Method the writes the performance report after a test is run
+     * Method the writes the performance report after a test is run, in text format
 	 * 
-	 * @param test
-	 *            the test name
-	 * @param name
-	 *            the name that will be listed in the report
+     * @param testSuiteName
+     * @param testCaseName
+     * @param className
+     * @param methodName
 	 * @param statistics
-	 *            the statistics data to be written
-	 * @throws IOException
+     * @param reportlevel
+     * @throws Exception
 	 */
-	public static void writeReportTxt(String test, String testSuiteName, String name, DescriptiveStatistics
statistics, PerformanceRunner.ReportLevel reportlevel)
-			throws Exception{
+    public static void writeReportTxt(String testSuiteName, String testCaseName, String className,
String methodName,
+            DescriptiveStatistics statistics, PerformanceRunner.ReportLevel reportlevel)
throws Exception {
 
-		String className = test;
-		className = className.substring(className.lastIndexOf(".") + 1);
+        // Short class form
+        String shortClassName = className.substring(className.lastIndexOf(".") + 1);
 
-		File reportDir = new File("target/performance-reports");
+        File reportDir = new File("target/" + REPORTS_DIR);
 		if (!reportDir.exists()) {
-			if (!reportDir.mkdir())
-				throw new IOException("Unable to create performance-reports directory");	
+            if (!reportDir.mkdir()) {
+                throw new IOException("Unable to create " + REPORTS_DIR + " directory");
 		}
+        }
 
 		// need this in the case a user wants to set the suite name from the
 		// command line
@@ -62,26 +74,26 @@ public class ReportLogger {
 			}
 		}
 
-		String resultFileName = className;
+        String resultFileName = shortClassName;
 		if (reportlevel.equals(PerformanceRunner.ReportLevel.ClassLevel)){
 			writeReportClassLevel(resultFileName, testSuiteName, statistics);
 			}else if (reportlevel.equals(PerformanceRunner.ReportLevel.MethodLevel)){
-				resultFileName = test + "." + name;
-				writeReportMethodLevel(resultFileName, testSuiteName, statistics);
+            resultFileName = shortClassName + "." + methodName;
+            writeReportMethodLevel(resultFileName, testSuiteName, testCaseName, className,
methodName, statistics);
 			}
 	}
 	
 	/**
      * Write report for class level tests
+     *
      * @param resultFileName the name of the result file (without extension)
      * @param testSuiteName the name of the test suite name
      * @param statistics the statistics object used to compute different medians
-     * @throws IOException
      */
-    private static void writeReportClassLevel(String resultFileName, String testSuiteName,
DescriptiveStatistics statistics)
-    		throws IOException{
+    private static void writeReportClassLevel(String resultFileName, String testSuiteName,
+            DescriptiveStatistics statistics) throws IOException {
     	
-    	File report = new File("target/performance-reports", resultFileName + ".txt");
+        File report = new File("target/" + REPORTS_DIR, resultFileName + ".txt");
 		boolean needsPrefix = !report.exists();
 	    PrintWriter writer = new PrintWriter(
 	    		new FileWriterWithEncoding(report, "UTF-8", true));
@@ -107,33 +119,35 @@ public class ReportLogger {
     
     /**
      * Write report for method level tests
+     *
      * @param resultFileName the name of the result file (without extension)
      * @param testSuiteName the name of the test suite name
+     * @param testCaseName
+     * @param className
+     * @param methodName
      * @param statistics the statistics object used to compute different medians
-     * @throws IOException
      */
-    private static void writeReportMethodLevel(String resultFileName, String testSuiteName,
DescriptiveStatistics statistics)
-    	    throws IOException{
-    	File report = new File("target/performance-reports", resultFileName + ".txt");
+    private static void writeReportMethodLevel(String resultFileName, String testSuiteName,
String testCaseName, String className,
+            String methodName, DescriptiveStatistics statistics) throws IOException {
+        File report = new File("target/" + REPORTS_DIR, resultFileName + ".txt");
 	
-    	String className = resultFileName.substring(0, resultFileName.lastIndexOf(".")); 
-    	String methodName = resultFileName.substring(resultFileName.lastIndexOf(".") + 1); 
-    	
     	boolean needsPrefix = !report.exists();
     	PrintWriter writer = new PrintWriter(
     			new FileWriterWithEncoding(report, "UTF-8", true));
     	try {
     		if (needsPrefix) {
     			writer.format(
-    					"%-40.40s|%-80.80s|%-40.40s|      DateTime      |  min  |   10%%   |   50%%   |
  90%%   |   max%n",
+                        "%-40.40s|%-120.120s|%-80.80s|%-40.40s|      DateTime      |  min
 |   10%%   |   50%%   |   90%%   |   max%n",
     					"Test Suite",
+                        "Test Case",
     					"Test Class",
     					"Test Method");
     		}
     		
     		writer.format(
-    				"%-40.40s|%-80.80s|%-40.40s|%-20.20s|%7.0f|%9.0f|%9.0f|%9.0f|%9.0f%n",
+                    "%-40.40s|%-120.120s|%-80.80s|%-40.40s|%-20.20s|%7.0f|%9.0f|%9.0f|%9.0f|%9.0f%n",
     				testSuiteName,
+                    (testCaseName.length() < 120) ? (testCaseName) : (testCaseName.substring(0,
115) + "[...]"),
     				className,
     				methodName,
     				getDate(),
@@ -148,12 +162,8 @@ public class ReportLogger {
     }
 	    
 	
-	
-
 	/**
 	 * Get the date that will be written into the result file
-	 * 
-	 * @return
 	 */
 	private static String getDate() {
 		DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");



Mime
View raw message