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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]