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
|
#!/bin/bash
#
# SPDX-FileCopyrightText: 2019 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
#
# SPDX-License-Identifier: LGPL-2.1-only
TEST_DESC="Streaming Base Path Override - User space tracing"
CURDIR=$(dirname "$0")/
TESTDIR=$CURDIR/../../..
TESTAPP_PATH="$TESTDIR/utils/testapp"
TESTAPP_NAME="gen-ust-events"
TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
EVENT_NAME="tp:tptest"
TRACE_PATH=$(mktemp -d -t tmp.test_base_path_ust_trace_path.XXXXXX)
NUM_TESTS=42
source "$TESTDIR/utils/utils.sh"
if [ ! -x "$TESTAPP_BIN" ]; then
BAIL_OUT "No UST events binary detected."
fi
function ust_app_stream_base_path ()
{
local session_name="ust_app_stream_base_path"
local base_path="my/custom/path1"
diag "Test base path override for trace streaming"
create_lttng_session_uri $session_name net://localhost/$base_path
enable_ust_lttng_event_ok $session_name $EVENT_NAME
start_lttng_tracing_ok $session_name
$TESTAPP_BIN > /dev/null 2>&1
stop_lttng_tracing_ok $session_name
destroy_lttng_session_ok $session_name
# validate test
validate_trace_path_ust_uid_network "$TRACE_PATH" "" "$base_path"
if validate_trace $EVENT_NAME "$TRACE_PATH/$HOSTNAME/$base_path"; then
# only delete if successful
rm -rf "$TRACE_PATH"
fi
}
function ust_app_snapshot_create_base_path ()
{
local session_name="ust_app_snapshot_create_base_path"
local base_path="my/custom/path2"
diag "Test base path override for remote trace snapshot (URI on create)"
create_lttng_session_uri $session_name net://localhost/$base_path \
--snapshot
enable_ust_lttng_event_ok $session_name $EVENT_NAME
start_lttng_tracing_ok $session_name
$TESTAPP_BIN > /dev/null 2>&1
stop_lttng_tracing_ok $session_name
lttng_snapshot_record $session_name
destroy_lttng_session_ok $session_name
# validate test
validate_trace_path_ust_uid_snapshot_network "$TRACE_PATH" "" "snapshot-1" 0 "$base_path"
if validate_trace $EVENT_NAME "$TRACE_PATH/$HOSTNAME/$base_path"; then
# only delete if successful
rm -rf "$TRACE_PATH"
fi
}
function ust_app_snapshot_base_path ()
{
local session_name="ust_app_snapshot_base_path"
local base_path="my/custom/path3"
diag "Test base path override for remote trace snapshot (URI on snapshot)"
create_lttng_session_no_output $session_name --snapshot
enable_ust_lttng_event_ok $session_name $EVENT_NAME
start_lttng_tracing_ok $session_name
$TESTAPP_BIN > /dev/null 2>&1
stop_lttng_tracing_ok $session_name
lttng_snapshot_record $session_name net://localhost/$base_path
destroy_lttng_session_ok $session_name
# validate test
validate_trace_path_ust_uid_snapshot_network "$TRACE_PATH" "" "snapshot-0" 0 "$base_path"
if validate_trace $EVENT_NAME "$TRACE_PATH/$HOSTNAME/$base_path"; then
# only delete if successful
rm -rf "$TRACE_PATH"
fi
}
function ust_app_snapshot_add_output_base_path ()
{
local session_name="ust_app_snapshot_add_output_base_path"
local base_path="my/custom/path4"
diag "Test base path override for remote trace snapshot (URI on add-output)"
create_lttng_session_no_output $session_name --snapshot
enable_ust_lttng_event_ok $session_name $EVENT_NAME
start_lttng_tracing_ok $session_name
$TESTAPP_BIN > /dev/null 2>&1
stop_lttng_tracing_ok $session_name
lttng_snapshot_add_output_ok $session_name net://localhost/$base_path
lttng_snapshot_record $session_name
destroy_lttng_session_ok $session_name
# validate test
validate_trace_path_ust_uid_snapshot_network "$TRACE_PATH" "" "snapshot-1" 0 "$base_path"
if validate_trace $EVENT_NAME "$TRACE_PATH/$HOSTNAME/$base_path"; then
# only delete if successful
rm -rf "$TRACE_PATH"
fi
}
function ust_app_stream_base_path_via_load ()
{
local session_name="load-stream-extra-path"
local base_path="my/custom/path5"
diag "Test base path override for trace streaming using lttng load"
lttng_load_ok "-i $CURDIR/$session_name.lttng"
start_lttng_tracing_ok $session_name
$TESTAPP_BIN > /dev/null 2>&1
stop_lttng_tracing_ok $session_name
destroy_lttng_session_ok $session_name
# validate test
validate_trace_path_ust_uid_network "$TRACE_PATH" "" "$base_path"
if validate_trace $EVENT_NAME "$TRACE_PATH/$HOSTNAME/$base_path"; then
# only delete if successful
rm -rf "$TRACE_PATH"
fi
}
plan_tests $NUM_TESTS
print_test_banner "$TEST_DESC"
bail_out_if_no_babeltrace
start_lttng_relayd "-o $TRACE_PATH"
start_lttng_sessiond
tests=( ust_app_stream_base_path
ust_app_snapshot_create_base_path
ust_app_snapshot_base_path
ust_app_snapshot_add_output_base_path
ust_app_stream_base_path_via_load
)
for fct_test in "${tests[@]}";
do
${fct_test}
done
stop_lttng_sessiond
stop_lttng_relayd
|