You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by ti...@apache.org on 2010/01/04 19:25:20 UTC
svn commit: r895739 -
/incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java
Author: tillw
Date: Mon Jan 4 18:25:19 2010
New Revision: 895739
URL: http://svn.apache.org/viewvc?rev=895739&view=rev
Log:
- put all results into 1 (HTML) file to reduce generation time
Modified:
incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java
Modified: incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java?rev=895739&r1=895738&r2=895739&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java (original)
+++ incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java Mon Jan 4 18:25:19 2010
@@ -16,10 +16,12 @@
*/
package org.apache.vxquery.xtest;
+import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
+import java.net.URI;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
@@ -49,7 +51,7 @@
private PrintWriter out;
- private File resultsDir;
+ private File resultsFile;
public HTMLFileReporterImpl(File file) throws IOException {
results = new ArrayList<TestCaseResult>();
@@ -63,11 +65,10 @@
out = new PrintWriter(file);
String fileName = file.getName();
int dot = file.getName().lastIndexOf('.');
- String dirName = (dot < 0 ? fileName : fileName.substring(0, dot)) + "_results";
- resultsDir = file.getParent() != null
- ? new File(file.getParent() + File.separator + dirName)
- : new File(dirName);
- ensureDir(resultsDir);
+ String resultsFileName = (dot < 0 ? fileName : fileName.substring(0, dot)) + "_results.html";
+ resultsFile = file.getParent() != null
+ ? new File(file.getParent() + File.separator + resultsFileName)
+ : new File(resultsFileName);
}
}
@@ -103,12 +104,36 @@
@Override
public void close() {
if (out != null) {
- writeHTML(out);
+ if (resultsFile != null) {
+ try {
+ FileWriter resultsWriter = new FileWriter(resultsFile);
+ PrintWriter resultsReport = new PrintWriter(new BufferedWriter(resultsWriter));
+ writeHTML(out, resultsReport, resultsFile.toURI());
+ resultsReport.flush();
+ resultsWriter.close();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ } else {
+ writeHTML(out);
+ }
out.flush();
}
}
public void writeHTML(PrintWriter out) {
+ writeHTML(out, null, null);
+ }
+
+ private void writeHTML(PrintWriter out, PrintWriter resOut, URI resURI) {
+ //long start = System.currentTimeMillis();
+ if (resOut != null) {
+ resOut.println("<html><head><title>results</title>");
+ resOut.println("<style type=\"text/css\">");
+ resOut.println("pre {background: #F0F0F0}");
+ resOut.println("</style></head><body>");
+ }
out.println("<html><body>");
writeSummary(out, count, userErrors, internalErrors, startTime, endTime);
out.println("<hl>");
@@ -116,8 +141,12 @@
out.println("<hl>");
writeExceptionDistribution(out, exDistribution);
out.println("<hl>");
- writeResults(out, results, resultsDir);
+ writeResults(out, resOut, resURI, results);
out.println("</body></html>");
+ if (resOut != null) {
+ resOut.println("</body></html>");
+ }
+ //System.err.println("HTML generation time: " + (System.currentTimeMillis() - start));
}
private static void writeSummary(PrintWriter out, int count, int userErrors,
@@ -181,7 +210,7 @@
out.println("</table>");
}
- private static void writeResults(PrintWriter out, List<TestCaseResult> results, File resultsDir) {
+ private static void writeResults(PrintWriter out, PrintWriter resOut, URI resURI, List<TestCaseResult> results) {
out.println("<table>");
int len = results.size();
for (int i = 0; i < len; ++i) {
@@ -198,10 +227,10 @@
out.print("</a></td><td>");
out.print(res.time);
out.print("</td><td>");
- File resultFile = createResultFile(resultsDir, res, queryDisplayName);
- if (resultFile != null) {
+ String name = appendResult(resOut, res, queryDisplayName);
+ if (name != null) {
out.print("<a href=\"");
- out.print(resultFile.toURI());
+ out.print(resURI + "#" + name);
out.print("\">");
out.print(res.report);
out.print("</a>");
@@ -213,31 +242,23 @@
out.println("</table>");
}
- private static File createResultFile(File resultsDir, TestCaseResult res, String queryDisplayName) {
- if (resultsDir == null) {
+ private static String appendResult(PrintWriter resOut, TestCaseResult res, String queryDisplayName) {
+ if (resOut == null) {
return null;
}
- try {
- File resultFile = new File(resultsDir + File.separator + queryDisplayName + ".res");
- ensureDir(resultFile.getParentFile());
- FileWriter fw = new FileWriter(resultFile);
- if (res.result != null) {
- fw.write(res.result);
- } else {
- PrintWriter pw = new PrintWriter(fw);
- res.error.printStackTrace(pw);
- }
- fw.close();
- return resultFile;
- } catch (IOException e) {
- e.printStackTrace();
- return null;
- }
- }
-
- private static void ensureDir(File dir) throws IOException {
- if (!dir.isDirectory() && !dir.mkdirs()) {
- throw new IOException("could not create dir " + dir);
+ resOut.println(
+ "<a style=\"background: " + res.state.getColor()
+ + "\" name=\"" + queryDisplayName
+ + "\"> </a>");
+ resOut.println(queryDisplayName);
+ resOut.println("<pre>");
+ // TODO need to escape HTML entities
+ if (res.result != null) {
+ resOut.println(res.result);
+ } else {
+ res.error.printStackTrace(resOut);
}
+ resOut.println("</pre>");
+ return queryDisplayName;
}
}
\ No newline at end of file