jjb: Add dev_review jobs for lttng-ust-java-tests
[lttng-ci.git] / scripts / lttng-ust / lttng-ust-java-tests.sh
1 #!/bin/bash
2 #
3 # SPDX-FileCopyrightText: 2024 Kienan Stewart <kstewart@efficios.com>
4 # SPDX-License-Identifier: GPL-2.0-or-later
5 #
6 set -exu
7
8 # shellcheck disable=SC2317
9 function cleanup
10 {
11 killall lttng-sessiond
12 }
13
14 trap cleanup EXIT SIGINT SIGTERM
15
16 LD_LIBRARY_PATH="${LD_LIBRARY_PATH:-}"
17 LIBDIR="lib"
18 LIBDIR_ARCH="$LIBDIR"
19
20 # RHEL and SLES both use lib64 but don't bother shipping a default autoconf
21 # site config that matches this.
22 if [[ ( -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
27 fi
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.
32 if [[ -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
45 fi
46
47 if [[ -z "${JAVA_HOME:-}" ]] ; then
48 export JAVA_HOME="/usr/lib/jvm/default-java"
49 fi
50
51 DEPS_JAVA="${WORKSPACE/deps/build/share/java}"
52 export 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
54 LTTNG_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 )
67 LTTNG_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
78 mkdir -p "${WORKSPACE}/log"
79 env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" lttng-sessiond -b -vvv > "${WORKSPACE}/log/lttng-sessiond.log" 2>&1
80
81 cd src/lttng-ust-java-tests
82 env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" mvn -version
83 env "${LTTNG_UST_JAVA_TESTS_ENV[@]}" mvn "${LTTNG_UST_JAVA_TESTS_MAVEN_OPTS[@]}" clean verify
84 exit "${?}"
This page took 0.030499 seconds and 4 git commands to generate.