jjb: Add dev_review jobs for lttng-ust-java-tests
[lttng-ci.git] / scripts / lttng-ust / lttng-ust-java-tests.sh
CommitLineData
eacb32f5
KS
1#!/bin/bash
2#
3# SPDX-FileCopyrightText: 2024 Kienan Stewart <kstewart@efficios.com>
4# SPDX-License-Identifier: GPL-2.0-or-later
5#
6set -exu
7
8# shellcheck disable=SC2317
9function cleanup
10{
11 killall lttng-sessiond
12}
13
14trap cleanup EXIT SIGINT SIGTERM
15
16LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}"
17LIBDIR="lib"
18LIBDIR_ARCH="$LIBDIR"
19
20# RHEL and SLES both use lib64 but don't bother shipping a default autoconf
21# site config that matches this.
22if [[ ( -f /etc/redhat-release || -f /etc/products.d/SLES.prod || -f /etc/yocto-release ) ]]; then
23 # Detect the userspace bitness in a distro agnostic way
24 if file -L /bin/bash | grep '64-bit' >/dev/null 2>&1; then
25 LIBDIR_ARCH="${LIBDIR}64"
26 fi
27fi
28
29# Work-around for the sles12sp5, sles15sp4 where the last successful builds were
30# completed before 'followSymlinks' was set to try, and is thus missing the
31# links for all the libraries.
32if [[ -f /etc/products.d/SLES.prod ]] ; then
33 pushd "${WORKSPACE}/deps/build/${LIBDIR_ARCH}"
34 while read -r LIB ; do
35 LIB_ANY=$(echo "${LIB}" | rev | cut -d'.' -f4- | rev)
36 LIB_MAJOR=$(echo "${LIB}" | rev | cut -d'.' -f3- | rev)
37 if [[ ! -f "${LIB_ANY}" ]]; then
38 ln -s "$(realpath "${LIB}")" "${LIB_ANY}"
39 fi
40 if [[ ! -f "${LIB_MAJOR}" ]] ; then
41 ln -s "$(realpath "${LIB}")" "${LIB_MAJOR}"
42 fi
43 done < <(find . -type f -iregex '.*\.so\.[0-9]+\.[0-9]+\.[0-9]+')
44 popd
45fi
46
47if [[ -z "${JAVA_HOME:-}" ]] ; then
48 export JAVA_HOME="/usr/lib/jvm/default-java"
49fi
50
51DEPS_JAVA="${WORKSPACE/deps/build/share/java}"
52export CLASSPATH="$DEPS_JAVA/lttng-ust-agent-all.jar:/usr/share/java/log4j-api.jar:/usr/share/java/log4j-core.jar:/usr/share/java/log4j-1.2.jar"
53
54LTTNG_UST_JAVA_TESTS_ENV=(
55 # Some ci nodes (eg. SLES12) don't have maven distributed by their
56 # package manager. As a result, the maven binary is deployed in
57 # '/opt/apache/maven/bin'.
58 PATH="${WORKSPACE}/deps/build/bin/:$PATH:/opt/apache/maven/bin/"
59 LD_LIBRARY_PATH="${WORKSPACE}/deps/build/${LIBDIR}/:${WORKSPACE}/deps/build/${LIBDIR_ARCH}:$LD_LIBRARY_PATH"
60 LTTNG_UST_DEBUG=1
61 LTTNG_CONSUMERD32_BIN="${WORKSPACE}/deps/build/${LIBDIR_ARCH}/lttng/libexec/lttng-consumerd"
62 LTTNG_CONSUMERD64_BIN="${WORKSPACE}/deps/build/${LIBDIR_ARCH}/lttng/libexec/lttng-consumerd"
63 LTTNG_SESSION_CONFIG_XSD_PATH="${WORKSPACE}/deps/build/share/xml/lttng"
64 BABELTRACE_PLUGIN_PATH="${WORKSPACE}/deps/build/${LIBDIR_ARCH}/babeltrace2/plugins"
65 LIBBABELTRACE2_PLUGIN_PROVIDER_DIR="${WORKSPACE}/deps/build/${LIBDIR_ARCH}/babeltrace2/plugin-providers"
66)
67LTTNG_UST_JAVA_TESTS_MAVEN_OPTS=(
68 "-Dmaven.test.failure.ignore=true"
69 "-Dcommon-jar-location=${WORKSPACE}/deps/build/share/java/lttng-ust-agent-common.jar"
70 "-Djul-jar-location=${WORKSPACE}/deps/build/share/java/lttng-ust-agent-jul.jar"
71 "-Dlog4j-jar-location=${WORKSPACE}/deps/build/share/java/lttng-ust-agent-log4j.jar"
72 "-Dlog4j2-jar-location=${WORKSPACE}/deps/build/share/java/lttng-ust-agent-log4j2.jar"
73 "-DargLine=-Djava.library.path=${WORKSPACE}/deps/build/${LIBDIR_ARCH}"
74 '-Dgroups=!domain:log4j2'
75)
76
77# Start the lttng-sessiond
78mkdir -p "${WORKSPACE}/log"
79env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" lttng-sessiond -b -vvv > "${WORKSPACE}/log/lttng-sessiond.log" 2>&1
80
81cd src/lttng-ust-java-tests
82env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" mvn -version
83env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" mvn "${LTTNG_UST_JAVA_TESTS_MAVEN_OPTS[@]}" clean verify
84exit "${?}"
This page took 0.025362 seconds and 4 git commands to generate.