Skip to content

Commit dab995a

Browse files
robertpatrickjeff5
authored andcommitted
Support up to Java 25 in modjy tests
This change is cherry-picked from PR 424.
1 parent d78adb8 commit dab995a

2 files changed

Lines changed: 57 additions & 8 deletions

File tree

tests/modjy/build.xml

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@
1616
<property name="jython_jar" value="jython-dev.jar" />
1717
<property name="jython_jar_path" location="${jython_home}/${jython_jar}" />
1818
<property name="jython_cachedir" location="${jython_home}/cachedir" />
19+
<property name="jython.test.java.opts" value="" />
1920
<property name="mockrunner_home" location="${env.MOCKRUNNER_HOME}" />
2021

21-
<target name="init" depends="clean_py_class_files">
22+
<target name="init" depends="clean">
2223
<available property="jython_home.exists" file="${jython_home}" />
2324
<fail unless="jython_home.exists" message="jython_home, ${jython_home}, doesn't exist" />
2425
<available property="mockrunner_home.exists" file="${mockrunner_home}" />
@@ -47,18 +48,63 @@
4748
<property name="mockrunner_home" value="${env.MOCKRUNNER_HOME}" />
4849
<property name="mockrunner_jar" location="${mockrunner_home}/jar" />
4950
<property name="mockrunner_lib" location="${mockrunner_home}/lib/jdk${jdk_version}/${servlet_version}" />
51+
<property name="mockrunner_servlet_api_jakarta_jar"
52+
location="${build}/mockrunner-jakarta/servlet.jar" />
53+
<property name="mockrunner_servlet_jakarta_jar"
54+
location="${build}/mockrunner-jakarta/mockrunner-servlet.jar" />
55+
56+
<taskdef name="jarjar" classname="org.pantsbuild.jarjar.JarJarTask">
57+
<classpath>
58+
<pathelement location="../../extlibs/jarjar-1.7.2.jar" />
59+
<pathelement location="../../extlibs/asm-9.10.1.jar" />
60+
<pathelement location="../../extlibs/asm-commons-9.10.1.jar" />
61+
</classpath>
62+
</taskdef>
63+
64+
<mkdir dir="${build}/mockrunner-jakarta" />
65+
<jarjar destfile="${mockrunner_servlet_api_jakarta_jar}">
66+
<zipfileset src="${mockrunner_jar}/${servlet_version}/servlet.jar" />
67+
<rule pattern="javax.servlet.**" result="jakarta.servlet.@1" />
68+
</jarjar>
69+
<jarjar destfile="${mockrunner_servlet_jakarta_jar}">
70+
<zipfileset src="${mockrunner_lib}/mockrunner-servlet.jar" />
71+
<rule pattern="javax.servlet.**" result="jakarta.servlet.@1" />
72+
</jarjar>
73+
74+
<condition property="modjy.jdk9.java.opts"
75+
value="--add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
76+
else="">
77+
<not>
78+
<matches string="${ant.java.version}" pattern="^1\.[0-8]$" />
79+
</not>
80+
</condition>
81+
<condition property="modjy.jdk25.java.opts"
82+
value="--enable-native-access=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow"
83+
else="">
84+
<or>
85+
<matches string="${ant.java.version}" pattern="^2[5-9]$" />
86+
<matches string="${ant.java.version}" pattern="^[3-9][0-9]$" />
87+
</or>
88+
</condition>
5089

5190
<path id="test.classpath">
5291
<pathelement path="${build}" />
5392
<pathelement path="${jython_jar_path}" />
54-
<fileset dir="${jython_home}/javalib" includes="**/*.jar" />
55-
<fileset dir="${mockrunner_jar}" includes="**/*.jar" />
56-
<fileset dir="${mockrunner_lib}" includes="**/*.jar" />
93+
<pathelement path="${mockrunner_servlet_api_jakarta_jar}" />
94+
<pathelement path="${mockrunner_servlet_jakarta_jar}" />
95+
<fileset dir="${jython_home}/javalib" includes="**/*.jar"
96+
excludes="jakarta.servlet-api-*.jar" />
97+
<fileset dir="${mockrunner_jar}" includes="**/*.jar" excludes="j2ee1.3/servlet.jar" />
98+
<fileset dir="${mockrunner_lib}" includes="**/*.jar" excludes="mockrunner-servlet.jar" />
5799
</path>
58100

59101
<javac srcdir="${test_src}" destdir="${build}" classpathref="test.classpath" debug="on" />
60-
<java classname="com.xhaus.modjy.ModjyTestBase" dir="." fork="yes" classpathref="test.classpath">
61-
<jvmarg value="-XX:MaxPermSize=128m"/>
102+
<java classname="com.xhaus.modjy.ModjyTestBase" dir="." fork="yes"
103+
classpathref="test.classpath" failonerror="true">
104+
<!-- Matrix runs pass proxy and socket JVM properties through this shared Ant property. -->
105+
<jvmarg line="${jython.test.java.opts}" />
106+
<jvmarg line="${modjy.jdk9.java.opts}" />
107+
<jvmarg line="${modjy.jdk25.java.opts}" />
62108
<sysproperty key="JYTHON_HOME" value="${jython_home}" />
63109
<sysproperty key="python.cachedir.skip" value="true" />
64110
</java>
@@ -102,4 +148,3 @@
102148
</target>
103149

104150
</project>
105-

tests/modjy/java/com/xhaus/modjy/ModjyTestBase.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
package com.xhaus.modjy;
2222

2323
import junit.framework.TestSuite;
24+
import junit.framework.TestResult;
2425

2526
import org.jdom.output.XMLOutputter;
2627
import org.python.core.PyObject;
@@ -253,6 +254,9 @@ public static void main(String args[]) {
253254
suite.addTestSuite(ModjyTestPostData.class);
254255
suite.addTestSuite(PyServletTest.class);
255256
suite.addTestSuite(PyFilterTest.class);
256-
junit.textui.TestRunner.run(suite);
257+
TestResult result = junit.textui.TestRunner.run(suite);
258+
if (!result.wasSuccessful()) {
259+
System.exit(1);
260+
}
257261
}
258262
}

0 commit comments

Comments
 (0)