1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
|
#!/bin/bash
#
# SPDX-FileCopyrightText: 2023 Kienan Stewart <kstewart@efficios.com>
#
# SPDX-License-Identifier: LGPL-2.1-only
#
TEST_DESC="Verifies that the sessiond starts (or doesn't start) appropriately depending on the combination of path settings in conjuction with LTTNG_UST_ALLOW_BLOCKING and '--blocking-timeout'"
CURDIR="$(dirname "${0}")"
TESTDIR="${CURDIR}/../../../"
NUM_TESTS=34
# shellcheck source=../../../utils/utils.sh
source "${TESTDIR}/utils/utils.sh"
TESTAPP="${TESTDIR}/utils/testapp/gen-ust-events/gen-ust-events"
SESSION_NAME="ust-blocking"
CHANNEL_NAME="ust-blocking"
EVENT_NAMES="tp:tptest"
function test_blocking_mode_app_path()
{
APP_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.app.XXXXXX")"
TRACE_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.trace.XXXXXX")"
env_vars=(
LTTNG_UST_ALLOW_BLOCKING=1
LTTNG_UST_APP_PATH="${APP_PATH}"
)
# shellcheck disable=SC2119
LTTNG_SESSIOND_ENV_VARS="${env_vars[*]}" start_lttng_sessiond
create_lttng_session_ok "${SESSION_NAME}" "${TRACE_PATH}"
enable_ust_lttng_channel_ok "${SESSION_NAME}" "${CHANNEL_NAME}" "--blocking-timeout=inf"
enable_ust_lttng_event_ok "${SESSION_NAME}" "--all" "${CHANNEL_NAME}"
start_lttng_tracing_ok "${SESSION_NAME}"
"${TESTAPP}" -i 100 -w 0
stop_lttng_tracing_ok "${SESSION_NAME}"
destroy_lttng_session_ok "${SESSION_NAME}" --no-wait
validate_trace_count "${EVENT_NAMES}" "${TRACE_PATH}" 100
# shellcheck disable=SC2119
stop_lttng_sessiond
rm -rf "${APP_PATH}" "${TRACE_PATH}"
}
function test_blocking_mode_default_paths()
{
diag "Test starting sessiond in blocking with neither LTTNG_UST_APP_PATH nor LTTNG_UST_CTL_PATH set"
env_vars=(
LTTNG_UST_ALLOW_BLOCKING=1
)
# shellcheck disable=SC2119
LTTNG_SESSIOND_ENV_VARS="${env_vars[*]}" start_lttng_sessiond_fail
# shellcheck disable=SC2119
stop_lttng_sessiond_cleanup
}
function test_blocking_mode_ctl_path()
{
diag "Test starting sessiond in blocking with LTTNG_UST_CTL_PATH set"
CTL_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.ctl.XXXXXX")"
TRACE_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.trace.XXXXXX")"
env_vars=(
LTTNG_UST_ALLOW_BLOCKING=1
LTTNG_UST_CTL_PATH="${CTL_PATH}"
)
# shellcheck disable=SC2119
LTTNG_SESSIOND_ENV_VARS="${env_vars[*]}" start_lttng_sessiond
create_lttng_session_ok "${SESSION_NAME}" "${TRACE_PATH}"
enable_ust_lttng_channel_ok "${SESSION_NAME}" "${CHANNEL_NAME}" "--blocking-timeout=inf"
enable_ust_lttng_event_ok "${SESSION_NAME}" "--all" "${CHANNEL_NAME}"
start_lttng_tracing_ok "${SESSION_NAME}"
LTTNG_UST_APP_PATH="${CTL_PATH}" "${TESTAPP}" -i 100 -w 0
stop_lttng_tracing_ok "${SESSION_NAME}"
destroy_lttng_session_ok "${SESSION_NAME}" --no-wait
validate_trace_count "${EVENT_NAMES}" "${TRACE_PATH}" 100
# shellcheck disable=SC2119
stop_lttng_sessiond
rm -rf "${CTL_PATH}" "${TRACE_PATH}"
}
function test_blocking_mode_with_different_paths()
{
diag "Test starting sessiond in blocking with different LTTNG_UST_APP_PATH and LTTNG_UST_CTL_PATHs"
CTL_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.ctl.XXXXXX")"
APP_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.app.XXXXXX")"
TRACE_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.trace.XXXXXX")"
env_vars=(
LTTNG_UST_ALLOW_BLOCKING=1
LTTNG_UST_CTL_PATH="${CTL_PATH}"
LTTNG_UST_APP_PATH="${APP_PATH}"
)
# shellcheck disable=SC2119
LTTNG_SESSIOND_ENV_VARS="${env_vars[*]}" start_lttng_sessiond
create_lttng_session_ok "${SESSION_NAME}" "${TRACE_PATH}"
enable_ust_lttng_channel_ok "${SESSION_NAME}" "${CHANNEL_NAME}" "--blocking-timeout=inf"
enable_ust_lttng_event_ok "${SESSION_NAME}" "--all" "${CHANNEL_NAME}"
start_lttng_tracing_ok "${SESSION_NAME}"
LTTNG_UST_APP_PATH="${CTL_PATH}" "${TESTAPP}" -i 100 -w 0
stop_lttng_tracing_ok "${SESSION_NAME}"
destroy_lttng_session_ok "${SESSION_NAME}" --no-wait
validate_trace_count "${EVENT_NAMES}" "${TRACE_PATH}" 100
# shellcheck disable=SC2119
stop_lttng_sessiond
rm -rf "${CTL_PATH}" "${TRACE_PATH}" "${APP_PATH}"
}
function test_blocking_mode_with_same_paths()
{
diag "Test starting sessiond in blocking with the same LTTNG_UST_APP_PATH and LTTNG_UST_CTL_PATHs"
CTL_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.XXXXXX")"
env_vars=(
LTTNG_UST_CTL_PATH="${CTL_PATH}"
LTTNG_UST_APP_PATH="${CTL_PATH}"
LTTNG_UST_ALLOW_BLOCKING=1
)
# shellcheck disable=SC2119
LTTNG_SESSIOND_ENV_VARS="${env_vars[*]}" start_lttng_sessiond_fail
# shellcheck disable=SC2119
stop_lttng_sessiond_cleanup
rm -rf "${CTL_PATH}"
}
function test_blocking_mode_app_path_is_default_ctl_path() {
diag "Test starting sessiond when it's app path happens to match the default ctl path"
APP_PATH="$(lttng_default_rundir)"
env_vars=(
LTTNG_UST_APP_PATH="${APP_PATH}"
LTTNG_UST_ALLOW_BLOCKING=1
)
# shellcheck disable=SC2119
LTTNG_SESSIOND_ENV_VARS="${env_vars[*]}" start_lttng_sessiond_fail
# shellcheck disable=SC2119
stop_lttng_sessiond_cleanup
}
function test_blocking_mode_ctl_path_is_default_app_path() {
diag "Test starting sessiond when it's ctl path happens to match the default ctl path"
CTL_PATH="$(lttng_default_rundir)"
env_vars=(
LTTNG_UST_CTL_PATH="${APP_PATH}"
LTTNG_UST_ALLOW_BLOCKING=1
)
# shellcheck disable=SC2119
LTTNG_SESSIOND_ENV_VARS="${env_vars[*]}" start_lttng_sessiond_fail
# shellcheck disable=SC2119
stop_lttng_sessiond_cleanup
}
TESTS=(
test_blocking_mode_default_paths
test_blocking_mode_app_path
test_blocking_mode_ctl_path
test_blocking_mode_with_same_paths
test_blocking_mode_with_different_paths
test_blocking_mode_app_path_is_default_ctl_path
test_blocking_mode_ctl_path_is_default_app_path
)
plan_tests "${NUM_TESTS}"
print_test_banner "${TEST_DESC}"
for TEST in "${TESTS[@]}" ; do
"${TEST}"
done
|