vhardy 01/10/08 04:37:47
Modified: test-resources/org/apache/batik/test regard.xml
test-resources/org/apache/batik/test/xml/resources
Messages.properties
test-sources/org/apache/batik/test/xml
XMLTestReportProcessor.java
XSLXMLReportConsumer.java
Log:
Modified regard output structure. Now, reports are generated in
a test-reports subdirectory with the following naming convention:
<year>.<month>.<date>-<hh>h<mm>m<ss>s
All report resources for one test run are under that directory,
which makes it easier to archive test results.
Revision Changes Path
1.12 +4 -6 xml-batik/test-resources/org/apache/batik/test/regard.xml
Index: regard.xml
===================================================================
RCS file: /home/cvs/xml-batik/test-resources/org/apache/batik/test/regard.xml,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- regard.xml 2001/10/05 13:12:22 1.11
+++ regard.xml 2001/10/08 11:37:46 1.12
@@ -11,7 +11,7 @@
<!-- regression testing. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
-<!-- @version $Id: regard.xml,v 1.11 2001/10/05 13:12:22 vhardy Exp $ -->
+<!-- @version $Id: regard.xml,v 1.12 2001/10/08 11:37:46 vhardy Exp $ -->
<!-- ========================================================================= -->
<testRun id="regard" name="Batik Standard Regression Test Run">
<testReportProcessor class="org.apache.batik.test.xml.XMLTestReportProcessor" >
@@ -19,11 +19,9 @@
<!-- Stylesheet -->
<arg class="java.lang.String"
value="file:test-resources/org/apache/batik/test/svg/HTMLReport.xsl" />
<!-- Ouput Directory -->
- <arg class="java.lang.String" value="test-reports/html" />
- <!-- Output file prefix -->
- <arg class="java.lang.String" value="RegardResult" />
- <!-- Output file suffix -->
- <arg class="java.lang.String" value=".html" />
+ <arg class="java.lang.String" value="html" />
+ <!-- Output file name -->
+ <arg class="java.lang.String" value="regardReport.html" />
</arg>
</testReportProcessor>
1.6 +8 -11
xml-batik/test-resources/org/apache/batik/test/xml/resources/Messages.properties
Index: Messages.properties
===================================================================
RCS file:
/home/cvs/xml-batik/test-resources/org/apache/batik/test/xml/resources/Messages.properties,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Messages.properties 2001/10/04 08:25:38 1.5
+++ Messages.properties 2001/10/08 11:37:46 1.6
@@ -9,20 +9,17 @@
#
# XMLTestReportProcessor configuration
#
-XMLTestReportProcessor.config.xml.test.report.prefix = \
-XTR
-
-XMLTestReportProcessor.config.xml.test.report.resource.prefix = \
-res_
+XMLTestReportProcessor.config.xml.test.report.default.directory = \
+test-reports
-XMLTestReportProcessor.config.xml.test.report.suffix = \
-.xml
+XMLTestReportProcessor.xml.report.directory = \
+xml
-XMLTestReportProcessor.config.xml.test.report.default.directory = \
-test-reports/xml
+XMLTestReportProcessor.xml.resources.directory = \
+resources
-XMLTestReportProcessor.config.xml.test.report.resources.default.directory = \
-test-reports/xml/resources
+XMLTestReportProcessor.config.xml.test.report.name = \
+report.xml
#
# Messages
1.10 +137 -42
xml-batik/test-sources/org/apache/batik/test/xml/XMLTestReportProcessor.java
Index: XMLTestReportProcessor.java
===================================================================
RCS file:
/home/cvs/xml-batik/test-sources/org/apache/batik/test/xml/XMLTestReportProcessor.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- XMLTestReportProcessor.java 2001/10/04 08:25:37 1.9
+++ XMLTestReportProcessor.java 2001/10/08 11:37:47 1.10
@@ -23,6 +23,8 @@
import java.net.URL;
+import java.util.Calendar;
+
import org.apache.batik.test.TestReport;
import org.apache.batik.test.TestReportProcessor;
import org.apache.batik.test.TestSuite;
@@ -49,7 +51,7 @@
* report consumer of the XML file it created.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
- * @version $Id: XMLTestReportProcessor.java,v 1.9 2001/10/04 08:25:37 vhardy Exp $
+ * @version $Id: XMLTestReportProcessor.java,v 1.10 2001/10/08 11:37:47 vhardy Exp $
*/
public class XMLTestReportProcessor
implements TestReportProcessor,
@@ -61,8 +63,12 @@
public static interface XMLReportConsumer {
/**
* Invoked when new report has been generated.
+ * @param xmlReport file containing the xml report
+ * @param reportDirectory base directory where any resource relative
+ * to the report processing should be stored.
*/
- public void onNewReport(File xmlReport) throws Exception ;
+ public void onNewReport(File xmlReport,
+ File reportDirectory) throws Exception ;
}
/**
@@ -78,43 +84,52 @@
= "xml.XMLTestReportProcessor.error.report.resources.directory.unusable";
/**
- * Prefix for the files created by this processor
+ * Default report directory
*/
- public static final String XML_TEST_REPORT_PREFIX
- =
Messages.formatMessage("XMLTestReportProcessor.config.xml.test.report.prefix", null);
+ public static final String XML_TEST_REPORT_DEFAULT_DIRECTORY
+ =
Messages.formatMessage("XMLTestReportProcessor.config.xml.test.report.default.directory",
null);
/**
- * Prefix for the resource files created by this processor. Resource files are
- * copies of files found as Entries in TestReports.
+ * Directory where the XML report is created
*/
- public static final String XML_TEST_REPORT_RESOURCE_PREFIX
- =
Messages.formatMessage("XMLTestReportProcessor.config.xml.test.report.resource.prefix",
null);
+ public static final String XML_REPORT_DIRECTORY
+ = Messages.formatMessage("XMLTestReportProcessor.xml.report.directory",
null);
/**
- * Suffix for the files created by this processor
+ * Directory where resources (e.g., images) referenced by the
+ * XML report are copied.
*/
- public static final String XML_TEST_REPORT_SUFFIX
- =
Messages.formatMessage("XMLTestReportProcessor.config.xml.test.report.suffix", null);
+ public static final String XML_RESOURCES_DIRECTORY
+ = Messages.formatMessage("XMLTestReportProcessor.xml.resources.directory",
null);
/**
- * Default report directory
+ * Test report name
*/
- public static final String XML_TEST_REPORT_DEFAULT_DIRECTORY
- =
Messages.formatMessage("XMLTestReportProcessor.config.xml.test.report.default.directory",
null);
+ public static final String XML_TEST_REPORT_NAME
+ =
Messages.formatMessage("XMLTestReportProcessor.config.xml.test.report.name", null);
/**
- * Default report resources directory
- */
- public static final String XML_TEST_REPORT_RESOURCES_DEFAULT_DIRECTORY
- =
Messages.formatMessage("XMLTestReportProcessor.config.xml.test.report.resources.default.directory",
null);
-
- /**
* The XMLReportConsumer instance is notified whenever
* this object generates a new report.
*/
protected XMLReportConsumer consumer;
/**
+ * Directory into which this processor puts all files and resources.
+ */
+ protected File reportDirectory;
+
+ /**
+ * Directory into which XML files are created
+ */
+ protected File xmlDirectory;
+
+ /**
+ * Directory into whichr resources refered to by XML files are created
+ */
+ protected File xmlResourcesDirectory;
+
+ /**
* Default constructor
*/
public XMLTestReportProcessor(){
@@ -136,13 +151,10 @@
throws TestException {
/**
- * First, try to create the directories for the
- * report and report resources if they do not exist
+ * First, create the directories for the
+ * report and report resources
*/
- checkDirectory(getReportDirectory(),
- ERROR_REPORT_DIRECTORY_UNUSABLE);
- checkDirectory(getReportResourcesDirectory(),
- ERROR_REPORT_RESOURCES_DIRECTORY_UNUSABLE);
+ initializeReportDirectories();
try {
@@ -172,7 +184,7 @@
File xmlReport = serializeReport(root);
if(consumer != null){
- consumer.onNewReport(xmlReport);
+ consumer.onNewReport(xmlReport, getReportDirectory());
}
} catch(Exception e) {
@@ -215,19 +227,68 @@
/**
* By default, the report directory is given by a configuration
- * variable.
+ * variable. Each test run will create a sub directory with
+ * the current date and time as the same. All the resources
+ * created by the report processor are then put into that
+ * "dated" directory.
+ */
+ public void initializeReportDirectories() throws TestException {
+ //
+ // Base report directory
+ //
+ File baseReportDir = new File(XML_TEST_REPORT_DEFAULT_DIRECTORY);
+ checkDirectory(baseReportDir, ERROR_REPORT_DIRECTORY_UNUSABLE);
+
+ //
+ // Create sub-directory name based on date and time
+ //
+ Calendar c = Calendar.getInstance();
+ String dirName = "" + c.get(c.YEAR) + "."
+ + c.get(c.MONTH) + "."
+ + makeTwoDigits(c.get(c.DAY_OF_MONTH)) + "-"
+ + makeTwoDigits(c.get(c.HOUR_OF_DAY)) + "h"
+ + makeTwoDigits(c.get(c.MINUTE)) + "m"
+ + makeTwoDigits(c.get(c.SECOND)) + "s";
+
+ reportDirectory = new File(baseReportDir, dirName);
+ checkDirectory(reportDirectory, ERROR_REPORT_DIRECTORY_UNUSABLE);
+
+ //
+ // Now, create a sub-directory for XML files and
+ // anotherone for resources
+ //
+ xmlDirectory = new File(reportDirectory, XML_REPORT_DIRECTORY);
+ checkDirectory(xmlDirectory, ERROR_REPORT_DIRECTORY_UNUSABLE);
+
+ xmlResourcesDirectory = new File(xmlDirectory, XML_RESOURCES_DIRECTORY);
+ checkDirectory(xmlResourcesDirectory, ERROR_REPORT_DIRECTORY_UNUSABLE);
+ }
+
+ /**
+ * Forces a two digit string
*/
- public File getReportDirectory() {
- File file = new File(XML_TEST_REPORT_DEFAULT_DIRECTORY);
- return file;
+ protected String makeTwoDigits(int i){
+ if(i > 9){
+ return "" + i;
+ }
+ else{
+ return "0" + i;
+ }
}
/**
+ * Returns the report directory
+ */
+ public File getReportDirectory(){
+ return reportDirectory;
+ }
+
+ /**
* By default, the report resources directory is
* given by a configuration variable.
*/
public File getReportResourcesDirectory() {
- return new File(XML_TEST_REPORT_RESOURCES_DEFAULT_DIRECTORY);
+ return xmlResourcesDirectory;
}
/**
@@ -338,9 +399,7 @@
//
File tmpFile = (File)value;
- File tmpFileCopy = File.createTempFile(XML_TEST_REPORT_RESOURCE_PREFIX,
- tmpFile.getName(),
- getReportResourcesDirectory());
+ File tmpFileCopy = createResourceFileForName(tmpFile.getName());
copy(tmpFile, tmpFileCopy);
@@ -380,6 +439,44 @@
}
/**
+ * Untility method. Creates a file in the resources directory
+ * for the given name. If a file in that directory does not
+ * exist yet, then it is used. Otherwise, a file with the same
+ * name with a digit suffix is created. For example, if "myFile.png"
+ * is requested, then "myFile.png" is created or "myFile<n>.png"
+ * where <n> will be one or several digits.
+ */
+ protected File createResourceFileForName(String fileName){
+ File r = new File(xmlResourcesDirectory, fileName);
+ if(!r.exists()){
+ return r;
+ }
+ else{
+ return createResourceFileForName(fileName, 1);
+ }
+ }
+
+ protected File createResourceFileForName(String fileName,
+ int instance){
+ // First, create a 'versioned' file name
+ int n = fileName.lastIndexOf('.');
+ String iFileName = fileName + instance;
+ if(n != -1){
+ iFileName = fileName.substring(0, n) + instance
+ + fileName.substring(n, fileName.length());
+ }
+
+ File r = new File(xmlResourcesDirectory, iFileName);
+ if(!r.exists()){
+ return r;
+ }
+ else{
+ return createResourceFileForName(fileName,
+ instance + 1);
+ }
+ }
+
+ /**
* Utility method. Copies in to out
*/
protected void copy(File in, File out) throws IOException {
@@ -403,12 +500,10 @@
//
// First, create a new File
//
- File tmpFile = File.createTempFile(XML_TEST_REPORT_PREFIX,
- XML_TEST_REPORT_SUFFIX,
- getReportDirectory());
-
- FileWriter fw = new FileWriter(tmpFile);
+ File reportFile = new File(xmlDirectory,
+ XML_TEST_REPORT_NAME);
+ FileWriter fw = new FileWriter(reportFile);
serializeElement(reportElement,
"",
@@ -416,7 +511,7 @@
fw.close();
- return tmpFile;
+ return reportFile;
}
1.4 +13 -22
xml-batik/test-sources/org/apache/batik/test/xml/XSLXMLReportConsumer.java
Index: XSLXMLReportConsumer.java
===================================================================
RCS file:
/home/cvs/xml-batik/test-sources/org/apache/batik/test/xml/XSLXMLReportConsumer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- XSLXMLReportConsumer.java 2001/05/14 22:43:20 1.3
+++ XSLXMLReportConsumer.java 2001/10/08 11:37:47 1.4
@@ -32,7 +32,7 @@
* XML file and stores the result in a configurable directory.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
- * @version $Id: XSLXMLReportConsumer.java,v 1.3 2001/05/14 22:43:20 vhardy Exp $
+ * @version $Id: XSLXMLReportConsumer.java,v 1.4 2001/10/08 11:37:47 vhardy Exp $
*/
public class XSLXMLReportConsumer
implements XMLTestReportProcessor.XMLReportConsumer {
@@ -54,57 +54,48 @@
private String outputDirectory;
/**
- * Prefix for the output file names
+ * Output file name
*/
- private String outputPrefix;
+ private String outputFileName;
/**
- * Suffix for the output file names.
- */
- private String outputSuffix;
-
- /**
* Constructor
* @param stylesheet URI for the stylesheet to apply to the XML report
* @param outputDirectory directory where the result of the XSL transformation
* should be written
- * @param outputPrefix prefix for the output file name
- * @param outputSuffic suffic for the output file name.
+ * @param outputFileName name of the output report.
*/
public XSLXMLReportConsumer(String stylesheet,
String outputDirectory,
- String outputPrefix,
- String outputSuffix){
+ String outputFileName){
this.stylesheet = stylesheet;
this.outputDirectory = outputDirectory;
- this.outputPrefix = outputPrefix;
- this.outputSuffix = outputSuffix;
+ this.outputFileName = outputFileName;
}
/**
* When a new report has been generated, this consumer
* applies the same stylesheet to the input XML document
*/
- public void onNewReport(File xmlReport)
+ public void onNewReport(File xmlReport,
+ File reportDirectory)
throws Exception{
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new
StreamSource(stylesheet));
transformer.transform(new StreamSource(xmlReport.toURL().toString()),
- new StreamResult(new
FileOutputStream(createNewReportOutput().getAbsolutePath())));
+ new StreamResult(new
FileOutputStream(createNewReportOutput(reportDirectory).getAbsolutePath())));
}
/**
* Returns a new file in the outputDirectory, with
- * the requested prefix/suffix
+ * the requested report name.
*/
- public File createNewReportOutput() throws Exception{
- File dir = new File(outputDirectory);
+ public File createNewReportOutput(File reportDirectory) throws Exception{
+ File dir = new File(reportDirectory, outputDirectory);
checkDirectory(dir);
- return File.createTempFile(outputPrefix,
- outputSuffix,
- dir);
+ return new File(dir, outputFileName);
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]