blob: f3792c0240b5510c7a6eaab58c4205b4b27c8ceb [file] [log] [blame]
<?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="compiler.target" value="1.5"/>
<property name="compiler.source" value="1.5"/>
<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-2016"/>
<!-- 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.endorsed.dir" value="${xalan.lib.dir}/endorsed"/>
<property name="xalan.endorsed.jvmarg" value="-Djava.endorsed.dirs=&quot;${xalan.endorsed.dir}&quot;" />
<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.endorsed.dir}/xml-apis.jar"/>
<property name="parserjar" value="${xalan.endorsed.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}">
<jvmarg value="${xalan.endorsed.jvmarg}" />
</xalantest>
</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}">
<jvmarg value="${xalan.endorsed.jvmarg}" />
</xalantest>
</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}" />
<jvmarg value="${xalan.endorsed.jvmarg}" />
</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}" />
<jvmarg value="${xalan.endorsed.jvmarg}" />
</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}" />
<jvmarg value="${xalan.endorsed.jvmarg}" />
</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}" />
<jvmarg value="${xalan.endorsed.jvmarg}" />
</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="${compiler.target}" source="${compiler.source}"/>
</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}"
target="${compiler.target}" source="${compiler.source}"/>
<!-- 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="${compiler.target}" source="${compiler.source}"/>
</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="${compiler.target}" source="${compiler.source}"/>
</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"
target="${compiler.target}" source="${compiler.source}"/>
<javac srcdir="${test.src.dir}"
destdir="${test.build.dir}"
includes="${test.root}trax/stream/*.java"
debug="${debug}"
classpathref="compiletest.class.path"
target="${compiler.target}" source="${compiler.source}"/>
<javac srcdir="${test.src.dir}"
destdir="${test.build.dir}"
includes="${test.root}trax/dom/*.java"
debug="${debug}"
classpathref="compiletest.class.path"
target="${compiler.target}" source="${compiler.source}"/>
<javac srcdir="${test.src.dir}"
destdir="${test.build.dir}"
includes="${test.root}trax/sax/*.java"
debug="${debug}"
classpathref="compiletest.class.path"
target="${compiler.target}" source="${compiler.source}"/>
</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="${compiler.target}" source="${compiler.source}"/>
</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="${compiler.target}" source="${compiler.source}"/>
</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="${compiler.target}" source="${compiler.source}"/>
</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"
target="${compiler.target}" source="${compiler.source}"/>
<!-- 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>