-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathrun_jaxbtck.sh
More file actions
executable file
·128 lines (95 loc) · 8.02 KB
/
run_jaxbtck.sh
File metadata and controls
executable file
·128 lines (95 loc) · 8.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#!/bin/bash -x
#
# Copyright (c) 2026 Contributors to the Eclipse Foundation. All rights reserved.
# Copyright (c) 2019, 2023 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0, which is available at
# https://www.eclipse.org/legal/epl-2.0.
#
# This Source Code may also be made available under the following Secondary
# Licenses when the conditions for such availability set forth in the
# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
# version 2 with the GNU Classpath Exception, which is available at
# https://www.gnu.org/software/classpath/license.html.
#
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
WGET_PROPS="--progress=bar:force --no-cache"
TOP_GLASSFISH_DIR="glassfish7"
TCK_NAME=xml-binding-tck
cd $WORKSPACE
if ls ${WORKSPACE}/dist/*xml-binding-tck*.zip 1> /dev/null 2>&1; then
echo "Using stashed bundle for xml-binding-tck created during the build phase"
unzip -o -q ${WORKSPACE}/dist/*xml-binding-tck*.zip -d ${WORKSPACE}/
sed -i "s#^finder=.*#finder=com.sun.javatest.finder.BinaryTestFinder -binary ${WORKSPACE}/${TCK_NAME}/tests/testsuite.jtd#g" ${WORKSPACE}/${TCK_NAME}/testsuite.jtt
if [[ "$RUNTIME" == "Glassfish" ]]; then
sed -i "s#^jck.env.jaxb.classes.jaxbClasses=.*#jck.env.jaxb.classes.jaxbClasses=${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jakarta.xml.bind-api.jar ${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jaxb-osgi.jar ${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jersey-media-jaxb.jar ${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jakarta.activation-api.jar#g" ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti
else
sed -i "s#^jck.env.jaxb.classes.jaxbClasses=.*#jck.env.jaxb.classes.jaxbClasses=${WORKSPACE}/jaxb-ri/mod/jakarta.xml.bind-api.jar ${WORKSPACE}/jaxb-ri/mod/jaxb-impl.jar ${WORKSPACE}/jaxb-ri/mod/jaxb-jxc.jar ${WORKSPACE}/jaxb-ri/mod/jakarta.activation-api.jar#g" ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti
fi
fi
if [ -z "$ANT_HOME" ]; then
export ANT_HOME=/usr/share/ant/
fi
export JAVA_HOME=${JDK11_HOME}
if [[ "$JDK" == "JDK17" || "$JDK" == "jdk17" ]];then
export JAVA_HOME=${JDK17_HOME}
elif [[ "$JDK" == "JDK21" || "$JDK" == "jdk21" ]];then
wget ${WGET_PROPS} https://download.java.net/java/GA/jdk21.0.1/415e3f918a1f4062a0074a2794853d0d/12/GPL/openjdk-21.0.1_linux-x64_bin.tar.gz -O jdk-21.tar.gz
tar -xvf jdk-21.tar.gz
export JAVA_HOME=$WORKSPACE/jdk-21.0.1
fi
sed -i "s#^jck.env.jaxb.testExecute.otherOpts=.*#jck.env.jaxb.testExecute.otherOpts=-Djdk.xml.elementAttributeLimit=2000#g" ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti
sed -i "s#^jck.env.jaxb.testExecute.cmdAsFile=.*#jck.env.jaxb.testExecute.cmdAsFile=${JAVA_HOME}/bin/java#g" ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti
if [[ "$RUNTIME" == "Glassfish" ]]; then
sed -i "s#^jck.env.jaxb.testExecute.otherEnvVars=.*#jck.env.jaxb.testExecute.otherEnvVars=JAVA_HOME\=${JAVA_HOME} JAXB_HOME=${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish#g" ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti
else
sed -i "s#^jck.env.jaxb.testExecute.otherEnvVars=.*#jck.env.jaxb.testExecute.otherEnvVars=JAVA_HOME\=${JAVA_HOME} JAXB_HOME=${WORKSPACE}/jaxb-ri#g" ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti
fi
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
cat ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti
cd ${WORKSPACE}
export BASEDIR=`pwd`
if [ -z "${JAXB_RI_BUNDLE_URL}" ]; then
export JAXB_RI_BUNDLE_URL='https://ci.eclipse.org/jaxb-impl/job/jaxb-ri-master-build/lastSuccessfulBuild/artifact/jaxb-ri/bundles/ri/target/jaxb-ri.zip'
fi
echo "JAXB_RI_BUNDLE_URL=${JAXB_RI_BUNDLE_URL}"
wget ${WGET_PROPS} ${JAXB_RI_BUNDLE_URL} -O jaxb-ri.zip && unzip -q -o ${WORKSPACE}/jaxb-ri.zip
if [ -z "$GF_HOME" ]; then
export GF_HOME=$BASEDIR
fi
echo "ANT_HOME=$ANT_HOME"
echo "export JAVA_HOME=$JAVA_HOME"
echo "export MAVEN_HOME=$MAVEN_HOME"
echo "export PATH=$PATH"
mkdir -p ${HOME}/.m2
cd ${WORKSPACE}
cd $BASEDIR
if [ -z "$GF_BUNDLE_URL" ]; then
echo "Using default url for GF bundle: $DEFAULT_GF_BUNDLE_URL"
export GF_BUNDLE_URL=$DEFAULT_GF_BUNDLE_URL
fi
export TCK_ROOT=${WORKSPACE}
export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8 -DnoSecurityManager=true -Djdk.xml.elementAttributeLimit=2000"
#wget $WGET_PROPS $GF_BUNDLE_URL -O latest-glassfish.zip
unzip -q -o latest-glassfish.zip
chmod -R 777 ${TOP_GLASSFISH_DIR}
mkdir -p JAXB_REPORT/JAXB-TCK
cd ${TCK_NAME}
####RUN tests with GLassfish JAXB
if [[ "$RUNTIME" == "Glassfish" ]]; then
$JAVA_HOME/bin/java -DnoSecurityManager=true -jar ${WORKSPACE}/${TCK_NAME}/lib/javatest.jar -batch -testsuite ${WORKSPACE}/${TCK_NAME} -open ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti -workdir -create ${WORKSPACE}/batch-multiJVM/work -set jck.env.jaxb.xsd_compiler.skipValidationOptional Yes -set jck.env.jaxb.testExecute.otherEnvVars "JAVA_HOME=${JAVA_HOME} JAXB_HOME=${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish" -set jck.env.jaxb.classes.jaxbClasses "${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jakarta.xml.bind-api.jar ${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jaxb-osgi.jar ${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jersey-media-jaxb.jar ${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jakarta.activation-api.jar" -runtests
$JAVA_HOME/bin/java -DnoSecurityManager=true -jar ${WORKSPACE}/${TCK_NAME}/lib/javatest.jar -batch -testsuite ${WORKSPACE}/${TCK_NAME} -open ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti -workdir ${WORKSPACE}/batch-multiJVM/work -set jck.env.jaxb.xsd_compiler.skipValidationOptional Yes -set jck.env.jaxb.testExecute.otherEnvVars "JAVA_HOME=${JAVA_HOME} JAXB_HOME=${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish" -set jck.env.jaxb.classes.jaxbClasses "${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jakarta.xml.bind-api.jar ${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jaxb-osgi.jar ${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jersey-media-jaxb.jar ${WORKSPACE}/${TOP_GLASSFISH_DIR}/glassfish/modules/jakarta.activation-api.jar" -set jck.priorStatus.needStatus Yes -set jck.priorStatus.status not_run -runtests
else
####RUN tests with standalone JAXB RI
$JAVA_HOME/bin/java -DnoSecurityManager=true -jar ${WORKSPACE}/${TCK_NAME}/lib/javatest.jar -batch -testsuite ${WORKSPACE}/${TCK_NAME} -open ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti -workdir -create ${WORKSPACE}/batch-multiJVM/work -set jck.env.jaxb.xsd_compiler.skipValidationOptional Yes -set jck.env.jaxb.testExecute.otherEnvVars "JAVA_HOME=${JAVA_HOME} JAXB_HOME=${WORKSPACE}/jaxb-ri" -set jck.env.jaxb.classes.jaxbClasses "${WORKSPACE}/jaxb-ri/mod/jakarta.xml.bind-api.jar ${WORKSPACE}/jaxb-ri/mod/jaxb-impl.jar ${WORKSPACE}/jaxb-ri/mod/jaxb-jxc.jar ${WORKSPACE}/jaxb-ri/mod/jakarta.activation-api.jar" -runtests
$JAVA_HOME/bin/java -DnoSecurityManager=true -jar ${WORKSPACE}/${TCK_NAME}/lib/javatest.jar -batch -testsuite ${WORKSPACE}/${TCK_NAME} -open ${WORKSPACE}/${TCK_NAME}/lib/javasoft-multiJVM.jti -workdir ${WORKSPACE}/batch-multiJVM/work -set jck.env.jaxb.xsd_compiler.skipValidationOptional Yes -set jck.env.jaxb.testExecute.otherEnvVars "JAVA_HOME=${JAVA_HOME} JAXB_HOME=${WORKSPACE}/jaxb-ri" -set jck.env.jaxb.classes.jaxbClasses "${WORKSPACE}/jaxb-ri/mod/jakarta.xml.bind-api.jar ${WORKSPACE}/jaxb-ri/mod/jaxb-impl.jar ${WORKSPACE}/jaxb-ri/mod/jaxb-jxc.jar ${WORKSPACE}/jaxb-ri/mod/jakarta.activation-api.jar" -set jck.priorStatus.needStatus Yes -set jck.priorStatus.status not_run -runtests
fi
$JAVA_HOME/bin/java -DnoSecurityManager=true -jar ${WORKSPACE}/${TCK_NAME}/lib/javatest.jar -workdir ${WORKSPACE}/batch-multiJVM/work -writereport ${WORKSPACE}/JAXB_REPORT/JAXB-TCK
cd ${WORKSPACE}
export HOST=`hostname -f`
echo "1 JAXB-TCK ${HOST}" > args.txt
mkdir -p ${WORKSPACE}/results/junitreports/
${JAVA_HOME}/bin/java -Djunit.embed.sysout=true -jar ${WORKSPACE}/docker/JTReportParser/JTReportParser.jar ${WORKSPACE}/args.txt ${WORKSPACE}/JAXB_REPORT ${WORKSPACE}/results/junitreports/
rm -f args.txt
tar zcf jaxbtck-results.tar.gz JAXB_REPORT batch-multiJVM/work results/junitreports/