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