<?xml version="1.0" encoding="utf-8"?>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the  "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->
<project name="testxsl" default="jar" basedir=".">
<description>
build.xml:$Revision$
Ant 1.4.1+ build script for compiling and running Xalan-J tests.  

Note that this is a slightly unusual Ant build.xml file, since we 
support both compiling/packaging the Xalan-J tests themselves, as 
well as a number of targets designed to execute the tests once 
they're built.

In general the compilation targets (i.e. ones that compile the 
test classes themselves) do list their dependencies explicitly.
Targets that serve to execute tests do not normally list any 
dependencies - users must manually 'build jar' first.

@author shane_curcuru@lotus.com
@see build.bat

</description>

<!-- Note: A number of property names may seem a little odd.  I've 
     explicitly tried to reduce property name collisions between 
     this file and xml-xalan/java/build.xml to try to simplify 
     maintenance (or at least to separate the dev stuff from the 
     testing stuff).  Suggestions for improvements (along with 
     maintenance strategies) accepted. 
-->

    <!-- ================================================================== -->
    <!-- Initialize: define various properties about locations, jars, etc.  -->
    <!-- ================================================================== -->
    <!-- First, read in the user's own default properties, if they exist -->
    <property name="local.properties" value="my.test.properties"/>
    <property file="${local.properties}" />
    <!-- Then, read in the default checked-in properties -->
    <property file="test.properties" />

    <property name="smoketest.conf.excludes" value="${smoketest.conf.normal.excludes};${smoketest.conf.supplemental.excludes}"/>
    <property name="smoketest.xsltc.conf.excludes" value="${smoketest.xsltc.conf.normal.excludes};${smoketest.xsltc.conf.supplemental.excludes}"/>
    <!-- Also provide environment properties with a special prefix which 
         allows us to detect if JARDIR is set.
   -->
    <property environment="ENV" />

    <property name="year" value="2000-2004"/>
    <!-- Properties related to compiling the tests -->
    <property name="build.compiler" value="classic"/>
    <property name="compiler" value="${build.compiler}"/>
    <property name="debug" value="on"/>

    <!-- Specific locations related to building test code/docs -->
    <property name="test.src.dir" value="java/src"/>
    <property name="test.root" value="org/apache/qetest/"/>
    <property name="test.dir" value="${test.src.dir}/${test.root}"/>
    <property name="test.tools.dir" value="./tools"/>    
    <property name="test.build.dir" value="java/build"/>
    <property name="test.build.docs" value="${test.build.dir}/docs"/>
    <property name="test.build.apidocs" value="${test.build.docs}/apidocs"/>
    <property name="tests.bugzilla.dir" value="tests/bugzilla"/>
    <property name="tests.bugzilla.build.dir" value="tests/bugzilla/build"/>
    <property name="tests.extensions.dir" value="${extensions.inputDir}/java"/>
    <property name="tests.extensions.build.dir" value="${extensions.inputDir}/java/build"/>

    
    <!-- Names/locations of .jar files we build -->
    <property name="testxsl.jar.name" value="testxsl.jar"/>
    <property name="qetest.jar.name" value="qetest.jar"/>
    <property name="testxsl.jar" value="${test.build.dir}/${testxsl.jar.name}"/>
    <property name="qetest.jar" value="${test.build.dir}/${qetest.jar.name}"/>
	
    <!-- Specific locations related to Xalan code, which should be in a sister tree to us -->
    <property name="xalan.relpath" value="../java"/>
    <property name="xalan.lib.dir" value="${xalan.relpath}/lib"/>  
    <property name="xalan.tools.dir" value="${xalan.relpath}/tools"/>       
    <property name="xalan.build.dir" value="${xalan.relpath}/build"/> 
    <property name="xalan.xdocs.dir" value="${xalan.relpath}/xdocs"/>
    <property name="xalan.generator.styletargz" value="${xalan.xdocs.dir}/xml-site-style.tar.gz"/>

    <!-- Various names/locations of dependent jars -->
    <property name="xalan.jar" value="${xalan.build.dir}/xalan.jar"/>
    <property name="xalan.unbundled.jar" 
            value="${xalan.build.dir}/xalan-unbundled.jar"/>
    <property name="xsltc.jar" value="${xalan.build.dir}/xsltc.jar"/>
    <property name="ser.jar" value="${xalan.build.dir}/serializer.jar"/>
    <property name="xml-apis.jar" value="${xalan.lib.dir}/xml-apis.jar"/>
    <property name="parserjar" value="${xalan.lib.dir}/xercesImpl.jar"/>
    <property name="bcel.jar" value="${xalan.lib.dir}/BCEL.jar"/>

    <!-- JTidy is used by the XSLTC comparator -->
    <property name="jtidy.jar" value="${test.tools.dir}/Tidy.jar"/>
    
    <!-- The js.jar is for Javascript extensions tests; you must get this .jar yourself.  
         Feel free to reset the location. -->
    <property name="js.jar" value="../../js.jar"/>
    
    <!-- The Bean Scripting Framework is required for extensions written in languages 
         other than Java. Xalan Java will attempt to use the Jakarta BSF implementation
         by default (see the "extensions" target).  
         bsf.jar is no longer distributed with Xalan Java; you must get this .jar yourself.  
         For more information, see the Apache Jakarta project, http://jakarta.apache.org/
         Feel free to reset the location.  -->    
    <property name="bsf.jar" value="../../bsf.jar"/>

    <!-- Documentation-specific files and locations -->
    <property name="stylebook.jar" value="${xalan.tools.dir}/stylebook-1.0-b3_xalan-2.jar"/>
    <property name="doclet.jar" value="${xalan.tools.dir}/xalan2jdoc.jar"/>
    <property name="test.xdocs.dir" value="java/xdocs"/>
    <property name="test.generator.styletar" value="${test.xdocs.dir}/xml-site-style.tar"/>
    <property name="test.xdocs.book" value="${test.xdocs.dir}/sources/xalantest.xml"/>
    <property name="test.xdocs.style" value="${test.xdocs.dir}/style"/>
    <property name="doc.generator" value="org.apache.stylebook.StyleBook"/>
    <path id="test.docs.class.path">
        <pathelement location="${stylebook.jar}" />
        <pathelement location="${doclet.jar}" />
        <pathelement location="${jtidy.jar}" />
        <pathelement location="${xalan.jar}" />
        <pathelement location="${ser.jar}" />
        <pathelement location="${xml-apis.jar}" />
        <pathelement location="${parserjar}" />
        <pathelement path="${java.class.path}" />
    </path>

    <!-- Note: given that many of the tests interact with xerces and 
         xalan classes, and that Ant may use these classes (especially parser 
         ones) I've found it's best to fork the tests.
         Later I'd like to give the user the option to fork or not, since 
         while forking is slower and problematic on some systems, it is 
         also a safer testing environment (since the Ant classes and the 
         parser aren't already loaded, etc.)
    --> 
    <property name="fork-tests" value="yes"/>
    <!-- Property to have the Ant build fail when a test has an 
         error (not necessarily a fail).  Needs improvement.
    --> 
    <property name="fail-on-error" value="yes"/>

    <!-- ================================================================== -->
    <!-- Initialize: define classpaths for use within specific targets      -->
    <!-- ================================================================== -->
    <!-- Classpath used when compiling tests -->
    <path id="compiletest.class.path">
        <pathelement path="${java.class.path}" />
        <pathelement location="${xalan.jar}" />
        <pathelement location="${xsltc.jar}" />  <!-- add this so we can test the
                                                      separate jar distribution -->
        <pathelement location="${ser.jar}" />
        <pathelement location="${xml-apis.jar}" />
        <pathelement location="${parserjar}" />
        <pathelement location="${jtidy.jar}" />
    </path>

    <!-- Classpath used when running API tests -->
    <path id="api.class.path">
        <pathelement path="${java.class.path}" />
        <pathelement location="${xalan.jar}" />
        <pathelement location="${ser.jar}" />
        <pathelement location="${xml-apis.jar}" />
        <pathelement location="${parserjar}" />
        <pathelement location="${testxsl.jar}" />
        <pathelement location="${jtidy.jar}" />
    </path>

    <!-- Classpath used when running conf or conformance tests -->
    <path id="conf.class.path">
        <pathelement path="${java.class.path}" />
        <pathelement location="${xalan.jar}" />
        <pathelement location="${ser.jar}" />
        <pathelement location="${xml-apis.jar}" />
        <pathelement location="${parserjar}" />
        <pathelement location="${testxsl.jar}" />
        <pathelement location="${jtidy.jar}" />
    </path>

    <!-- Boot class path for JDK 1.4. Order is important to ensure
         GUMP builds work correctly, and people who don't use the
         build.bat/build.sh can still build on JDK 1.4 as normal. -->
    <path id="boot.class.path">
        <pathelement location="${xalan.jar}" />
        <pathelement location="${xsltc.jar}" />  <!-- add this so we can test the
                                                      separate jar distribution -->  
        <pathelement location="${ser.jar}" />                                                       
        <pathelement location="${java.class.path}" />
        <pathelement location="${xml-apis.jar}" />
        <pathelement location="${parserjar}" />
    </path>

    <!-- Gump build xml-xalan2-smoketest should use xalan.unbundled.jar -->
    <path id="boot.class.path.gump">
        <pathelement location="${sun.boot.class.path}" />
    </path>
    
    <!-- Classpath used when running perf or performance tests -->
    <path id="perf.class.path">
        <path refid="conf.class.path" />
    </path>

    <!-- Classpath used when running EXSLT tests -->
    <path id="exslt.class.path">
        <path refid="conf.class.path" />
    </path>

    <!-- Classpath used when running contrib or user-contributed tests -->
    <path id="contrib.class.path">
        <path refid="conf.class.path" />
    </path>

    <!-- Classpath used when running Bugzilla tests -->
    <path id="bugzilla.class.path">
        <path refid="api.class.path" />
        <pathelement location="${tests.bugzilla.build.dir}" />
    </path>

    <!-- Classpath used when running extensions tests -->
    <path id="extensions.class.path">
        <path refid="api.class.path" />
        <pathelement location="${bsf.jar}" />
        <pathelement location="${js.jar}" />
        <pathelement location="${tests.extensions.build.dir}" />
        <!-- Add more pathelements if we add more Java extensions dirs -->        
    </path>

    <!-- Classpath used when build/running xslt20 XPath 2.0 RWAPI tests -->
    <path id="rwapitest.class.path">
        <path refid="api.class.path" />
        <pathelement location="${xalan.build.dir}/xpathapi.jar" />
    </path>

    <!-- ================================================================== -->
    <!-- Initialize: Define an Ant task that executes Xalan test automation -->
    <!-- ================================================================== -->
    <taskdef name="xalantest" classname="org.apache.qetest.xsl.XSLTestAntTask">
        <classpath>
            <pathelement path="${java.class.path}" />
            <!-- Needed so this build file can run: this refers to 
                 a precompiled version of XSLTestAntTask.class that 
                 is checked in: normally at runtime, it should come 
                 from the testxsl.jar file instead of below.
           -->
            <pathelement location="${test.src.dir}" />
            <pathelement location="${test.build.dir}" />
            <pathelement location="${testxsl.jar}" />
        </classpath>
    </taskdef>

    <!-- ================================================================== -->
    <!-- Base target for running tests with specified properties.  Actual   -->
    <!-- work is handled by dependent tasks, at most one of which should be -->
    <!-- executed.                                                          -->
    <!-- ================================================================== -->
    <target name="run.xalantest" depends="run.xalantest.default,run.xalantest.transfact"/>

    <target name="run.xalantest.default" unless="sysprop.transfact" >       
        <antcall target="run.xalantest.default.gump"/>
        <antcall target="run.xalantest.default.normal"/>
    </target>
 
    <target name="run.xalantest.default.gump" if="gump" >
        <xalantest test="${testClass}"
            testType="${testType}"
            classpathref="${xalantest.classpathref}"
            bootclasspathref="boot.class.path.gump"
            fork="${fork-tests}"
            failonerror="${fail-on-error}" />
    </target>

    <target name="run.xalantest.default.normal" unless="gump" >
        <xalantest test="${testClass}"
            testType="${testType}"
            classpathref="${xalantest.classpathref}"
            bootclasspathref="boot.class.path"
            fork="${fork-tests}"
            failonerror="${fail-on-error}" />    
    </target>

    <target name="run.xalantest.transfact" if="sysprop.transfact" >
        <antcall target="run.xalantest.transfact.gump"/>
        <antcall target="run.xalantest.transfact.normal"/>
    </target>

    <target name="run.xalantest.transfact.gump" if="gump">
        <xalantest test="${testClass}"
            testType="${testType}"
            classpathref="${xalantest.classpathref}"
            bootclasspathref="boot.class.path.gump"
            fork="${fork-tests}"
            failonerror="${fail-on-error}" >
            <!-- Explicitly set TransformerFactory property to use -->
            <sysproperty key="javax.xml.transform.TransformerFactory"
                         value="${sysprop.transfact}" />
        </xalantest>
    </target>

    <target name="run.xalantest.transfact.normal" unless="gump">
        <xalantest test="${testClass}"
            testType="${testType}"
            classpathref="${xalantest.classpathref}"
            bootclasspathref="boot.class.path"
            fork="${fork-tests}"
            failonerror="${fail-on-error}" >
            <!-- Explicitly set TransformerFactory property to use -->
            <sysproperty key="javax.xml.transform.TransformerFactory"
                         value="${sysprop.transfact}" />
        </xalantest>    
    </target>
    
    <target name="run.xalan-extension-test" >
        <antcall target="run.xalan-extension-test.gump"/>
        <antcall target="run.xalan-extension-test.normal"/>
    </target>

    <target name="run.xalan-extension-test.gump" if="gump">
        <xalantest test="${testClass}"
            testType="${testType}"
            classpathref="${xalantest.classpathref}"
            bootclasspathref="boot.class.path.gump"
            fork="${fork-tests}"
            failonerror="${fail-on-error}" >
            <sysproperty key="org.apache.xalan.extensions.bsf.BSFManager"
                         value="${sysprop.BSFManager}" />
        </xalantest>
    </target>

    <target name="run.xalan-extension-test.normal" unless="gump">
        <xalantest test="${testClass}"
            testType="${testType}"
            classpathref="${xalantest.classpathref}"
            bootclasspathref="boot.class.path"
            fork="${fork-tests}"
            failonerror="${fail-on-error}" >
            <sysproperty key="org.apache.xalan.extensions.bsf.BSFManager"
                         value="${sysprop.BSFManager}" />
        </xalantest>    
    </target>

    <!-- ================================================================== -->
    <!-- Initialize: setup for compiling, doc building, running tests       -->
    <!-- ================================================================== -->
    <target name="init.test"
        description="Prepare timestamp, echo version for debugging">
        <echo message="Using parserjar ${parserjar} build.xml:$Revision$" />
        <tstamp />
    </target>

    <target name="init.build" depends="init.test"
        description="Prepare build output tree, copy prebuilts">
        <!-- Note this is case-sensitive, even on Windows! -->
        <!-- Note JARDIR support should probably be removed, since it's a maintenance hassle Jul-02 -sc -->
        <echo message="Your ==JARDIR== is set to ==${ENV.JARDIR}==" />
        <echo message="JVM Classpath is ${java.class.path}" />
        <mkdir dir="${test.build.dir}" />
        <mkdir dir="${test.build.dir}/${test.root}" />
        <!-- Also copy over precompiled external processor wrapper classes -->
        <copy todir="${test.build.dir}/${test.root}/xslwrapper" >
            <fileset dir="${test.dir}xslwrapper">
                <include name="**/*.class" />
                <include name="**/*.properties" />
            </fileset>
        </copy>
        <!-- Also copy over precompiled Ant class (why do we suddenly need this? -sc) -->
        <copy todir="${test.build.dir}/${test.root}/xsl" >
            <fileset dir="${test.dir}xsl">
                <include name="**/*.class" />
            </fileset>
        </copy>
    </target>
         
    <target name="init.docs" depends="init.build"
        description="Prepare output tree for documentation">
        <mkdir dir="${test.build.apidocs}" />
        <!-- Copy the Xalan-specific version of doc files and untargz them -->
        <gunzip src="${xalan.generator.styletargz}" dest="${test.generator.styletar}"/>
        <untar src="${test.generator.styletar}" dest="${test.xdocs.dir}"/>
        <delete file="${test.generator.styletar}"/>
    </target>


    <!-- ================================================================== -->
    <!-- Run tests: the normal StylesheetTestletDriver on the conf suite    -->
    <!-- ================================================================== -->
    <target name="conf" description="Run TestletDriver over the conf tree"
        depends="init.test">
        <!-- Set the default conformance test driver, user may override -->
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <echo message="Executing Xalan conf test: ${testClass}" />
        <property name="testType" value="conf." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref" value="conf.class.path" />
        </antcall>
        <property name="scan.outputDir" value="${conf.outputDir}"/>
        <antcall target="scan"/>
    </target>

    <target name="conf.dom" description="Run TestletDriver over conf with DOM excludes">
        <antcall target="conf">
            <param name="conf.excludes" value="${trax.dom.excludes}"/>
            <param name="conf.flavor" value="trax.dom"/>
        </antcall>
    </target>

    <target name="conf.one" description="Run a single conf test">
        <antcall target="conf">
            <param name="testClass" value="org.apache.qetest.xsl.StylesheetDriver" />
        </antcall>
    </target>

    <target name="conf.xsltc.dom" description="Run TestletDriver over conf with DOM excludes">
        <antcall target="conf.xsltc">
            <param name="conf.xsltc.excludes" value="${trax.dom.excludes}"/>
            <param name="conf.xsltc.flavor" value="trax.dom"/>
        </antcall>
    </target>

    <target name="conf.trace" description="Run TestletDriver over the conf tree">
        <property name="conf.trace" value="on"/>
        <antcall target="conf"/>
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: the normal StylesheetTestletDriver on the EXSLT suite    -->
    <!-- ================================================================== -->
    <target name="exslt" description="Run TestletDriver over the exslt tree"
        depends="init.test">
        <!-- Set the default conformance test driver, user may override -->
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <echo message="Executing Xalan exslt test: ${testClass}" />
        <property name="testType" value="exslt." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref" value="exslt.class.path" />
        </antcall>
        <property name="scan.outputDir" value="${exslt.outputDir}"/>
        <antcall target="scan"/>
    </target>

    <target name="exslt.dom" description="Run TestletDriver over exslt with DOM excludes">
        <antcall target="exslt">
            <param name="exslt.excludes" value="${trax.dom.excludes}"/>
            <param name="exslt.flavor" value="trax.dom"/>
        </antcall>
    </target>

    <target name="exslt.one" description="Run a single exslt test">
        <antcall target="exslt">
            <param name="testClass" value="org.apache.qetest.xsl.StylesheetDriver" />
        </antcall>
    </target>

    <target name="exslt.xsltc.dom" description="Run TestletDriver over exslt with DOM excludes">
        <antcall target="exslt.xsltc">
            <param name="exslt.xsltc.excludes" value="${trax.dom.excludes}"/>
            <param name="exslt.xsltc.flavor" value="trax.dom"/>
        </antcall>
    </target>

    <target name="exslt.trace" description="Run TestletDriver over the conf tree">
        <property name="exslt.trace" value="on"/>
        <antcall target="exslt"/>
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: the normal StylesheetTestletDriver on the accept suite  -->
    <!-- ================================================================== -->
    <target name="accept" description="Run TestletDriver over the accept tree">
        <echo message="Executing Xalan accept test." />
        <property name="qetest.summaryFile" value="Accept.xml" />
        <property name="testType" value="accept." />
        <property name="scan.outputDir" value="${accept.outputDir}"/>
        <antcall target="conf"/>
    </target>

    <target name="accept.xsltc" description="Run TestletDriver over the accept tree">
        <property name="testType" value="accept.xsltc." />
        <property name="qetest.summaryFile" value="Accept.xml" />
        <property name="scan.outputDir" value="${accept.xsltc.outputDir}"/>
	<property name="use-processor" value="${accept.xsltc.processor}"/>
        <antcall target="conf.xsltc" />
    </target>

    <target name="accept.trace" description="Run TestletDriver over the accept tree">
        <property name="accept.trace" value="on"/>
        <antcall target="accept"/>
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: the StylesheetErrorTestlet on the conferr suite         -->
    <!-- ================================================================== -->
    <target name="conferr" description="Run TestletDriver over the conferr negative test tree"
        depends="init.test">
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <echo message="Executing Xalan conf test: ${testClass}" />
        <property name="testType" value="conferr." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref" value="conf.class.path" />
        </antcall>
        <antcall target="scan">
            <param name="scan.outputDir" value="${conferr.outputDir}"/>
        </antcall>
    </target>


    <target name="conferr.xsltc" description="Run TestletDriver over the conferr negative test tree" depends="init.test">
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <echo message="Executing Xalan conferr test-xsltc: ${testClass}" />
        <property name="testType" value="conferr.xsltc." />

        <!-- Set indent-number to 0 to match Xalan's default indentation -->
        <property name="${testType}Processor.setAttribute.indent-number" value="0" />

        <antcall target="run.xalantest">
            <param name="xalantest.classpathref" value="conf.class.path" />
            <!-- Explicitly set TransformerFactory property to use xsltc -->
            <param name="sysprop.transfact"
                   value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl" />
        </antcall>
        <antcall target="scan">
            <param name="scan.outputDir" value="${conferr.xsltc.outputDir}" />
        </antcall>
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: the normal StylesheetTestletDriver on the perf suite    -->
    <!-- ================================================================== -->
    <target name="perf" description="Run TestletDriver over the perf tree"
        depends="init.test">
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <echo message="Executing Xalan perf test: ${testClass}" />
        <property name="testType" value="perf." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref" value="perf.class.path" />
        </antcall>
        <antcall target="scan">
            <param name="scan.outputDir" value="${perf.outputDir}"/>
        </antcall>
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: the normal StylesheetTestletDriver on the contrib suite -->
    <!-- ================================================================== -->
    <target name="contrib" description="Run TestletDriver over the contrib tree"
        depends="init.test">
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <echo message="Executing Xalan contrib test: ${testClass}" />
        <property name="testType" value="contrib." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref" value="contrib.class.path" />
        </antcall>
        <antcall target="scan">
            <param name="scan.outputDir" value="${contrib.outputDir}"/>
        </antcall>
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: the ThreadedTestletDriver on threads.filelist           -->
    <!-- ================================================================== -->
    <target name="threads" description="Run ThreadedTestletDriver on threads.filelist"
        depends="init.test">
        <!-- Set special threaded test driver and filelist, user may override -->
        <property name="testClass" value="org.apache.qetest.xsl.ThreadedTestletDriver" />
        <echo message="Executing Xalan threads test: ${testClass}" />
        <property name="testType" value="threads." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref" value="api.class.path" />
        </antcall>
    </target>


    <!-- ================================================================== -->
    <!-- Run tests: a specific named API test                               -->
    <!-- ================================================================== -->
    <target name="api" description="Run a specific API test"
        depends="init.test">
        <!-- Note no default is set; also testClass is not prefixed! -->
        <echo message="Executing Xalan api test: ${testClass}" />
        <property name="testType" value="api." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref" value="api.class.path" />
        </antcall>
        <antcall target="scan">
            <param name="scan.outputDir" value="${api.outputDir}"/>
        </antcall>
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: Run all available API tests                             -->
    <!-- ================================================================== -->
    <target name="harness" description="Run all listed API harness.tests">
        <antcall target="api">
            <param name="testClass" value="org.apache.qetest.xsl.XSLTestHarness"/>
            <param name="qetest.tests" value="${harness.tests}"/>
            <!-- Below line is in case we run ThreadedTestletDriver -->
            <param name="qetest.testlet" value="${harness.threads.testlet}"/>
            <param name="qetest.fileList" value="${harness.threads.fileList}"/>
        </antcall>
        <antcall target="scan">
            <param name="scan.outputDir" value="${api.outputDir}"/>
        </antcall>
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: all Bugzilla testlets to regress bugs                   -->
    <!-- ================================================================== -->
    <target name="bugzilla" description="Run all Bugzilla Testlets and tests to regress bugs"
        depends="init.test">
        <echo message="Executing Xalan Bugzilla Testlets and tests to regress bugs" />
        <property name="testClass" value="org.apache.qetest.xsl.BugzillaTestletDriver" />
        <property name="testType" value="bugzilla." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref" value="bugzilla.class.path" />
        </antcall>
        <echo message="If you got ClassNotFound, did you 'build bugzilla.classes' first?" />
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: various extensions tests                                -->
    <!-- ================================================================== -->
    <target name="extensions" 
            description="Run extensions tests.  
                         Non-Java extensions will use the Jakarta BSF implementation."
            depends="init.test">
        <echo message="Executing Xalan extensions tests. Non-Java extensions will use the Jakarta BSF implementation." />
        <!-- Set the default conformance test driver, user may 
             override; note test.properties:extensions.testlet= 
        -->
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <property name="testType" value="extensions." />
        <antcall target="run.xalan-extension-test">
            <param name="xalantest.classpathref" value="extensions.class.path" />
            <param name="sysprop.BSFManager" value="org.apache.bsf.BSFManager" />
        </antcall>
        <property name="scan.outputDir" value="${extensions.outputDir}"/>
        <antcall target="scan"/>
        <echo message="If you got ClassNotFound, did you 'build extensions.classes' first?" />
    </target>

    <target name="extensions-with-ibm-bsf" 
            description="Run extensions tests. 
                         Non-Java extensions will use the IBM BSF implementation."
            depends="init.test">
        <echo message="Executing Xalan extensions tests.  Non-Java extensions will use the IBM BSF implementation." />
        <!-- Set the default conformance test driver, user may 
             override; note test.properties:extensions.testlet= 
        -->
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <property name="testType" value="extensions.with-ibm-bsf." />
        <property name="scan.outputDir" value="${extensions.with-ibm-bsf.outputDir}"/>

        <antcall target="run.xalan-extension-test">
            <param name="extensions.outputDir" value="${extensions.with-ibm-bsf.outputDir}" />
            <param name="xalantest.classpathref" value="extensions.class.path" />
            <param name="sysprop.BSFManager" value="com.ibm.bsf.BSFManager" />
        </antcall>
        <antcall target="scan"/>
        <echo message="If you got ClassNotFound, did you 'build extensions.classes' first?" />
    </target>

    <target name="rwapi" description="Run TestletDriver with xslt20 XPath2.0 RWAPI tests"
        depends="init.test,compile.rwapi,jar">
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <echo message="Executing Xalan conf test: ${testClass}" />
        <property name="testType" value="conf." />
        <property name="conf.testlet" value="org.apache.qetest.rwapi.XPathASTTestlet" />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref" value="rwapitest.class.path" />
        </antcall>
        <property name="scan.outputDir" value="${conf.outputDir}"/>
        <antcall target="scan"/>
    </target>
    <!-- ================================================================== -->
    <!-- Run tests: Run the Xalan-J 2.x Minitest                            -->
    <!-- ================================================================== -->
    <!-- This target doesn't actually do anything itself - it merely 
         depends on other targets, in order, to first run the whole 
         Minitest, then to log to Ant whether the test didn't pass 
         (i.e. failed, incomplete, error or ambiguous) or passed.
    -->
    <target name="minitest" 
            description="Run the Xalan-J 2.x Minitest"
            depends="minitest-execute,minitest-notpass,minitest-pass">
    </target>

    <target name="minitest.gump" 
            description="Compile and Run the Xalan-J 2.x Minitest"
            depends="jar">
       <antcall target="minitest">
         <param name="gump" value="boot.class.path.gump"/>
       </antcall>            
    </target>
    <target name="minitest-execute">
        <echo message="About to execute the Minitest..." />
        <antcall target="api">
            <param name="testClass" value="org.apache.qetest.trax.Minitest"/>
            <param name="testType" value="minitest."/>
        </antcall>
        <available file="${minitest.passFile}" property="minitest-passed" />
    </target>
    <target name="minitest-notpass" unless="minitest-passed">
        <echo message=" [minitest] ERROR! The Minitest failed!" />
        <echo message=" [minitest] See details in ${minitest.logFile}, output is in ${minitest.outputDir}" />
        <echo message=" [minitest] Please fix any Minitest problems before checking in!" />
        <fail message="Please fix any Minitest problems before checking in!" />
    </target>
    <target name="minitest-pass" if="minitest-passed">
        <echo message=" [minitest] CONGRATULATIONS! The Minitest passed!" />
        <echo message=" [minitest] See details in ${minitest.logFile}" />
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: Run the Xalan-J 2.x Smoketest, including several tests  -->
    <!-- Note: this target is frequently called from outside of this file!  -->
    <!-- ================================================================== -->
    <target name="smoketest" 
            description="Run the Xalan-J 2.x Smoketest"
            depends="minitest-execute,extensions.classes,smoketest-execute,minitest-notpass,minitest-pass,smoketest-notpass,smoketest-pass">
    </target>
    <target name="smoketest.xsltc" 
            description="Run the Xalan-J 2.x XSLTC Smoketest"
            depends="smoketest.xsltc-execute,smoketest.xsltc-notpass,smoketest.xsltc-pass">
    </target>
    <target name="smoketest.dev" 
            description="Run the Xalan-J 2.x Smoketest with dependencies"
            depends="jar,minitest-execute,extensions.classes,smoketest-execute,minitest-notpass,minitest-pass,smoketest-notpass,smoketest-pass">
        <!-- This compiles the minimum to run the smoketests, runs them, 
             and creates distros just of the results and existing tree, 
             without actually running the docs - this is to ensure that 
             doc build errors in the tests won't affect GUMP runs.
        -->
    </target>
    <target name="smoketest.gump" 
            description="Run the Xalan-J 2.x Smoketest in automated builds with dependencies">
       <antcall target="minitest.gump">
         <param name="gump" value="boot.class.path.gump"/>
       </antcall>    
       <antcall target="extensions.classes"/>      
       <antcall target="smoketest-execute.gump">
         <param name="gump" value="boot.class.path.gump"/>
       </antcall>  
       
        <!-- This compiles the minimum to run the smoketests, runs them, 
             and creates distros just of the results and existing tree, 
             without actually running the docs - this is to ensure that 
             doc build errors in the tests won't affect GUMP runs.
        -->
    </target>
    
    <!-- This target smoketest-execute.gump is a subtarget which is called
         from smoketest.gump. 
    -->
    <target name="smoketest-execute.gump" 
            description="Run the Xalan-J 2.x Smoketest for Gump build "
            depends="smoketest-execute,smoketest-results-dist,dist-nodeps,
            smoketest-notpass,smoketest-pass">
    </target>    

    <target name="smoketest-execute">
        <echo message="About to execute Conformance tests..." />
        <antcall target="conf">
            <param name="testType" value="smoketest.conf."/>
        </antcall>

        <echo message="About to execute Accept tests..." />
        <antcall target="accept">
            <param name="testType" value="smoketest.accept."/>
        </antcall>

        <echo message="About to execute other API tests..." />
        <antcall target="api">
            <param name="testClass" value="org.apache.qetest.xsl.XSLTestHarness"/>
            <param name="testType" value="smoketest.api."/>
        </antcall>

        <echo message="About to execute XalanJ2 extensions tests..." />
        <antcall target="extensions">
            <param name="testType" value="smoketest.extensions."/>
        </antcall>

        <condition property="smoketest-passed">
            <and>
                <available file="${smoketest.conf.passFile}" />
                <available file="${smoketest.accept.passFile}" />
                <available file="${smoketest.api.passFile}" />
                <available file="${smoketest.extensions.passFile}" />
            </and>
        </condition>
        <antcall target="scan">
            <param name="scan.outputDir" value="smoketest"/>
        </antcall>
    </target>

    <target name="smoketest.xsltc-execute">
        <echo message="About to execute Conformance tests..." />
        <antcall target="conf.xsltc">
            <param name="testType" value="smoketest.xsltc.conf."/>
        </antcall>

        <echo message="About to execute Accept tests..." />
        <antcall target="accept.xsltc">
            <param name="testType" value="smoketest.xsltc.accept."/>
        </antcall>

        <condition property="smoketest.xsltc-passed">
            <and>
                <available file="${smoketest.xsltc.conf.passFile}" />
                <available file="${smoketest.xsltc.accept.passFile}" />
            </and>
        </condition>
        <antcall target="scan">
            <param name="scan.outputDir" value="smoketest.xsltc"/>
        </antcall>
    </target>

    <target name="smoketest-notpass" unless="smoketest-passed">
        <echo message=" [minitest] ERROR! The Smoketest failed!" />
        <echo message=" [minitest] See details in ${smoketest.conf.logFile}, output is in ${smoketest.conf.outputDir}" />
        <echo message=" [minitest] See details in ${smoketest.api.logFile}, output is in ${smoketest.api.outputDir}" />
        <echo message=" [minitest] See details in ${smoketest.extensions.logFile}, output is in ${smoketest.extensions.outputDir}" />
        <echo message=" [minitest] Please fix any smoketest problems before checking in!" />
        <fail message="Please fix any smoketest problems before checking in!" />
    </target>
    <target name="smoketest-pass" if="smoketest-passed">
        <echo message=" [minitest] CONGRATULATIONS! The Smoketest passed!" />
        <echo message=" [minitest] Details are in ${smoketest.conf.logFile}, ${smoketest.api.logFile}, ${smoketest.extensions.logFile}" />
    </target>

    <target name="smoketest.xsltc-notpass" unless="smoketest.xsltc-passed">
        <echo message=" [minitest] ERROR! The Smoketest failed!" />
        <echo message=" [minitest] See details in ${smoketest.xsltc.conf.logFile}, output is in ${smoketest.xsltc.conf.outputDir}" />
        <echo message=" [minitest] See details in ${smoketest.xsltc.accept.logFile}, output is in ${smoketest.xsltc.accept.outputDir}" />
        <echo message=" [minitest] Please fix any smoketest problems before checking in!" />
        <fail message="Please fix any smoketest problems before checking in!" />
    </target>
    <target name="smoketest.xsltc-pass" if="smoketest.xsltc-passed">
        <echo message=" [minitest] CONGRATULATIONS! The Smoketest passed!" />
        <echo message=" [minitest] Details are in ${smoketest.xsltc.conf.logFile}, ${smoketest.xsltc.accept.logFile}" />
    </target>

    <target name="smoketest-results-dist" depends="init.test">
        <property name="tarzip-backref" value="../.."/>
        <property name="tarzip-fwdref" value="xml-xalan/test"/>
        <!-- tar.gz the automation and batch files, etc. -->
        <!-- # smoketest parent output location: used in test.properties/build.xml -->
        <tar tarfile="${test.build.dir}/xalan-smoketest-${DSTAMP}.tar">
          <tarfileset dir="${tarzip-backref}">
            <include name="${tarzip-fwdref}/${smoketest.outputDir}/"/>
          </tarfileset>
        </tar>
        <gzip src="${test.build.dir}/xalan-smoketest-${DSTAMP}.tar" 
              zipfile="${test.build.dir}/xalan-smoketest-${DSTAMP}.tar.gz"/>
        <delete file="${test.build.dir}/xalan-smoketest-${DSTAMP}.tar"/>
              
        <zip zipfile="${test.build.dir}/xalan-smoketest-${DSTAMP}.zip" >
          <zipfileset dir="${tarzip-backref}">
            <include name="${tarzip-fwdref}/${smoketest.outputDir}/"/>
          </zipfileset>
        </zip>
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: A whole bunch of tests - used before posting builds, etc-->
    <!-- ================================================================== -->
    <target name="alltest" 
            description="Run nearly *all* available Xalan-J 2.x tests with defaults"
            depends="all,alltest.other,alltest.conf,alltest.accept,alltest.contrib">
        <!-- Ensure that one last scan gets run of the whole output set
             (Note that when we call sub-targets, some of our subdirs 
             may have had sub-scans done as well) -->
        <antcall target="scan">
            <param name="scan.outputDir" value="results-alltest"/>
        </antcall>

    </target>
    <target name="alltest.features" 
            description="Re-Run nearly *all* available Xalan-J 2.x tests with setAttribute features set"
            depends="all,alltest.other">
        <property name="alltest.resultDir" value="results-alltest" />
        <antcall target="alltest.conf">
            <param name="alltest.resultDir" value="${alltest.resultDir}/inctrue"/>
            <param name="conf.Processor.setAttribute.http://xml.apache.org/xalan/features/incremental" value="true"/>
        </antcall>
        <antcall target="alltest.conf">
            <param name="alltest.resultDir" value="${alltest.resultDir}/optfalse"/>
            <param name="conf.Processor.setAttribute.http://xml.apache.org/xalan/features/optimize" value="false"/>
        </antcall>
        <antcall target="alltest.contrib">
            <param name="alltest.resultDir" value="${alltest.resultDir}/inctrue"/>
            <param name="conf.Processor.setAttribute.http://xml.apache.org/xalan/features/incremental" value="true"/>
        </antcall>
        <antcall target="alltest.contrib">
            <param name="alltest.resultDir" value="${alltest.resultDir}/optfalse"/>
            <param name="conf.Processor.setAttribute.http://xml.apache.org/xalan/features/optimize" value="false"/>
        </antcall>
        <antcall target="scan">
            <param name="scan.outputDir" value="${alltest.resultDir}"/>
        </antcall>
    </target>

    <target name="alltest.other">
        <property name="alltest.resultDir" value="results-alltest" />
        <echo message="About to execute various API, extensions, bugzilla tests, results under ${alltest.resultDir}/..." />
        <!-- Run all individual API tests through the harness -->
        <antcall target="harness">
            <param name="api.outputDir" value="${alltest.resultDir}/harness"/>
            <param name="api.logFile" value="${alltest.resultDir}/harness/results.xml"/>
        </antcall>
        <!-- Run other misc tests -->
        <antcall target="extensions">
            <param name="extensions.outputDir" value="${alltest.resultDir}/extensions"/>
            <param name="extensions.logFile" value="${alltest.resultDir}/extensions/results.xml"/>
        </antcall>
        <antcall target="bugzilla">
            <param name="bugzilla.outputDir" value="${alltest.resultDir}/bugzilla"/>
            <param name="bugzilla.logFile" value="${alltest.resultDir}/bugzilla/results.xml"/>
        </antcall>
        <!-- Run the threading tests once -->
        <antcall target="threads">
            <param name="threads.outputDir" value="${alltest.resultDir}/threads"/>
            <param name="threads.logFile" value="${alltest.resultDir}/threads/results.xml"/>
        </antcall>
        <!-- Run the perf tests just with streams, which gives best perf data -->
        <antcall target="perf">
            <param name="perf.flavor" value="trax.stream"/>
			<param name="perf.fileList" value="perf.filelist"/>
            <param name="perf.outputDir" value="${alltest.resultDir}/perf"/>
            <param name="perf.logFile" value="${alltest.resultDir}/perf/results.xml"/>
        </antcall>
        <antcall target="scan">
            <param name="scan.outputDir" value="${alltest.resultDir}"/>
        </antcall>
    </target>

    <target name="alltest.contrib">
        <property name="alltest.resultDir" value="results-alltest" />
        <property name="alltest.contrib.resultDir" value="${alltest.resultDir}/contrib" />
        <echo message="About to execute contrib tests with all flavors, results into ${alltest.contrib.resultDir}/..." />

        <antcall target="contrib">
            <param name="contrib.flavor" value="trax.systemId"/>
            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/systemId"/>
            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/systemId/results.xml"/>
        </antcall>
        <antcall target="contrib">
            <param name="contrib.flavor" value="trax.file"/>
            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/file"/>
            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/file/results.xml"/>
        </antcall>
        <antcall target="contrib">
            <param name="contrib.flavor" value="trax.dom"/>
            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/dom"/>
            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/dom/results.xml"/>
        </antcall>
        <antcall target="contrib">
            <param name="contrib.flavor" value="trax.sax"/>
            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/sax"/>
            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/sax/results.xml"/>
        </antcall>
        <antcall target="contrib">
            <param name="contrib.flavor" value="trax.localPath"/>
            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/localPath"/>
            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/localPath/results.xml"/>
        </antcall>
        <antcall target="contrib">
            <param name="contrib.flavor" value="trax.stream"/>
            <param name="contrib.outputDir" value="${alltest.contrib.resultDir}/stream"/>
            <param name="contrib.logFile" value="${alltest.contrib.resultDir}/stream/results.xml"/>
        </antcall>
    </target>

    <target name="alltest.conf">
        <property name="alltest.resultDir" value="results-alltest" />
        <property name="alltest.conf.resultDir" value="${alltest.resultDir}/conf" />
        <echo message="About to execute conf tests with all flavors, results into ${alltest.conf.resultDir}/..." />
        <!-- Run full conf test with each major available flavor into 
             specific output directories; note any user options will 
             override for all test calls.
             Also exclude the currently failing tests in the 
             smoketest if use.excludes is set.
        -->
        <condition property="conf.excludes" value="${smoketest.conf.excludes}">
            <equals arg1="${use.excludes}" arg2="true" />
        </condition>
        <antcall target="conf">
            <param name="conf.flavor" value="trax.systemId"/>
            <param name="conf.excludes" value="${conf.excludes}"/>
            <param name="conf.outputDir" value="${alltest.conf.resultDir}/systemId"/>
            <param name="conf.logFile" value="${alltest.conf.resultDir}/systemId/results.xml"/>
        </antcall>
        <antcall target="conf">
            <param name="conf.flavor" value="trax.file"/>
            <param name="conf.excludes" value="${conf.excludes}"/>
            <param name="conf.outputDir" value="${alltest.conf.resultDir}/file"/>
            <param name="conf.logFile" value="${alltest.conf.resultDir}/file/results.xml"/>
        </antcall>
        <antcall target="conf">
            <param name="conf.flavor" value="trax.dom"/>
            <!-- Note DOM always has additional exclusions in conf tests-->
            <param name="conf.excludes" value="${trax.dom.excludes};${conf.excludes}"/>
            <param name="conf.outputDir" value="${alltest.conf.resultDir}/dom"/>
            <param name="conf.logFile" value="${alltest.conf.resultDir}/dom/results.xml"/>
        </antcall>
        <antcall target="conf">
            <param name="conf.flavor" value="trax.sax"/>
            <param name="conf.excludes" value="${conf.excludes}"/>
            <param name="conf.outputDir" value="${alltest.conf.resultDir}/sax"/>
            <param name="conf.logFile" value="${alltest.conf.resultDir}/sax/results.xml"/>
        </antcall>
        <antcall target="conf">
            <param name="conf.flavor" value="trax.localPath"/>
            <param name="conf.excludes" value="${conf.excludes}"/>
            <param name="conf.outputDir" value="${alltest.conf.resultDir}/localPath"/>
            <param name="conf.logFile" value="${alltest.conf.resultDir}/localPath/results.xml"/>
        </antcall>
        <antcall target="conf">
            <param name="conf.flavor" value="trax.stream"/>
            <param name="conf.excludes" value="${conf.excludes}"/>
            <param name="conf.outputDir" value="${alltest.conf.resultDir}/stream"/>
            <param name="conf.logFile" value="${alltest.conf.resultDir}/stream/results.xml"/>
        </antcall>
        <!-- we should really run conferr with each flavor -->
        <antcall target="conferr">
            <param name="conferr.flavor" value="trax.systemId"/>
            <param name="conferr.outputDir" value="${alltest.conf.resultDir}/conferr"/>
            <param name="conferr.logFile" value="${alltest.conf.resultDir}/conferr/results.xml"/>
            <!-- Note that conferr doesn't currently use gold files, 
                 but we need to set the goldDir anyway for convenience
            --> 
            <param name="conferr.goldDir" value="${alltest.conf.resultDir}/conferr-gold"/>
        </antcall>
        <!-- To be updated: also use at least one run of ErrorHandlerTestlet -->
        <antcall target="conf">
            <param name="conf.testlet" value="org.apache.qetest.xsl.ErrorHandlerTestlet"/>
            <param name="conf.flavor" value="trax.stream"/>
            <param name="conf.excludes" value="${conf.excludes}"/>
            <param name="conf.outputDir" value="${alltest.conf.resultDir}/streamEH"/>
            <param name="conf.logFile" value="${alltest.conf.resultDir}/streamEH/results.xml"/>
        </antcall>
    </target>

    <target name="alltest.accept">
        <property name="alltest.resultDir" value="results-alltest" />
        <property name="alltest.accept.resultDir" value="${alltest.resultDir}/accept" />
        <echo message="About to execute accept tests with all flavors, results into ${alltest.accept.resultDir}/..." />
        <!-- Run full accept test with each major available flavor into 
             specific output directories; note any user options will 
             override for all test calls.
             Also exclude the currently failing tests in the 
             smoketest if use.excludes is set.
        -->
        <condition property="accept.excludes" value="${smoketest.accept.excludes}">
            <equals arg1="${use.excludes}" arg2="true" />
        </condition>
        <antcall target="accept">
            <param name="accept.flavor" value="trax.systemId"/>
            <param name="accept.excludes" value="${accept.excludes}"/>
            <param name="accept.outputDir" value="${alltest.accept.resultDir}/systemId"/>
            <param name="accept.logFile" value="${alltest.accept.resultDir}/systemId/results.xml"/>
        </antcall>
        <antcall target="accept">
            <param name="accept.flavor" value="trax.file"/>
            <param name="accept.excludes" value="${accept.excludes}"/>
            <param name="accept.outputDir" value="${alltest.accept.resultDir}/file"/>
            <param name="accept.logFile" value="${alltest.accept.resultDir}/file/results.xml"/>
        </antcall>
        <antcall target="accept">
            <param name="accept.flavor" value="trax.dom"/>
            <!-- Note DOM always has additional exclusions in accept tests-->
            <param name="accept.excludes" value="${trax.dom.excludes};${accept.excludes}"/>
            <param name="accept.outputDir" value="${alltest.accept.resultDir}/dom"/>
            <param name="accept.logFile" value="${alltest.accept.resultDir}/dom/results.xml"/>
        </antcall>
        <antcall target="accept">
            <param name="accept.flavor" value="trax.sax"/>
            <param name="accept.excludes" value="${accept.excludes}"/>
            <param name="accept.outputDir" value="${alltest.accept.resultDir}/sax"/>
            <param name="accept.logFile" value="${alltest.accept.resultDir}/sax/results.xml"/>
        </antcall>
        <antcall target="accept">
            <param name="accept.flavor" value="trax.localPath"/>
            <param name="accept.excludes" value="${accept.excludes}"/>
            <param name="accept.outputDir" value="${alltest.accept.resultDir}/localPath"/>
            <param name="accept.logFile" value="${alltest.accept.resultDir}/localPath/results.xml"/>
        </antcall>
        <antcall target="accept">
            <param name="accept.flavor" value="trax.stream"/>
            <param name="accept.excludes" value="${accept.excludes}"/>
            <param name="accept.outputDir" value="${alltest.accept.resultDir}/stream"/>
            <param name="accept.logFile" value="${alltest.accept.resultDir}/stream/results.xml"/>
        </antcall>
        <!-- we should really run accept with each flavor -->
    </target>

    <target name="alltest.conf.xsltc">
        <property name="alltest.xsltc.resultDir" value="results-alltest.xsltc" />
        <property name="alltest.conf.xsltc.resultDir" value="${alltest.xsltc.resultDir}/conf" />
        <echo message="About to execute xsltc.conf tests with all flavors, results into ${alltest.conf.xsltc.resultDir}/..." />
        <!-- Run full conf test with each major available flavor into 
             specific output directories; note any user options will 
             override for all test calls.
             Also exclude the currently failing tests in the 
             smoketest if use.excludes is set.
        -->
        <condition property="conf.xsltc.excludes" value="${smoketest.conf.xsltc.excludes}">
            <equals arg1="${use.excludes}" arg2="true" />
        </condition>
        <antcall target="conf.xsltc">
            <param name="conf.xsltc.flavor" value="trax.systemId"/>
            <param name="conf.xsltc.excludes" value="${conf.xsltc.excludes}"/>
            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/systemId"/>
            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/systemId/results.xml"/>
        </antcall>
        <antcall target="conf.xsltc">
            <param name="conf.xsltc.flavor" value="trax.file"/>
            <param name="conf.xsltc.excludes" value="${conf.xsltc.excludes}"/>
            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/file"/>
            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/file/results.xml"/>
        </antcall>
        <antcall target="conf.xsltc">
            <param name="conf.xsltc.flavor" value="trax.dom"/>
            <!-- Note DOM always has additional exclusions in conf tests-->
            <param name="conf.xsltc.excludes" value="${trax.dom.excludes};${conf.xsltc.excludes}"/>
            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/dom"/>
            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/dom/results.xml"/>
        </antcall>
        <antcall target="conf.xsltc">
            <param name="conf.xsltc.flavor" value="trax.sax"/>
            <param name="conf.xsltc.excludes" value="${conf.xsltc.excludes}"/>
            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/sax"/>
            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/sax/results.xml"/>
        </antcall>
        <antcall target="conf.xsltc">
            <param name="conf.xsltc.flavor" value="trax.localPath"/>
            <param name="conf.xsltc.excludes" value="${conf.xsltc.excludes}"/>
            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/localPath"/>
            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/localPath/results.xml"/>
        </antcall>
        <antcall target="conf.xsltc">
            <param name="conf.xsltc.flavor" value="trax.stream"/>
            <param name="conf.xsltc.excludes" value="${conf.xsltc.excludes}"/>
            <param name="conf.xsltc.outputDir" value="${alltest.conf.xsltc.resultDir}/stream"/>
            <param name="conf.xsltc.logFile" value="${alltest.conf.xsltc.resultDir}/stream/results.xml"/>
        </antcall>
    </target>

    <target name="alltest.accept.xsltc">
        <property name="alltest.xsltc.resultDir" value="results-alltest.xsltc" />
        <property name="alltest.accept.xsltc.resultDir" value="${alltest.xsltc.resultDir}/accept" />
        <echo message="About to execute xsltc.accept tests with all flavors, results into ${alltest.accept.xsltc.resultDir}/..." />
        <!-- Run full accept test with each major available flavor into 
             specific output directories; note any user options will 
             override for all test calls.
             Also exclude the currently failing tests in the 
             smoketest if use.excludes is set.
        -->
        <condition property="accept.xsltc.excludes" value="${smoketest.accept.xsltc.excludes}">
            <equals arg1="${use.excludes}" arg2="true" />
        </condition>
        <antcall target="accept.xsltc">
            <param name="accept.xsltc.flavor" value="trax.systemId"/>
            <param name="accept.xsltc.excludes" value="${accept.xsltc.excludes}"/>
            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/systemId"/>
            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/systemId/results.xml"/>
        </antcall>
        <antcall target="accept.xsltc">
            <param name="accept.xsltc.flavor" value="trax.file"/>
            <param name="accept.xsltc.excludes" value="${accept.xsltc.excludes}"/>
            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/file"/>
            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/file/results.xml"/>
        </antcall>
        <antcall target="accept.xsltc">
            <param name="accept.xsltc.flavor" value="trax.dom"/>
            <!-- Note DOM always has additional exclusions in accept tests-->
            <param name="accept.xsltc.excludes" value="${trax.dom.excludes};${accept.xsltc.excludes}"/>
            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/dom"/>
            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/dom/results.xml"/>
        </antcall>
        <antcall target="accept.xsltc">
            <param name="accept.xsltc.flavor" value="trax.sax"/>
            <param name="accept.xsltc.excludes" value="${accept.xsltc.excludes}"/>
            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/sax"/>
            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/sax/results.xml"/>
        </antcall>
        <antcall target="accept.xsltc">
            <param name="accept.xsltc.flavor" value="trax.localPath"/>
            <param name="accept.xsltc.excludes" value="${accept.xsltc.excludes}"/>
            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/localPath"/>
            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/localPath/results.xml"/>
        </antcall>
        <antcall target="accept.xsltc">
            <param name="accept.xsltc.flavor" value="trax.stream"/>
            <param name="accept.xsltc.excludes" value="${accept.xsltc.excludes}"/>
            <param name="accept.xsltc.outputDir" value="${alltest.accept.xsltc.resultDir}/stream"/>
            <param name="accept.xsltc.logFile" value="${alltest.accept.xsltc.resultDir}/stream/results.xml"/>
        </antcall>
    </target>

    <target name="alltest.conf.trace">
        <property name="conf.trace" value="on"/>
        <antcall target="alltest.conf"/>
    </target>

    <target name="alltest.accept.trace">
        <property name="accept.trace" value="on"/>
        <antcall target="alltest.accept"/>
    </target>

    <target name="test"
        depends="alltest"
        description="Alias for alltest">
    </target>

    <target name="check"
        depends="alltest"
        description="Alias for alltest">
    </target>

    <target name="scan"
        description="Run a simple ResultScanner on a tree of test results">
        <property name="scan.outputDir" value="results-alltest" />
        <property name="scan.logFile" value="${scan.outputDir}/ResultReport" />
        <java classname="org.apache.qetest.xsl.ResultScanner" 
              classpathref="conf.class.path" 
              fork="yes" >
              <arg line="${scan.outputDir} ${scan.logFile}"/>
        </java>	 
    </target>
    <!-- ================================================================== -->
    <!-- Build Tests: Compile/jar targets for each 'layer' of testing code  -->
    <!-- ================================================================== -->
    <target name="compile.qetest" depends="init.build"
        description="Compile base qetest files; no Xalan dependencies">
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}*.java" 
               debug="${debug}" />
    </target>


    <target name="jar.qetest" depends="compile.qetest"
        description="Jar base qetest files; no Xalan dependencies">
        <jar jarfile="${qetest.jar}" 
             basedir="${test.build.dir}" 
             includes="${test.root}*.java,${test.root}*.properties" />
    </target>


    <!-- This step should be dependent upon general XML/XSL 
         functionality like SAX, DOM, JAXP and the like, but 
         should not directly depend on Xalan 
   -->
    <target name="compile.xsl" depends="compile.qetest"
        description="Compile TransformWrapper and associated classes">
        <!-- This javac has no dependencies -->
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}xslwrapper/TransformWrapperHelper.java,${test.root}xslwrapper/TransformWrapper.java,${test.root}xslwrapper/TransformWrapperFactory.java"
               debug="${debug}" />
        <!-- This javac depends on JAXP, SAX, DOM; hence the specific classpathref -->
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}xsl/*.java"
               debug="${debug}" 
               classpathref="compiletest.class.path" />
    </target>

    <target name="compile.trax.xslwrappers" depends="compile.xsl"
        description="Compile Trax*Wrapper xslwrappers only">
        <!-- Should only be dependent on JAXP, not Xalan specifically -->
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}xslwrapper/Trax*Wrapper.java,${test.root}xslwrapper/TraxWrapperUtils.java,${test.root}xslwrapper/XalanProcessWrapper.java"
               debug="${debug}"
               classpathref="compiletest.class.path" />
    </target>

    <target name="compile.trax" depends="compile.xsl,compile.trax.xslwrappers"
        description="Compile various JAXP-based API tests">
        <!-- Should only be dependent on JAXP, not Xalan specifically -->
        <!-- Separate javac steps to avoid compiler oddities -->
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}trax/*.java"
               debug="${debug}"
               classpathref="compiletest.class.path" />
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}trax/stream/*.java"
               debug="${debug}"
               classpathref="compiletest.class.path" />
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}trax/dom/*.java"
               debug="${debug}"
               classpathref="compiletest.class.path" />
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}trax/sax/*.java"
               debug="${debug}"
               classpathref="compiletest.class.path" />
    </target>

    <target name="compile" depends="compile.trax">
        <echo message="Compile Xalan-J 2.x specific tests" />
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}xalanj2/*.java,${test.root}dtm/*.java"
               excludes="${test.root}dtm/xsltcDocCode.java"
               debug="${debug}"
               classpathref="compiletest.class.path" />
    </target>

    <target name="compile.rwapi" depends="compile">
        <echo message="Compile xslt20 / XPath2.0 RWAPI tests" />
        <javac srcdir="${test.src.dir}" 
               destdir="${test.build.dir}" 
               includes="${test.root}rwapi/*.*"
               debug="${debug}"
               classpathref="rwapitest.class.path" />
    </target>

    <!-- Note that this target must *not* depend on any XSLTC tests, 
         which have to be compiled separately; otherwise the 
         smoketest will fail.
    -->
    <target name="jar" depends="compile"
        description="Build testxsl.jar with all available tests">
        <jar jarfile="${testxsl.jar}" 
             basedir="${test.build.dir}" 
             includes="**/*.class,**/*.properties" />
    </target>

    <!-- excludes="Bugzilla1288.java"; test refers to removed classes -->
    <target name="bugzilla.classes" depends="jar"
        description="Compile any bugzilla testlet classes">
        <mkdir dir="${tests.bugzilla.build.dir}" />
        <javac srcdir="${tests.bugzilla.dir}" 
               destdir="${tests.bugzilla.build.dir}" 
               debug="${debug}"
               excludes="Bugzilla1288.java"
               classpathref="bugzilla.class.path" />
    </target>

    <target name="extensions.classes" depends="jar"
        description="Compile any extensions test classes">
        <mkdir dir="${tests.extensions.build.dir}" />
        <javac srcdir="${tests.extensions.dir}" 
               destdir="${tests.extensions.build.dir}" 
               debug="${debug}"
               classpathref="extensions.class.path" />
        <!-- Add more javac calls if we add more Java extensions dirs -->        
    </target>

    <!-- This target compiles both the main tests and test drivers 
         in testxsl.jar from the java/ directory, as well as 
         various other classes in subdirs under tests/
    -->
    <target name="all" description="Build testxsl.jar *and* compile .java under tests/"
        depends="jar,bugzilla.classes,extensions.classes">
    </target>

    <target name="main"
        depends="all"
        description="Alias for all">
    </target>

    <!-- =================================================================== -->
    <!-- Various targets to clean the build tree                             -->
    <!-- =================================================================== -->
    <target name="distclean" depends="clean"
        description="Clean everything, including most test results!" >
        <delete dir="${alltest.resultDir}" />
        <delete dir="${api.outputDir}" />
        <delete dir="${conf.outputDir}" />
        <delete dir="${perf.outputDir}" />
        <delete dir="${contrib.outputDir}" />
        <delete dir="${smoketest.outputDir}" />
    </target>

    <target name="clean"
        description="Clean up the compiled tests and docs">
        <delete dir="${test.build.dir}"/>
        <delete dir="${tests.bugzilla.build.dir}"/>
        <delete dir="${tests.extensions.build.dir}"/>
        <delete dir="${xdocs.style}"/> <!-- init.build.docs creates this tree -->
    </target>


    <!-- ================================================================== -->
    <!-- Build docs: Creates the User's Guide                               -->
    <!-- ================================================================== -->
    <target name="docs" depends="init.docs"
        description="Build the framework/overview docs for tests">
        <java fork="yes" 
            classname="${doc.generator}" 
            classpathref="test.docs.class.path" >
            <arg line="targetDirectory=${test.build.docs} ${test.xdocs.book} ${test.xdocs.style}"/>
        </java>	 
    </target>

    <!-- ================================================================== -->
    <!-- Build docs: Creates the Javadoc API documentation                  -->
    <!-- ================================================================== -->
    <target name="javadocs" depends="init.docs"
        description="Build the Javadocs for tests">
            
        <!-- Ant 1.2 ignores destdir arg if doclet is set, so must send to doclet in doclet subelement dleslie-->    
        <!-- But: Ant 1.3 fails if you *don't* provide destdir attr... curcuru-->    
        <javadoc
             sourcepath="${test.src.dir}"
             packagenames="org.apache.qetest,org.apache.qetest.xslwrapper,org.apache.qetest.xsl,org.apache.qetest.trax,org.apache.qetest.trax.dom,org.apache.qetest.trax.sax,org.apache.qetest.trax.stream,org.apache.qetest.xalanj2"
             protected="true"
             author="true"
             version="true"
             use="true"
             windowtitle="Xalan Testing Framework" 
             doctitle="Xalan Testing Framework"
             bottom="Copyright &#169; ${year} The Apache Software Foundation.  All rights reserved."
             destdir="${test.build.apidocs}">
             <classpath refid="test.docs.class.path" />
               <doclet name="xalanjdoc.Standard" path="${doclet.jar}">
                  <param name="-d" value="${test.build.apidocs}"/>
               </doclet>
               <group title="QETEST Independent Framework" packages="org.apache.qetest"/>
               <group title="Xalan Framework and Base tests" packages="org.apache.qetest.xsl:org.apache.qetest.xslwrapper"/>
               <group title="JAXP/TrAX Generic Tests" packages="org.apache.qetest.trax:org.apache.qetest.trax.dom:org.apache.qetest.trax.sax:org.apache.qetest.trax.stream:"/>
               <group title="Xalan-J 2.x Specific Tests" packages="org.apache.qetest.xalanj2:org.apache.qetest.xsltc:org.apache.qetest.dtm"/>
        </javadoc>
    </target>

    <target name="printerdocs" depends="init.docs">
      <echo message="${ant.project.name} currently doesn't support printerdocs; try docs or javadocs instead."/>
    </target>

    <!-- =================================================================== -->
    <!-- Build distribution - simple zip/tar.gz for sharing tests            -->
    <!-- =================================================================== -->
    <target name="dist" depends="all,docs,javadocs,dist-nodeps"
        description="Build a simple distribution module incl. docs">
    </target>

    <target name="dist-nodeps" depends="init.build"
        description="Build a simple distribution module, without depends">
        <echo message="Create .zip/.tar/gz in ${test.build.dir}" />

        <!-- Build .tars, then .gzs, then cleanup .tars before doing .zips -->
        <!-- Note ../.. paths to ensure archives start with 
             top-level xml-xalan/test/blah directories
        -->
        <property name="tarzip-backref" value="../.."/>
        <property name="tarzip-fwdref" value="xml-xalan/test"/>
        
        <!-- tar.gz just the xml/xsl/out test files -->
        <tar tarfile="${test.build.dir}/xalan-tests-${DSTAMP}.tar">
          <tarfileset dir="${tarzip-backref}">
            <include name="${tarzip-fwdref}/tests/"/>
          </tarfileset>
        </tar>
        <gzip src="${test.build.dir}/xalan-tests-${DSTAMP}.tar" 
              zipfile="${test.build.dir}/xalan-tests-${DSTAMP}.tar.gz"/>
        <delete file="${test.build.dir}/xalan-tests-${DSTAMP}.tar"/>
              
        <!-- tar.gz the automation and batch files, etc. -->
        <tar tarfile="${test.build.dir}/xalan-automation-${DSTAMP}.tar">
          <tarfileset dir="${tarzip-backref}">
            <include name="${tarzip-fwdref}/*.*"/>
            <include name="${tarzip-fwdref}/${testxsl.jar}"/>
            <include name="${tarzip-fwdref}/${test.build.dir}/${test.root}"/>
            <include name="${tarzip-fwdref}/${test.build.docs}/"/>
            <include name="${tarzip-fwdref}/${test.build.apidocs}/"/>
            <include name="${tarzip-fwdref}/java/xdocs/"/>
            <include name="${tarzip-fwdref}/java/src/"/>
            <include name="${tarzip-fwdref}/bin/"/>
          </tarfileset>
        </tar>
        <gzip src="${test.build.dir}/xalan-automation-${DSTAMP}.tar" 
              zipfile="${test.build.dir}/xalan-automation-${DSTAMP}.tar.gz"/>
        <delete file="${test.build.dir}/xalan-automation-${DSTAMP}.tar"/>

        <!-- Zip just the xml/xsl/out test files -->
        <zip zipfile="${test.build.dir}/xalan-tests-${DSTAMP}.zip" >
          <zipfileset dir="${tarzip-backref}">
            <include name="${tarzip-fwdref}/tests/"/>
          </zipfileset>
        </zip>
        <!-- Zip the automation and batch files, etc. -->
        <zip zipfile="${test.build.dir}/xalan-automation-${DSTAMP}.zip" >
          <zipfileset dir="${tarzip-backref}">
            <include name="${tarzip-fwdref}/*.*"/>
            <include name="${tarzip-fwdref}/${testxsl.jar}"/>
            <include name="${tarzip-fwdref}/${test.build.dir}/${test.root}"/>
            <include name="${tarzip-fwdref}/${test.build.docs}/"/>
            <include name="${tarzip-fwdref}/${test.build.apidocs}/"/>
            <include name="${tarzip-fwdref}/java/xdocs/"/>
            <include name="${tarzip-fwdref}/java/src/"/>
            <include name="${tarzip-fwdref}/bin/"/>
          </zipfileset>
        </zip>
          
        <!-- tar.gz just the documentation for potential posting to the website -->
        <tar tarfile="${test.build.dir}/xalan-docs-${DSTAMP}.tar">
          <tarfileset dir="..">
            <include name="test/${test.build.docs}/"/>
            <include name="test/${test.build.apidocs}/"/>
            <include name="test/README.html"/>
          </tarfileset>
        </tar>
        <gzip src="${test.build.dir}/xalan-docs-${DSTAMP}.tar" 
              zipfile="${test.build.dir}/xalan-docs-${DSTAMP}.tar.gz"/>
        <delete file="${test.build.dir}/xalan-docs-${DSTAMP}.tar"/>
        <zip zipfile="${test.build.dir}/xalan-docs-${DSTAMP}.zip" >
          <zipfileset dir="..">
            <include name="test/${test.build.docs}/"/>
            <include name="test/${test.build.apidocs}/"/>
            <include name="test/README.html"/>
          </zipfileset>
        </zip>

    </target>

    <target name="export" depends="jar"
        description="Build a very simple export of just the important sources">
        <!-- Note that Shane has external dependencies on this target -->
        <!-- Zip only the sources used in the plain 'jar' target -->
        <zip zipfile="${test.build.dir}/testxsl-src-${DSTAMP}.zip" >
          <zipfileset dir="java">
            <include name="src/"/>
            <!-- Don't copy qetesttest due to JUnit dependency -->
            <exclude name="src/${test.root}qetesttest/"/>
          </zipfileset>
        </zip>
          
    </target>

    <!-- ================================================================== -->
    <!-- Special: Targets specific to XSLTC which requires extra .jars      -->
    <!-- This section will be updated as xsltc integrates more with xalan   -->
    <!-- ================================================================== -->
    <!-- Actually, I'd like to figure out some sneaky Ant trick to 
         allow swapping of parts of classpaths (i.e. swap in xsltc.jar 
         and related files instead of xalan.jar; likewise replace 
         xercesImpl.jar with the PARSER_JAR defined outside) to clean 
         this section up.  But for the time being I'm planning on 
         simply maintaining separate-but-equal targets.xsltc
    -->

    <path id="xsltc.runtime.class.path">
        <pathelement path="${java.class.path}" />
        <pathelement location="${xalan.build.dir}/xalan.jar" />
        
        <!-- add xsltc.jar so we can test the separate jar distribution -->
        <pathelement location="${xalan.build.dir}/xsltc.jar" />
        <pathelement location="${ser.jar}" />
         
        <pathelement location="${testxsl.jar}" />
        <pathelement location="${parserjar}" />
        <pathelement location="${xml-apis.jar}" />
        <pathelement location="${jtidy.jar}" />
    </path>
    <path id="xsltc.compile.class.path">
        <pathelement path="${java.class.path}" />
        <pathelement location="${xalan.build.dir}/xalan.jar" />
        
        <!-- add xsltc.jar so we can test the separate jar distribution -->
        <pathelement location="${xalan.build.dir}/xsltc.jar" />
        
        <pathelement location="${testxsl.jar}" />
        <pathelement location="${parserjar}" />
        <pathelement location="${xml-apis.jar}" />
        <pathelement location="${jtidy.jar}" />
        <!-- Note addition of . to the classpath to enable loading 
             of translets; this needs more work and coordination 
             with tests and translet output dirs.
        -->
        <pathelement location="." />
    </path>

    <target name="conf.xsltc" description="Run TestletDriver over the conf tree using xsltc">
        <!-- Set the default conformance test driver, user may override -->
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <echo message="Executing Xalan-xsltc conf test: ${testClass}" />
        <!-- Special: allow explicit test.properties overrides for inputDir, etc for xsltc -->
        <property name="testType" value="conf.xsltc." />
	<!-- Set indent-number to 0 to match Xalan's default indentation -->
	<property name="${testType}Processor.setAttribute.indent-number" value="0"/>
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref"
                   value="xsltc.runtime.class.path" />
            <!-- Explicitly set TransformerFactory property to use xsltc -->
            <param name="sysprop.transfact"
                   value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl" />
        </antcall>
        <property name="scan.outputDir" value="${conf.xsltc.outputDir}"/>
        <antcall target="scan" />
    </target>

    <target name="perf.xsltc" description="Run TestletDriver over the perf tree using xsltc">
        <!-- Set the default conformance test driver, user may override -->
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <echo message="Executing Xalan-xsltc perf test: ${testClass}" />
        <!-- Special: allow explicit test.properties overrides for inputDir, etc for xsltc -->
        <property name="testType" value="perf.xsltc." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref"
                   value="xsltc.runtime.class.path" />
            <!-- Explicitly set TransformerFactory property to use xsltc -->
            <param name="sysprop.transfact"
                   value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl" />
        </antcall>
        <antcall target="scan">
            <param name="scan.outputDir" value="${perf.xsltc.outputDir}"/>
        </antcall>
    </target>


    <target name="perf.saxon" description="Run TestletDriver over the perf tree using Saxon">
		<!-- New addition,  NOT TESTED -->
        <!-- Set the default conformance test driver, user may override -->
        <property name="testClass" value="org.apache.qetest.xsl.StylesheetTestletDriver" />
        <echo message="Executing Saxon perf test: ${testClass}" />
        <!-- Special: allow explicit test.properties overrides for inputDir, etc for Saxon -->
        <property name="testType" value="perf.saxon." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref"
                   value="saxon.runtime.class.path" />
            <!-- Explicitly set TransformerFactory property to use saxon -->
            <param name="sysprop.transfact"
                   value="org.saxon.trax.TransformerFactoryImpl" />
        </antcall>
        <antcall target="scan">
            <param name="scan.outputDir" value="${perf.saxon.outputDir}"/>
        </antcall>
    </target>

    <!-- ================================================================== -->
    <!-- Run tests: a specific named API test with xsltc code               -->
    <!-- ================================================================== -->
    <target name="api.xsltc" description="Run a specific API test with xsltc code"
        depends="init.test">
        <!-- Note no default is set; also testClass is not prefixed! -->
        <echo message="Executing Xalan-xsltc api test: ${testClass}" />
        <property name="testType" value="api." />
        <antcall target="run.xalantest">
            <param name="xalantest.classpathref"
                   value="xsltc.compile.class.path" />
            <!-- Explicitly set TransformerFactory property to use xsltc -->
            <param name="sysprop.transfact"
                   value="org.apache.xalan.xsltc.trax.TransformerFactoryImpl" />
        </antcall>
    </target>

  <!-- =================================================================== -->
  <!-- Install/Uninstall targets - not currently applicable                -->
  <!-- =================================================================== -->
  <target name="install">
    <echo message="${ant.project.name} currently doesn't support (un)installation; try jar or api instead"/>
  </target>
  <target name="uninstall">
    <echo message="${ant.project.name} currently doesn't support (un)installation; try distclean instead"/>
  </target>

</project>
