3 # Copyright (C) 2017 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
5 # SPDX-License-Identifier: LGPL-2.1-only
7 CURDIR
=$
(dirname "$0")/
8 TESTDIR
=$CURDIR/..
/..
/..
/
10 TEST_TMPDIR
=$
(mktemp
-d -t tmp.test_notif_kernel_buffer_usage_dir.XXXXXX
)
12 # Set TMPDIR for further call to mktemp
13 export TMPDIR
="$TEST_TMPDIR"
15 #This is needed since the testpoint create a pipe with the consumerd type suffixed
16 TESTPOINT_BASE_PATH
=$
(readlink
-f "$TEST_TMPDIR/lttng.t_p_n")
17 TESTPOINT_PIPE_PATH
=$
(mktemp
-u -t "lttng.t_p_n.XXXXXX")
18 TESTPOINT
=$
(readlink
-f "${CURDIR}/.libs/libpause_consumer.so")
19 TESTAPP_STATE_PATH
=$
(mktemp
-u -t "application_state.XXXXXXXXXX")
22 SESSION_NAME
="my_session"
23 CHANNEL_NAME
="my_channel"
27 # shellcheck source=../../../utils/utils.sh
28 source "$TESTDIR/utils/utils.sh"
29 # shellcheck source=./util_event_generator.sh
30 source "$CURDIR/util_event_generator.sh"
32 function test_buffer_usage_notification
34 local event_name
="lttng_test_filter_event"
37 local consumerd_pipe
=()
39 trace_path
=$
(mktemp
-d -t "tmp.${FUNCNAME[0]}_trace_path.XXXXXXX")
40 page_size
=$
(getconf PAGE_SIZE
)
42 create_lttng_session_notap
$SESSION_NAME "$trace_path"
44 lttng_enable_kernel_channel_notap
$SESSION_NAME $CHANNEL_NAME \
45 --subbuf-size="$page_size"
46 enable_kernel_lttng_event_notap
$SESSION_NAME $event_name $CHANNEL_NAME
48 kernel_event_generator generate_filter_events
"$TESTAPP_STATE_PATH" &
51 # This is needed since the testpoint create a pipe with the consumer
53 for f
in "$TESTPOINT_BASE_PATH"*; do
54 consumerd_pipe
+=("$f")
57 "$CURDIR/notification" 2 LTTNG_DOMAIN_KERNEL
$APP_PID "$TESTAPP_STATE_PATH" \
58 $SESSION_NAME $CHANNEL_NAME "${consumerd_pipe[@]}"
60 destroy_lttng_session_notap
$SESSION_NAME
62 kill -SIGUSR2 $APP_PID
63 wait $APP_PID 2> /dev
/null
66 check_skip_kernel_test
&&
68 plan_skip_all
"Skipping all tests."
73 validate_lttng_modules_present
77 # Used on sessiond launch.
78 LTTNG_SESSIOND_ENV_VARS
="LTTNG_TESTPOINT_ENABLE=1 \
79 CONSUMER_PAUSE_PIPE_PATH=${TESTPOINT_PIPE_PATH} \
80 LD_PRELOAD=${TESTPOINT}"
81 start_lttng_sessiond_notap
83 test_buffer_usage_notification
85 stop_lttng_sessiond_notap
88 rm -rf "${consumerd_pipe[@]}" 2> /dev
/null