3 # Copyright (C) - 2015 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
4 # Copyright (C) - 2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 # This library is free software; you can redistribute it and/or modify it under
7 # the terms of the GNU Lesser General Public License as published by the Free
8 # Software Foundation; version 2.1 of the License.
10 # This library is distributed in the hope that it will be useful, but WITHOUT
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
15 # You should have received a copy of the GNU Lesser General Public License
16 # along with this library; if not, write to the Free Software Foundation, Inc.,
17 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 TEST_DESC
="UST - Rotation destroy flush"
21 TESTDIR
=$CURDIR/..
/..
/..
22 SESSION_NAME
="rotation_destroy_flush"
24 TESTAPP_PATH
="$TESTDIR/utils/testapp"
25 TESTAPP_NAME
="gen-ust-events"
26 TESTAPP_BIN
="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
28 EVENT_NAME
="tp:tptest"
29 CHANNEL_NAME
="testchan"
30 PAGE_SIZE
=$
(getconf PAGE_SIZE
)
34 NUM_TESTS
=$
((15*$NR_ITER))
36 # Ensure the daemons invoke abort on error.
37 export LTTNG_ABORT_ON_ERROR
=1
39 source $TESTDIR/utils
/utils.sh
41 # MUST set TESTDIR before calling those functions
44 $TESTAPP_BIN $NUM_EVENT
45 ok $?
"Application done"
48 function signal_cleanup
()
50 diag
"*** Exiting ***"
54 function enable_ust_lttng_channel_size_limit
()
58 tracefile_size_limit
="$3"
60 test_name
="Enable channel $channel_name "
61 test_name
+="for session $sess_name: "
62 test_name
+="$tracefile_size_limit bytes tracefile limit"
64 $TESTDIR/..
/src
/bin
/lttng
/$LTTNG_BIN enable-channel \
65 -u $channel_name -s $sess_name --buffers-pid \
66 -C $tracefile_size_limit >/dev
/null
2>&1
71 function enable_ust_lttng_event_per_channel
()
77 test_name
="Enable event $event_name "
78 test_name
+="for session $sess_name "
79 test_name
+="in channel $channel_name"
81 $TESTDIR/..
/src
/bin
/lttng
/$LTTNG_BIN enable-event
"$event_name" \
82 -s $sess_name -u -c $channel_name >/dev
/null
2>&1
87 function test_rotation_destroy_flush_single
()
91 create_lttng_session_ok
$SESSION_NAME $TRACE_PATH
92 enable_ust_lttng_channel_size_limit \
93 $SESSION_NAME $CHANNEL_NAME $SIZE_LIMIT
94 enable_ust_lttng_event_per_channel \
95 $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
96 start_lttng_tracing_ok
$SESSION_NAME
99 stop_lttng_tracing_ok
$SESSION_NAME
100 destroy_lttng_session_ok
$SESSION_NAME
104 create_lttng_session_ok
$SESSION_NAME $TRACE_PATH
105 enable_ust_lttng_channel_size_limit \
106 $SESSION_NAME $CHANNEL_NAME $SIZE_LIMIT
107 enable_ust_lttng_event_per_channel \
108 $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
109 start_lttng_tracing_ok
$SESSION_NAME
112 destroy_lttng_session_ok
$SESSION_NAME
119 function test_rotation_destroy_flush
()
121 for a
in $
(seq 1 ${NR_ITER}); do
122 diag
"Iteration ${a}/${NR_ITER}"
123 test_rotation_destroy_flush_single
128 plan_tests
$NUM_TESTS
130 print_test_banner
"$TEST_DESC"
133 "test_rotation_destroy_flush"
136 TEST_COUNT
=${#TESTS[@]}
139 while [ "$i" -lt "$TEST_COUNT" ]; do
141 trap signal_cleanup SIGTERM SIGINT
143 TRACE_PATH
=$
(mktemp
-d)