This is an automated email from the ASF dual-hosted git repository.
elharo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/xerces-j.git
The following commit(s) were added to refs/heads/main by this push:
new 21476091b Turn on tests and verify they run and fail (#11)
21476091b is described below
commit 21476091b2971d2f464ae12427e7a4e4dfca5b7d
Author: Elliotte Rusty Harold <[email protected]>
AuthorDate: Thu Jun 26 17:13:48 2025 +0000
Turn on tests and verify they run and fail (#11)
* Update ant.yml
Turn on tests and verify they fail
* switch to adopt openjdk
* turn off failing tests
---
.github/workflows/ant.yml | 11 ++--
build.xml | 148 +++++++++++++++++++++++++---------------------
2 files changed, 89 insertions(+), 70 deletions(-)
diff --git a/.github/workflows/ant.yml b/.github/workflows/ant.yml
index 3936a9104..5de4b4633 100644
--- a/.github/workflows/ant.yml
+++ b/.github/workflows/ant.yml
@@ -22,7 +22,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- jdk: ['8', '11', '17', '21']
+ jdk: ['8']
steps:
- uses: actions/checkout@v4
@@ -32,7 +32,10 @@ jobs:
distribution: 'temurin'
java-version: ${{ matrix.jdk }}
- # use Ant directly to ensure targets work as expected
+ # check ant version
+ - name: Ant Version
+ run: ant -version
+
- name: Ant Build (target jars)
run: ant -noinput -buildfile build.xml jars
@@ -41,8 +44,8 @@ jobs:
# test fails on JDK 8 due to java.lang.NoSuchFieldError
# test fails in JDK 11+ as -Xbootclasspath/p is no longer a supported
option
- #- name: Ant Test (target test)
- # run: ant -noinput -buildfile build.xml test
+ - name: Ant Test (target test)
+ run: ant -noinput -buildfile build.xml ci-test
# cannot target 'all' with any JDK due to NoClassDefFoundError:
com/sun/image/codec/jpeg/JPEGCodec
#- name: Ant Build (target all)
diff --git a/build.xml b/build.xml
index 489d796ae..d0da81856 100644
--- a/build.xml
+++ b/build.xml
@@ -27,7 +27,7 @@ Authors:
$Id$
==================================================================== -->
-<project default="usage" basedir=".">
+<project default="usage" basedir="." xmlns:if="ant:if">
<!-- Xerces Java directories -->
<property name="build.dir" value="./build"/>
@@ -127,6 +127,9 @@ Authors:
<filter token="log" value="true"/>
<filter token="verbose" value="true"/>
+ <condition property="java9OrLater">
+ <javaversion atleast="9" />
+ </condition>
</target>
<!-- =================================================================== -->
@@ -757,6 +760,14 @@ Authors:
<!-- Do a sanity test using samples -->
<!-- =================================================================== -->
<target name="test" depends="tests">
+ <path id="test.classpath">
+ <pathelement location="${tools.dir}/${jar.apis}"/>
+ <pathelement location="${tools.dir}/${jar.resolver}"/>
+ <pathelement location="${tools.dir}/${jar.serializer}"/>
+ <pathelement location="${tools.dir}/${jar.junit}"/>
+ <pathelement location="${build.dir}/classes"/>
+ <pathelement location="${build.dir}/tests"/>
+ </path>
<echo message="Performing sanity test for ${parser.Name} ${parser.Version}
..." />
<echo message="Using
classpath='${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${tools.dir}/${jar.serializer}:${build.dir}/classes'"
/>
<echo message="Running sax.Counter ..." />
@@ -773,22 +784,27 @@ Authors:
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
<arg value="${data.dir}/personal.xml"/>
</java>
- <echo message="Running dom.Counter ..." />
- <java fork="yes"
+ <!-- fails in CI on Java 8 due to NoSuchFieldError; fix this -->
+ <echo if:set="java9OrLater" message="Running dom.Counter ..." />
+ <java if:set="java9OrLater"
+ fork="yes"
classname="dom.Counter"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
<arg value="${data.dir}/personal.xml"/>
</java>
- <echo message="Running dom.Writer ..." />
- <java fork="yes"
+ <echo if:set="java9OrLater" message="Running dom.Writer ..." />
+ <java if:set="java9OrLater"
+ fork="yes"
classname="dom.Writer"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
<arg value="${data.dir}/personal.xml"/>
</java>
- <echo message="Running thread.Test dom" />
- <java fork="yes"
+ <!-- TODO These should be run using the junit tasks, not java -->
+ <echo if:set="java9OrLater" message="Running thread.Test dom" />
+ <java if:set="java9OrLater"
+ fork="yes"
classname="thread.Test"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
@@ -811,100 +827,96 @@ Authors:
<arg value="${data.dir}/personal-schema.xml"/>
</java>
-
-
- <!--
- <echo message="Running DOMFilter ..." />
- <java fork="yes"
+ <echo if:set="java9OrLater" message="Running DOMFilter ..." />
+ <java if:set="java9OrLater"
+ fork="yes"
classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${tools.dir}/${jar.serializer}:${build.dir}/classes"
classname="dom.DOMFilter"
args="-p dom.wrappers.DOMParser ${data.dir}/personal.xml"/>
- -->
- <!-- The following are samples but not command-line applications.
- <echo message="Running IteratorView ..." />
- <java fork="yes"
-
classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${tools.dir}/${jar.serializer}:${build.dir}/classes"
- classname="dom.traversal.IteratorView"
- failOnError="yes"
- args="${data.dir}/personal.xml"/>
- <echo message="Running TreeWalkerView ..." />
- <java fork="yes"
-
classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${tools.dir}/${jar.serializer}:${build.dir}/classes"
- classname="dom.traversal.TreeWalkerView"
- failOnError="yes"
- args="${data.dir}/personal.xml"/>
- <echo message="Running TreeViewer ..." />
- <java fork="yes"
-
classpath="${tools.dir}/${jar.apis}:${tools.dir}/${jar.resolver}:${tools.dir}/${jar.serializer}:${build.dir}/classes"
- classname="dom.TreeViewer"
- failOnError="yes"
- args="${data.dir}/personal.xml"/>
- -->
- <echo message="Running dom.DTest ..." />
+ <echo message="Running dom.DTest..." />
<java fork="yes"
classname="dom.DTest"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
</java>
- <echo message="Running dom.mem.Test ..." />
+ <echo message="Running dom.mem.Test..." />
<java fork="yes"
classname="dom.mem.Test"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
</java>
- <echo message="Running dom.range.Test ..." />
- <java fork="yes"
+ <java if:set="java9OrLater"
+ fork="yes"
classname="dom.range.Test"
failOnError="yes">
- <jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
- <arg value="all"/>
+ <jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
+ <arg value="all"/>
</java>
-
- <echo message="Running dom.ids.Test ..." />
- <java fork="yes"
+ <echo if:set="java9OrLater" message="Running dom.ids.Test..." />
+ <java if:set="java9OrLater"
+ fork="yes"
classname="dom.ids.Test"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
</java>
- <echo message="Running dom.serialization.Test ..." />
- <java fork="yes"
+
+<!--
+ TODO fix this test
+ [java] error: Error occurred - Feature
'http://apache.org/xml/features/validation/schema' is not recognized.
+ [java] org.xml.sax.SAXNotRecognizedException: Feature
'http://apache.org/xml/features/validation/schema' is not recognized.
+-->
+ <echo if:set="java9OrLater" message="Running dom.serialization.Test..." />
+ <java if:set="java9OrLater" fork="yes"
classname="dom.serialization.Test"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
<arg value="${data.dir}/personal-schema.xml"/>
<arg value="out.xml"/>
</java>
- <echo message="Running dom.traversal.AllTests ..." />
- <java fork="yes"
+ <echo if:set="java9OrLater" message="Running dom.traversal.AllTests..." />
+ <java if:set="java9OrLater"
+ fork="yes"
classname="dom.traversal.AllTests"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${tools.dir}/${jar.junit}${path.separator}${build.dir}/classes${path.separator}${build.dir}/tests"/>
</java>
- <echo message="Running schema.Test ..." />
+ <echo message="Running schema.Test..." />
<java fork="yes"
classname="schema.Test"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
</java>
- <echo message="Running schema.config.AllTests ..." />
- <java fork="yes"
- classname="schema.config.AllTests"
- failOnError="yes">
- <jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${tools.dir}/${jar.junit}${path.separator}${build.dir}/classes${path.separator}${build.dir}/tests"/>
- </java>
- <echo message="Running schema.annotations.AllTests ..." />
- <java fork="yes"
- classname="schema.annotations.AllTests"
- failOnError="yes">
- <jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${tools.dir}/${jar.junit}${path.separator}${build.dir}/classes${path.separator}${build.dir}/tests"/>
- </java>
- <echo message="Running jaxp.PropertyTest ..." />
+ <echo if:set="java9OrLater" message="Running schema.config.AllTests..." />
+ <!-- TODO some of these tests pass on java 8 so I need to split them in
such a way that we can enable them -->
+ <junit if:set="java9OrLater"
+ fork="yes"
+ haltonfailure="no"
+ haltonerror="no"
+ failureproperty="test.failed"
+ errorproperty="test.failed"
+ showoutput="yes">
+ <classpath refid="test.classpath"/>
+ <test name="schema.config.AllTests"/>
+ <formatter type="brief" usefile="false"/>
+ </junit>
+ <echo if:set="java9OrLater" message="Running
schema.annotations.AllTests..." />
+ <junit if:set="java9OrLater" fork="yes"
+ haltonfailure="no"
+ haltonerror="no"
+ failureproperty="test.failed"
+ errorproperty="test.failed"
+ showoutput="yes">
+ <classpath refid="test.classpath"/>
+ <test name="schema.annotations.AllTests"/>
+ <formatter type="brief" usefile="false"/>
+ </junit>
+ <echo message="Running jaxp.PropertyTest..." />
<java fork="yes"
classname="jaxp.PropertyTest"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
</java>
- <echo message="Running jaxp.JAXPSpecTest ..." />
+ <echo message="Running jaxp.JAXPSpecTest..." />
<java fork="yes"
classname="jaxp.JAXPSpecTest"
failOnError="yes">
@@ -914,30 +926,34 @@ Authors:
<arg value="testSchemaLanguageDOM"/>
<arg value="testSchemaSourceDOM"/>
</java>
- <echo message="Running xinclude.Test ..." />
+ <echo message="Running xinclude.Test..." />
<java fork="yes"
classname="xinclude.Test"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
</java>
- <echo message="Running dom.registry.Test ..." />
+ <echo message="Running dom.registry.Test..." />
<java fork="yes"
classname="dom.registry.Test"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
</java>
- <echo message="Running dom.dom3.Test ..." />
+ <echo message="Running dom.dom3.Test..." />
<java fork="yes"
classname="dom.dom3.Test"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${build.dir}/classes"/>
</java>
- <echo message="Running idc.AllTests ..." />
+ <echo message="Running idc.AllTests..." />
<java fork="yes"
classname="idc.AllTests"
failOnError="yes">
<jvmarg
value="-Xbootclasspath/p:${tools.dir}/${jar.apis}${path.separator}${tools.dir}/${jar.resolver}${path.separator}${tools.dir}/${jar.serializer}${path.separator}${tools.dir}/${jar.junit}${path.separator}${build.dir}/classes${path.separator}${build.dir}/tests"/>
- </java>
+ </java>
+ </target>
+
+ <target name="ci-test" depends="test">
+ <fail message="One or more tests failed. See reports for details."
if="test.failed"/>
</target>
<!-- =================================================================== -->
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]