Commit | Line | Data |
---|---|---|
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 | # | |
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 "${?}" |