3 # Copyright (C) 2015 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
4 # Copyright (C) 2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 # SPDX-License-Identifier: LGPL-2.1-only
8 TEST_DESC
="UST - Rotation destroy flush"
11 TESTDIR
=$CURDIR/..
/..
/..
12 SESSION_NAME
="rotation_destroy_flush"
14 TESTAPP_PATH
="$TESTDIR/utils/testapp"
15 TESTAPP_NAME
="gen-ust-events"
16 TESTAPP_BIN
="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
18 EVENT_NAME
="tp:tptest"
19 CHANNEL_NAME
="testchan"
20 PAGE_SIZE
=$
(getconf PAGE_SIZE
)
24 NUM_TESTS
=$
((15*$NR_ITER))
26 # Ensure the daemons invoke abort on error.
27 export LTTNG_ABORT_ON_ERROR
=1
29 source $TESTDIR/utils
/utils.sh
31 # MUST set TESTDIR before calling those functions
34 $TESTAPP_BIN -i $NUM_EVENT
35 ok $?
"Application done"
38 function signal_cleanup
()
40 diag
"*** Exiting ***"
44 function enable_ust_lttng_channel_size_limit
()
48 tracefile_size_limit
="$3"
50 test_name
="Enable channel $channel_name "
51 test_name
+="for session $sess_name: "
52 test_name
+="$tracefile_size_limit bytes tracefile limit"
54 $TESTDIR/..
/src
/bin
/lttng
/$LTTNG_BIN enable-channel \
55 -u $channel_name -s $sess_name --buffers-pid \
56 -C $tracefile_size_limit >/dev
/null
2>&1
61 function enable_ust_lttng_event_per_channel
()
67 test_name
="Enable event $event_name "
68 test_name
+="for session $sess_name "
69 test_name
+="in channel $channel_name"
71 $TESTDIR/..
/src
/bin
/lttng
/$LTTNG_BIN enable-event
"$event_name" \
72 -s $sess_name -u -c $channel_name >/dev
/null
2>&1
77 function test_rotation_destroy_flush_single
()
81 create_lttng_session_ok
$SESSION_NAME $TRACE_PATH
82 enable_ust_lttng_channel_size_limit \
83 $SESSION_NAME $CHANNEL_NAME $SIZE_LIMIT
84 enable_ust_lttng_event_per_channel \
85 $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
86 start_lttng_tracing_ok
$SESSION_NAME
89 stop_lttng_tracing_ok
$SESSION_NAME
90 destroy_lttng_session_ok
$SESSION_NAME
94 create_lttng_session_ok
$SESSION_NAME $TRACE_PATH
95 enable_ust_lttng_channel_size_limit \
96 $SESSION_NAME $CHANNEL_NAME $SIZE_LIMIT
97 enable_ust_lttng_event_per_channel \
98 $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
99 start_lttng_tracing_ok
$SESSION_NAME
102 destroy_lttng_session_ok
$SESSION_NAME
109 function test_rotation_destroy_flush
()
111 for a
in $
(seq 1 ${NR_ITER}); do
112 diag
"Iteration ${a}/${NR_ITER}"
113 test_rotation_destroy_flush_single
118 plan_tests
$NUM_TESTS
120 print_test_banner
"$TEST_DESC"
123 "test_rotation_destroy_flush"
126 TEST_COUNT
=${#TESTS[@]}
129 while [ "$i" -lt "$TEST_COUNT" ]; do
131 trap signal_cleanup SIGTERM SIGINT
133 TRACE_PATH
=$
(mktemp
--tmpdir -d -t tmp.test_rotation_destroy_flush.XXXXXX
)