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
|
#!/bin/bash
#
# SPDX-FileCopyrightText: 2023 Kienan Stewart <kstewart@efficios.com>
#
# SPDX-License-Identifier: LGPL-2.1-only
#
TEST_DESC="Verifies the behaviour of the sessiond and applications with multiple LTTNG_UST_APP_PATHs and multiple LTTNG_UST_CTL_PATHS, including the verification oPython agents"
CURDIR="$(dirname "${0}")"
TESTDIR="${CURDIR}/../../../"
# shellcheck source=../../../utils/utils.sh
source "${TESTDIR}/utils/utils.sh"
TESTAPP="${TESTDIR}/utils/testapp/gen-ust-events/gen-ust-events"
EVENT_NAMES="tp:tptest"
SESSION_NAME="ust-app-ctl-path-separator"
CHANNEL_NAME="ust-app-ctl-path-separator"
NUM_TESTS=20
#
# There is no escaping of the path separator
#
function test_ctl_path_with_separators
{
CTL_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.ctl.XXXXXX")"
CTL_PATH2="$(mktemp -d -t "tmp.${FUNCNAME[0]}.ctl2.XXXXXX")"
TRACE_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.trace.XXXXXX")"
# The current implementation should ignore paths other than the first
env_vars=(
LTTNG_UST_CTL_PATH="${CTL_PATH}:${CTL_PATH2}"
)
# 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}"
enable_ust_lttng_event_ok "${SESSION_NAME}" "${EVENT_NAMES}" "${CHANNEL_NAME}"
start_lttng_tracing_ok "${SESSION_NAME}"
LTTNG_UST_APP_PATH="${CTL_PATH}" "${TESTAPP}" -i 100 -w 0
LTTNG_UST_APP_PATH="${CTL_PATH2}" "${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
# Cleanup
rm -rf "${CTL_PATH}" "${CTL_PATH2}" "${TRACE_PATH}"
}
function test_app_path_with_separators
{
# The current implementation should ignore paths other than the first
CTL_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.ctl.XXXXXX")"
CTL_PATH2="$(mktemp -d -t "tmp.${FUNCNAME[0]}.ctl2.XXXXXX")"
TRACE_PATH="$(mktemp -d -t "tmp.${FUNCNAME[0]}.trace.XXXXXX")"
env_vars=(
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}"
enable_ust_lttng_event_ok "${SESSION_NAME}" "${EVENT_NAMES}" "${CHANNEL_NAME}"
start_lttng_tracing_ok "${SESSION_NAME}"
LTTNG_UST_APP_PATH="${CTL_PATH}:${CTL_PATH2}" "${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
# Cleanup
rm -rf "${CTL_PATH}" "${CTL_PATH2}" "${TRACE_PATH}"
}
plan_tests "${NUM_TESTS}"
print_test_banner "${TEST_DESC}"
bail_out_if_no_babeltrace
TESTS=(
test_app_path_with_separators
test_ctl_path_with_separators
)
for TEST in "${TESTS[@]}" ; do
"${TEST}"
done
|