- job:
name: jdk8-jcstress-test
project-type: matrix
defaults: global
description: |
This job runs the http://openjdk.java.net/projects/code-tools/jcstress/ tests.
Note: this test currently takes around 10 hours to complete
This project currently runs the "server" variant only due to the amount of time both tests would take to complete.
properties:
- authorization:
linaro:
- job-read
openjdk-members:
- job-extended-read
- job-build
- job-cancel
- build-discarder:
days-to-keep: 30
num-to-keep: 10
artifact-num-to-keep: 5
disabled: false
node: aarch64-06
display-name: 'OpenJDK 8 - Run jcstress tests'
parameters:
- string:
name: JCSTRESS_MODE
default: 'quick'
axes:
- axis:
type: user-defined
name: JVM_VARIANT
values:
- server
- client
- axis:
type: user-defined
name: BUILD_TYPE
values:
- release
- axis:
type: slave
name: label
values:
- aarch64-06
execution-strategy:
sequential: true
wrappers:
- workspace-cleanup:
dirmatch: false
- timestamps
- matrix-tie-parent:
node: aarch64-06
- timeout:
timeout: 900
builders:
- copyartifact:
project: jcstress-build
filter: 'tests-custom/target/jcstress.jar, tests-all/target/jcstress.jar'
target: incoming
flatten: false
# copyartifact is slow and the file is local
# copy instead of going back and forth between master <-> slave
# - copyartifact:
# project: jdk8-build-image
# filter: 'out/jdk8u-${JVM_VARIANT}-${BUILD_TYPE}.tar.gz'
# target: incoming
# flatten: true
- shell: |
#!/bin/bash
set -eu
TEST_TYPE=all
# client variant uses server with -XX:TieredStopAtLevel=1
# zero is a third possible value.
REAL_VARIANT=${JVM_VARIANT/client/server}
JCSTRESS_JAR=${WORKSPACE}/incoming/tests-${TEST_TYPE}/target/jcstress.jar
rm -rf jdk8u*
tar xf ~/workspace/jdk8-build-image/BUILD_TYPE/${BUILD_TYPE}/JVM_VARIANT/${REAL_VARIANT}/label/${NODE_NAME}/out/jdk8u-${REAL_VARIANT}-${BUILD_TYPE}.tar.gz
export JAVA_HOME=${WORKSPACE}/jdk8u-${REAL_VARIANT}-${BUILD_TYPE}
export PATH=${JAVA_HOME}/bin:${PATH}
which java
java -version
# XXX Don't fail the job if jcstress itself fails.
set +e
java -jar ${JCSTRESS_JAR} -m ${JCSTRESS_MODE}
test_result=$?
set -e
rm -rf out
mkdir out
out_dirname=jcstress-results-${JVM_VARIANT}-${BUILD_TYPE}
rm -rf ${out_dirname}
mkdir -p ${out_dirname}
cp jcstress-results*.bin.gz ${out_dirname}
cp -a results ${out_dirname}
tar czvf out/${out_dirname}.tar.gz ${out_dirname}
publishers:
- archive:
artifacts: 'out/jcstress-results-*.tar.gz'
- html-publisher:
name: 'HTML Report'
dir: 'results'
files: 'index.html'
keep-all: true