You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by bc...@apache.org on 2004/01/20 12:45:49 UTC
cvs commit: xml-fop/src/java/org/apache/fop/tools TestConverter.java
bckfnn 2004/01/20 03:45:49
Modified: src/java/org/apache/fop/tools TestConverter.java
Log:
Fix a NPE caused by avalonization of logging.
Support for 'results' attribute on 'test' element, used by NIST suite.
Explicit close the output file, otherwise the file has a length of 0
when the files are compared (on windows).
Added -d option to enable debug output.
PR: 25691
Revision Changes Path
1.8 +39 -9 xml-fop/src/java/org/apache/fop/tools/TestConverter.java
Index: TestConverter.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/tools/TestConverter.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- TestConverter.java 15 Sep 2003 18:29:15 -0000 1.7
+++ TestConverter.java 20 Jan 2004 11:45:48 -0000 1.8
@@ -52,6 +52,7 @@
import java.io.File;
import java.io.InputStream;
+import java.io.OutputStream;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
@@ -106,7 +107,6 @@
System.out.println("test suite file name required");
}
TestConverter tc = new TestConverter();
- tc.enableLogging(new ConsoleLogger(ConsoleLogger.LEVEL_ERROR));
String testFile = null;
for (int count = 0; count < args.length; count++) {
@@ -114,8 +114,10 @@
tc.setFailOnly(true);
} else if (args[count].equals("-pdf")) {
tc.setOutputPDF(true);
+ } else if (args[count].equals("-d")) {
+ tc.setDebug(true);
} else if (args[count].equals("-b")) {
- tc.setBaseDir(args[count + 1]);
+ tc.setBaseDir(args[++count]);
} else {
testFile = args[count];
}
@@ -128,6 +130,13 @@
}
/**
+ * Construct a new TestConverter
+ */
+ public TestConverter() {
+ enableLogging(new ConsoleLogger(ConsoleLogger.LEVEL_ERROR));
+ }
+
+ /**
* Controls whether to generate PDF or XML.
* @param pdf If True, PDF is generated, Area Tree XML otherwise.
*/
@@ -153,6 +162,16 @@
}
/**
+ * Controls whether to generate PDF or XML.
+ * @param pdf If True, PDF is generated, Area Tree XML otherwise.
+ */
+ public void setDebug(boolean debug) {
+ if (debug) {
+ enableLogging(new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG));
+ }
+ }
+
+ /**
* Run the Tests.
* This runs the tests specified in the xml file fname.
* The document is read as a dom and each testcase is covered.
@@ -264,6 +283,11 @@
getLogger().debug("converting xml:" + xml + " and xsl:"
+ xsl + " to area tree");
+ String res = xml;
+ Node resNode = test.getAttributes().getNamedItem("results");
+ if (resNode != null) {
+ res = resNode.getNodeValue();
+ }
try {
File xmlFile = new File(baseDir + "/" + xml);
String baseURL = null;
@@ -283,8 +307,8 @@
}
Driver driver = new Driver();
- setupLogger(driver, "fop");
FOUserAgent userAgent = new FOUserAgent();
+ setupLogger(userAgent, "fop");
userAgent.setBaseURL(baseURL);
driver.setUserAgent(userAgent);
if (outputPDF) {
@@ -299,15 +323,21 @@
driver.getRenderer().setOptions(rendererOptions);
driver.getRenderer().setProducer("Testsuite Converter");
- String outname = xmlFile.getName();
- if (outname.endsWith(".xml")) {
+ String outname = res;
+ if (outname.endsWith(".xml") || outname.endsWith(".pdf")) {
outname = outname.substring(0, outname.length() - 4);
}
- driver.setOutputStream(new java.io.BufferedOutputStream(
- new java.io.FileOutputStream(new File(destdir,
- outname + (outputPDF ? ".pdf" : ".at.xml")))));
- getLogger().debug("ddir:" + destdir + " on:" + outname + ".pdf");
+ File outputFile = new File(destdir,
+ outname + (outputPDF ? ".pdf" : ".at.xml"));
+
+ outputFile.getParentFile().mkdirs();
+ OutputStream outStream = new java.io.BufferedOutputStream(
+ new java.io.FileOutputStream(outputFile));
+ driver.setOutputStream(outStream);
+ getLogger().debug("ddir:" + destdir + " on:" +
+ outputFile.getName());
driver.render(inputHandler);
+ outStream.close();
// check difference
if (compare != null) {
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org