blob: 82813a5a57edaa1911966f30424c80265672aaf6 [file] [log] [blame]
- job:
name: jdk8-jtreg-test
project-type: matrix
defaults: global
description: |
* Runs the jtreg tests.
properties:
- authorization:
everyone-flat:
- job-read
openjdk-members:
- job-read
- job-extended-read
- job-build
- job-cancel
- job-workspace
- build-discarder:
days-to-keep: 30
num-to-keep: 10
artifact-num-to-keep: 5
parameters:
- string:
name: YEAR
default: 'default'
- string:
name: DAY_OF_YEAR
default: 'default'
disabled: true
node: j12-qrep-01
display-name: 'OpenJDK 8 - Run jtreg tests'
axes:
- axis:
type: user-defined
name: BUILD_TYPE
values:
- release
- axis:
type: user-defined
name: JTREG_CATEGORY
values:
- hotspot
- langtools
- jdk
- axis:
type: slave
name: label
values:
- j12-qrep-01
execution-strategy:
sequential: true
wrappers:
- xvfb:
auto-display-name: true
additional-options: '-p unix'
debug: true
- workspace-cleanup:
dirmatch: false
- timestamps
- matrix-tie-parent:
node: j12-qrep-01
builders:
- shell: |
#!/bin/bash
echo "DISPLAY=${DISPLAY}"
set -exu
DEPS=$HOME/workspace/jdk8-get-deps
source $DEPS/build-date.sh
export JDK_VERSION=8u
IMAGE_DIR=${WORKSPACE}/jdk8u-${BUILD_TYPE}
PERSIST=$HOME/srv/openjdk8u
JCSTRESS=$DEPS/jcstress.jar
# Only set =1 for debugging.
use_subcategories=0
if [ ${use_subcategories} -eq 1 ]; then
case ${JTREG_CATEGORY} in
langtools)
JTREG_SUBCATEGORIES=tools/javap/typeAnnotations
;;
jdk)
JTREG_SUBCATEGORIES=jdk/net/Sockets
;;
hotspot)
JTREG_SUBCATEGORIES=runtime/CommandLine
;;
esac
fi
: ${JTREG_SUBCATEGORIES:=.}
tar xf $DEPS/jdk8u.tar.gz
tar xf ~/workspace/jdk8-build-image/BUILD_TYPE/${BUILD_TYPE}/label/${NODE_NAME}/out/jdk8u-${BUILD_TYPE}.tar.gz
tar xf $DEPS/jtreg-build-4.2.0-SNAPSHOT.tar.xz
# All the output directories and general frobbing
# output is to match the existing layout as expected
# by the cron-based publish and reporting scripts.
# XXX There's probably a better way.
YEAR=XXX__YEAR__XXX
DAY_OF_YEAR=YYY__DAY_OF_YEAR__YYY
basedir=cron_output
mkdir -p ${basedir}/{src,builds,reports}
src_dir=${basedir}/src/${YEAR}/${DAY_OF_YEAR}
work_dir=${basedir}/builds/${BUILD_TYPE}/${YEAR}/${DAY_OF_YEAR}/JTwork-${JTREG_CATEGORY}
report_dir=${basedir}/reports/${BUILD_TYPE}/${JTREG_CATEGORY}/$(uname -m)/${YEAR}/${DAY_OF_YEAR}/JTreport
mkdir -p out ${src_dir} ${work_dir} ${report_dir}
mv jdk8u/* ${src_dir}
blacklist=${WORKSPACE}/excludes.txt
jdk_problem_list=${src_dir}/${JTREG_CATEGORY}/test/ProblemList.txt
if [ -e $jdk_problem_list ]; then
cat $jdk_problem_list > ${blacklist}
fi
aarch64_exclude_file=${src_dir}/test/exclude_aarch64.txt
if [ -e ${aarch64_exclude_file} ]; then
cat ${aarch64_exclude_file} >> ${blacklist}
fi
touch ${blacklist}
echo "Blacklist"
echo "========="
cat ${blacklist}
echo "---------"
export JAVA_HOME=${WORKSPACE}/jdk8u${BUILD_TYPE}
export PATH=$JAVA_HOME/bin:${PATH}
PATH=${WORKSPACE}/jtreg/bin:${PATH}
which java
java -version
# Ignore error in jtreg final result.
set +e
java -jar jtreg/lib/jtreg.jar \
-dir:${src_dir}/${JTREG_CATEGORY}/test \
-testjdk:${IMAGE_DIR} \
-exclude:${blacklist} \
-conc:auto \
-r:${report_dir} \
-w:${work_dir} \
-timeout:2 \
-a -othervm -ignore:quiet -v1 ${JTREG_SUBCATEGORIES} | cat -n
# Kill leftover jstatd processes.
killall -9 jstatd
set -e
# We don't care for the .class files.
find ${work_dir} -name \*.class -exec rm {} \;
# Match the exact output of the cron-based scripts.
dest=$PERSIST/openjdk-jtreg-nightly-tests
sed_expr=$(echo s!${WORKSPACE}/${basedir}!$dest!g)
find ${work_dir} -type f -exec perl -p -i -e "$sed_expr" {} \;
find ${report_dir} -type f -exec perl -p -i -e "$sed_expr" {} \;
mkdir -p out
tar -C ${basedir} --show-transformed-names -acvf out/jtreg-results-${JTREG_CATEGORY}-${BUILD_TYPE}.tar.gz builds reports
publishers:
- archive:
artifacts: 'out/jtreg-results-${JTREG_CATEGORY}-${BUILD_TYPE}.tar.gz'