You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2003/12/02 01:05:00 UTC

cvs commit: xml-xerces/java/tests/xinclude Test.java

mrglavas    2003/12/01 16:05:00

  Modified:    java/tests/xinclude Test.java
  Log:
  Allow user to specify a target directory for the output.
  
  Revision  Changes    Path
  1.5       +44 -18    xml-xerces/java/tests/xinclude/Test.java
  
  Index: Test.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/tests/xinclude/Test.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Test.java	14 Nov 2003 23:25:02 -0000	1.4
  +++ Test.java	2 Dec 2003 00:05:00 -0000	1.5
  @@ -56,6 +56,7 @@
    */
   package xinclude;
   
  +import java.io.File;
   import java.io.FileOutputStream;
   import java.io.FileReader;
   import java.io.FileWriter;
  @@ -114,6 +115,8 @@
           true, false, true, false, false, false, true, true, false, true, // 30
           true, false, true, true, true, true, true, true, false, false, // 40
           true, };
  +    
  +    private String fOutputDirectory = "tests/xinclude/output";
   
       public static void main(String[] args) {
           Test tester = new Test();
  @@ -123,6 +126,17 @@
                   switch (args[i].charAt(1)) {
                       case 'g' :
                           tester.fGenerate = true;
  +                        if (args.length > i + 1
  +                            && args[i + 1].charAt(0) != '-') {
  +                            try {
  +                                Integer.parseInt(args[i + 1]);
  +                                // if it parses as an integer, we'll assume it's a test number
  +                                tester.setLogFile(System.err);
  +                            }
  +                            catch (NumberFormatException e) {
  +                                tester.fOutputDirectory = args[++i];
  +                            }
  +                        }
                           break;
                       case 'h' :
                           printUsage();
  @@ -141,7 +155,7 @@
                                   try {
                                       tester.setLogFile(
                                           new PrintStream(
  -                                            new FileOutputStream(args[i++])));
  +                                            new FileOutputStream(args[++i])));
                                   }
                                   catch (IOException ioe) {
                                       System.err.println(
  @@ -168,7 +182,14 @@
                   tester.addTest(i);
               }
           }
  -
  +        
  +        // Create output directory if it does not already exist.
  +        if (tester.fGenerate) {
  +            File outputDir = new File(tester.fOutputDirectory);
  +            if (!outputDir.exists()) {
  +                outputDir.mkdirs();
  +            }
  +        }
           tester.runTests();
       }
   
  @@ -242,23 +263,28 @@
   
       private boolean runTest(int testnum) {
           String testname = "tests/xinclude/tests/test";
  -        String outputFilename = "tests/xinclude/output/test";
  +        String outputFilename = fOutputDirectory + "/test";
  +        String expectedOutputFilename = "tests/xinclude/output/test";
           if (testnum < 10) {
               testname += "0" + testnum;
               outputFilename += "0" + testnum;
  +            expectedOutputFilename += "0" + testnum;
           }
           else {
               testname += testnum;
               outputFilename += testnum;
  +            expectedOutputFilename += testnum;
           }
           testname += XML_EXTENSION;
           // we output to an .xml file if we expect success,
           // or a .txt file if we expect failure
           if (TEST_RESULTS[testnum - 1]) {
               outputFilename += XML_EXTENSION;
  +            expectedOutputFilename += XML_EXTENSION;
           }
           else {
               outputFilename += TXT_EXTENSION;
  +            expectedOutputFilename += TXT_EXTENSION;
           }
   
           boolean passed = true;
  @@ -284,18 +310,20 @@
           return processTestResults(
               passed,
               TEST_RESULTS[testnum - 1],
  -            outputFilename);
  +            outputFilename,
  +            expectedOutputFilename);
       }
   
       private boolean processTestResults(
           boolean passed,
           boolean expectedPass,
  +        String outputFilename,
           String expectedOutputFile) {
           if (fGenerate) {
               try {
  -                fLogStream.println("Generated: " + expectedOutputFile);
  +                fLogStream.println("Generated: " + outputFilename);
                   PrintWriter outputFile =
  -                    new PrintWriter(new FileWriter(expectedOutputFile));
  +                    new PrintWriter(new FileWriter(outputFilename));
                   outputFile.print(fResults);
                   outputFile.close();
               }
  @@ -365,18 +393,16 @@
       private static void printUsage() {
           System.out.println("java xinclude.Test [OPTIONS] [TESTS]");
           System.out.println("OPTIONS:");
  -        System.out.println(
  -            "  -f [file] : Specifies a log file to print detailed error messages to.");
  -        System.out.println(
  -            "              Omitting the FILE parameter makes messages print to standard error.");
  -        System.out.println(
  -            "              If this option is absent, the messages will not be output.");
  -        System.out.println("  -g : Generates the expected output files.");
  -        System.out.println(
  -            "       Only use this option when the output is sure to be correct.");
  -        System.out.println(
  -            "       The previous expected output files will be overwritten.");
  -        System.out.println("  -h : Prints this help message and exits.");
  +        System.out.println("  -f [file] :      Specifies a log file to print detailed error messages to.");
  +        System.out.println("                   Omitting the FILE parameter makes messages print to ");
        System.out.println("                   standard error. If this option is absent, the messages");
  +        System.out.println("                   will not be output.");
  +        System.out.println("");
  +        System.out.println("  -g [directory] : Generates the expected output files in the ");
  +        System.out.println("                   given directory if specified, otherwise the files");
        System.out.println("                   are written to the expected output directory.");
  +        System.out.println("                   Only use this option without a target when the output ");
  +        System.out.println("                   is sure to be correct. The previous expected output files ");
        System.out.println("                   will be overwritten.");
  +        System.out.println("");
  +        System.out.println("  -h :             Prints this help message and exits.");
           System.out.println("TESTS:");
           System.out.println(
               "  A whitespace separated list of tests to run, specified by test number.");
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org