You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mu...@apache.org on 2022/12/17 17:03:01 UTC
[xalan-java] branch xalan-j_2_7_1_maint updated: implementing xalanj build changes, where from the xalanj src distribution, users can build xalanj and also can run xalanj tests
This is an automated email from the ASF dual-hosted git repository.
mukulg pushed a commit to branch xalan-j_2_7_1_maint
in repository https://gitbox.apache.org/repos/asf/xalan-java.git
The following commit(s) were added to refs/heads/xalan-j_2_7_1_maint by this push:
new 5528a794 implementing xalanj build changes, where from the xalanj src distribution, users can build xalanj and also can run xalanj tests
5528a794 is described below
commit 5528a794256f6ca1fa74d68a64d41a4c9542eb18
Author: Mukul Gandhi <ga...@gmail.com>
AuthorDate: Sat Dec 17 22:31:07 2022 +0530
implementing xalanj build changes, where from the xalanj src
distribution, users can build xalanj and also can run xalanj tests
---
README | 2 +-
build.xml | 49 +-
build.xml => build_srcdist_xalan.xml | 55 +-
build_srcdist_xalan_tests.xml | 1679 ++++++++++++++++++++++++++++++++++
4 files changed, 1737 insertions(+), 48 deletions(-)
diff --git a/README b/README
index 1332cab0..9d1886f8 100644
--- a/README
+++ b/README
@@ -70,7 +70,7 @@ copy /Y ..\xalan-java\lib\endorsed\xml-apis.jar "%JARDIR%"
5) Run the necessary XalanJ tests as follows,
-The tests described below within points 6.1, 6.2 and 6.3 need to be run from folder xalan-test.
+The tests described below within points 5.1, 5.2 and 5.3 need to be run from folder xalan-test.
5.1 Run the ant target "smoketest", using following two commands in sequence shown below
diff --git a/build.xml b/build.xml
index 73a01549..186bff54 100644
--- a/build.xml
+++ b/build.xml
@@ -252,7 +252,7 @@ $Id$
</path>
<!-- patternsets for source and binary distribution packages -->
- <patternset id="bin-distro" >
+ <patternset id="bin-distro">
<include name="${dist.file}/LICENSE.txt"/>
<include name="${dist.file}/NOTICE.txt"/>
<include name="${dist.file}/readme.html"/>
@@ -271,7 +271,7 @@ $Id$
<include name="${dist.file}/samples/xsltcservlet.jar"/>
<include name="${dist.file}/docs/"/>
</patternset>
- <patternset id="bin-distro-nodocs" >
+ <patternset id="bin-distro-nodocs">
<include name="${dist.file}/LICENSE.txt"/>
<include name="${dist.file}/NOTICE.txt"/>
<include name="${dist.file}/readme.html"/>
@@ -289,7 +289,7 @@ $Id$
<include name="${dist.file}/samples/xsltcejb.jar"/>
<include name="${dist.file}/samples/xsltcservlet.jar"/>
</patternset>
- <patternset id="src-distro" >
+ <patternset id="src-distro">
<include name="${dist.file}/LICENSE.txt"/>
<include name="${dist.file}/NOTICE.txt"/>
<include name="${dist.file}/build.*"/>
@@ -305,13 +305,15 @@ $Id$
<exclude name="${dist.file}/samples/xsltcbrazil.jar"/>
<exclude name="${dist.file}/samples/xsltcejb.jar"/>
<exclude name="${dist.file}/samples/xsltcservlet.jar"/>
- <include name="${dist.file}/src/"/>
- <include name="${dist.file}/tests/"/>
+ <include name="${dist.file}/src/"/>
<include name="${dist.file}/xdocs/"/>
+ <include name="${dist.file}/build_srcdist_xalan.xml"/>
+ <include name="${dist.file}/build_srcdist_xalan_tests.xml"/>
+ <include name="${dist.file}/xalan-test/"/>
</patternset>
<!-- XSLTC engine dependency .jar files -->
- <patternset id="xsltc-deps-jars" >
+ <patternset id="xsltc-deps-jars">
<include name="${dist.file}/lib/${bcel.jar.name}"/>
<include name="${dist.file}/tools/${java_cup.jar.name}"/>
<include name="${dist.file}/tools/${jlex.jar.name}"/>
@@ -1356,8 +1358,9 @@ $Id$
<copy file="${xmlapis.jar}" todir="${dist.dir}" />
<copy file="${parser.jar}" todir="${dist.dir}" />
- <antcall target="xalan.tests.testxsl.jar.copy"/>
- <antcall target="xalan.tests.folder.copy"/>
+ <antcall target="xalan-transform-build-file-for-src-distro"/>
+
+ <antcall target="xalan-tests-create-for-src-distro"/>
<copy todir="${dist.dir}">
<fileset dir="." includes="readme.html,KEYS,build.xml,build.sh,build.bat,commits.xml,
@@ -1365,23 +1368,23 @@ $Id$
</copy>
</target>
- <target name="xalan.tests.testxsl.jar.copy" depends="check-testxsl.jar" if="testxsl.jar.present">
- <copy file="${test.relpath}/java/build/testxsl.jar" todir="${dist.dir}/lib" />
- </target>
-
- <target name="xalan.tests.folder.copy" depends="check-tests.folder" if="tests.folder.present">
- <mkdir dir="${dist.dir}/tests"/>
- <copy todir="${dist.dir}/tests">
- <fileset dir="${test.relpath}/tests"/>
- </copy>
+ <target name="xalan-transform-build-file-for-src-distro">
+ <copy file="./build_srcdist_xalan.xml" todir="${dist.dir}"/>
+ <copy file="./build_srcdist_xalan.xml" tofile="${dist.dir}/build.xml"/>
</target>
- <target name="check-testxsl.jar">
- <available file="${test.relpath}/java/build/testxsl.jar" property="testxsl.jar.present"/>
- </target>
-
- <target name="check-tests.folder">
- <available file="${test.relpath}/tests" type="dir" property="tests.folder.present"/>
+ <target name="xalan-tests-create-for-src-distro">
+ <mkdir dir="${dist.dir}/xalan-test"/>
+ <copy todir="${dist.dir}/xalan-test">
+ <fileset dir="${test.relpath}">
+ <exclude name="build.xml"/>
+ </fileset>
+ </copy>
+
+ <copy file="./build_srcdist_xalan_tests.xml" todir="${dist.dir}"/>
+ <copy file="./build_srcdist_xalan_tests.xml" tofile="${dist.dir}/xalan-test/build.xml"/>
+
+ <delete dir="${dist.dir}/xalan-test/.git" />
</target>
<target name="autodist-copy-files-docs">
diff --git a/build.xml b/build_srcdist_xalan.xml
similarity index 98%
copy from build.xml
copy to build_srcdist_xalan.xml
index 73a01549..9ec79c8b 100644
--- a/build.xml
+++ b/build_srcdist_xalan.xml
@@ -55,6 +55,10 @@ Other Important Notes:
Authors:
Shane Curcuru <sh...@lotus.com>
Don Leslie <do...@lotus.com>
+
+This file has been written, to enable building XalanJ from XalanJ
+source distribution. This file is largely, a copy of the file build.xml
+provided by XalanJ xalan-java git repos.
$Id$
==================================================================== -->
@@ -252,7 +256,7 @@ $Id$
</path>
<!-- patternsets for source and binary distribution packages -->
- <patternset id="bin-distro" >
+ <patternset id="bin-distro">
<include name="${dist.file}/LICENSE.txt"/>
<include name="${dist.file}/NOTICE.txt"/>
<include name="${dist.file}/readme.html"/>
@@ -271,7 +275,7 @@ $Id$
<include name="${dist.file}/samples/xsltcservlet.jar"/>
<include name="${dist.file}/docs/"/>
</patternset>
- <patternset id="bin-distro-nodocs" >
+ <patternset id="bin-distro-nodocs">
<include name="${dist.file}/LICENSE.txt"/>
<include name="${dist.file}/NOTICE.txt"/>
<include name="${dist.file}/readme.html"/>
@@ -289,7 +293,7 @@ $Id$
<include name="${dist.file}/samples/xsltcejb.jar"/>
<include name="${dist.file}/samples/xsltcservlet.jar"/>
</patternset>
- <patternset id="src-distro" >
+ <patternset id="src-distro">
<include name="${dist.file}/LICENSE.txt"/>
<include name="${dist.file}/NOTICE.txt"/>
<include name="${dist.file}/build.*"/>
@@ -305,13 +309,15 @@ $Id$
<exclude name="${dist.file}/samples/xsltcbrazil.jar"/>
<exclude name="${dist.file}/samples/xsltcejb.jar"/>
<exclude name="${dist.file}/samples/xsltcservlet.jar"/>
- <include name="${dist.file}/src/"/>
- <include name="${dist.file}/tests/"/>
+ <include name="${dist.file}/src/"/>
<include name="${dist.file}/xdocs/"/>
+ <include name="${dist.file}/build_srcdist_xalan.xml"/>
+ <include name="${dist.file}/build_srcdist_xalan_tests.xml"/>
+ <include name="${dist.file}/xalan-test/"/>
</patternset>
<!-- XSLTC engine dependency .jar files -->
- <patternset id="xsltc-deps-jars" >
+ <patternset id="xsltc-deps-jars">
<include name="${dist.file}/lib/${bcel.jar.name}"/>
<include name="${dist.file}/tools/${java_cup.jar.name}"/>
<include name="${dist.file}/tools/${jlex.jar.name}"/>
@@ -1356,8 +1362,9 @@ $Id$
<copy file="${xmlapis.jar}" todir="${dist.dir}" />
<copy file="${parser.jar}" todir="${dist.dir}" />
- <antcall target="xalan.tests.testxsl.jar.copy"/>
- <antcall target="xalan.tests.folder.copy"/>
+ <antcall target="xalan-transform-build-file-for-src-distro"/>
+
+ <antcall target="xalan-tests-create-for-src-distro"/>
<copy todir="${dist.dir}">
<fileset dir="." includes="readme.html,KEYS,build.xml,build.sh,build.bat,commits.xml,
@@ -1365,23 +1372,23 @@ $Id$
</copy>
</target>
- <target name="xalan.tests.testxsl.jar.copy" depends="check-testxsl.jar" if="testxsl.jar.present">
- <copy file="${test.relpath}/java/build/testxsl.jar" todir="${dist.dir}/lib" />
- </target>
-
- <target name="xalan.tests.folder.copy" depends="check-tests.folder" if="tests.folder.present">
- <mkdir dir="${dist.dir}/tests"/>
- <copy todir="${dist.dir}/tests">
- <fileset dir="${test.relpath}/tests"/>
- </copy>
+ <target name="xalan-transform-build-file-for-src-distro">
+ <copy file="./build_srcdist_xalan.xml" todir="${dist.dir}"/>
+ <copy file="./build_srcdist_xalan.xml" tofile="${dist.dir}/build.xml"/>
</target>
- <target name="check-testxsl.jar">
- <available file="${test.relpath}/java/build/testxsl.jar" property="testxsl.jar.present"/>
- </target>
-
- <target name="check-tests.folder">
- <available file="${test.relpath}/tests" type="dir" property="tests.folder.present"/>
+ <target name="xalan-tests-create-for-src-distro">
+ <mkdir dir="${dist.dir}/xalan-test"/>
+ <copy todir="${dist.dir}/xalan-test">
+ <fileset dir="${test.relpath}">
+ <exclude name="build.xml"/>
+ </fileset>
+ </copy>
+
+ <copy file="./build_srcdist_xalan_tests.xml" todir="${dist.dir}"/>
+ <copy file="./build_srcdist_xalan_tests.xml" tofile="${dist.dir}/xalan-test/build.xml"/>
+
+ <delete dir="${dist.dir}/xalan-test/.git" />
</target>
<target name="autodist-copy-files-docs">
@@ -1507,7 +1514,7 @@ $Id$
<!-- Compiles and runs mini/smoketest from xml-xalan\xalan-test, if present. -->
<!-- xml-xalan is a representative folder, that can contain folders xalan-java and xalan-test -->
<!-- =================================================================== -->
- <property name="test.relpath" value="../xalan-test"/>
+ <property name="test.relpath" value="xalan-test"/>
<target name="minitest" depends="prepare,minitest-run,tests-not-available"
description="Run the Minitest from xml-xalan/xalan-test" >
diff --git a/build_srcdist_xalan_tests.xml b/build_srcdist_xalan_tests.xml
new file mode 100644
index 00000000..a055dc2f
--- /dev/null
+++ b/build_srcdist_xalan_tests.xml
@@ -0,0 +1,1679 @@
+<?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
+
+This file has been written, to enable running XalanJ tests from
+XalanJ source distribution. This file is largely, a copy of the
+file build.xml provided by XalanJ xalan-test git repos.
+
+</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-2022"/>
+ <!-- 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="./.."/>
+ <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"/>
+
+ <!-- JTidy is used by the XSLTC comparator -->
+ <property name="jtidy.jar" value="${test.tools.dir}/Tidy.jar"/>
+
+ <!-- The rhino jar is needed, to run Javascript extensions tests -->
+ <property name="js.jar" value="${xalan.relpath}/lib/rhino-1.7.14.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). For more information, see the
+ Apache Commons BSF project https://commons.apache.org/proper/commons-bsf/.
+ -->
+ <property name="bsf.jar" value="${xalan.relpath}/lib/bsf.jar"/>
+
+ <property name="commons-logging.jar" value="${xalan.relpath}/lib/commons-logging-1.2.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="${commons-logging.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="jar,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 © ${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>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xalan.apache.org
For additional commands, e-mail: commits-help@xalan.apache.org