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 ***"
55 function enable_ust_lttng_channel_size_limit
()
59 tracefile_size_limit
="$3"
61 test_name
="Enable channel $channel_name "
62 test_name
+="for session $sess_name: "
63 test_name
+="$tracefile_size_limit bytes tracefile limit"
65 $TESTDIR/..
/src
/bin
/lttng
/$LTTNG_BIN enable-channel \
66 -u $channel_name -s $sess_name --buffers-pid \
67 -C $tracefile_size_limit >/dev
/null
2>&1
72 function enable_ust_lttng_event_per_channel
()
78 test_name
="Enable event $event_name "
79 test_name
+="for session $sess_name "
80 test_name
+="in channel $channel_name"
82 $TESTDIR/..
/src
/bin
/lttng
/$LTTNG_BIN enable-event
"$event_name" \
83 -s $sess_name -u -c $channel_name >/dev
/null
2>&1
88 function test_rotation_destroy_flush_single
()
92 create_lttng_session_ok
$SESSION_NAME $TRACE_PATH
93 enable_ust_lttng_channel_size_limit \
94 $SESSION_NAME $CHANNEL_NAME $SIZE_LIMIT
95 enable_ust_lttng_event_per_channel \
96 $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
97 start_lttng_tracing_ok
$SESSION_NAME
100 stop_lttng_tracing_ok
$SESSION_NAME
101 destroy_lttng_session_ok
$SESSION_NAME
105 create_lttng_session_ok
$SESSION_NAME $TRACE_PATH
106 enable_ust_lttng_channel_size_limit \
107 $SESSION_NAME $CHANNEL_NAME $SIZE_LIMIT
108 enable_ust_lttng_event_per_channel \
109 $SESSION_NAME $EVENT_NAME $CHANNEL_NAME
110 start_lttng_tracing_ok
$SESSION_NAME
113 destroy_lttng_session_ok
$SESSION_NAME
120 function test_rotation_destroy_flush
()
122 for a
in $
(seq 1 ${NR_ITER}); do
123 diag
"Iteration ${a}/${NR_ITER}"
124 test_rotation_destroy_flush_single
129 plan_tests
$NUM_TESTS
131 print_test_banner
"$TEST_DESC"
134 "test_rotation_destroy_flush"
137 TEST_COUNT
=${#TESTS[@]}
140 while [ "$i" -lt "$TEST_COUNT" ]; do
142 trap signal_cleanup SIGTERM SIGINT
144 TRACE_PATH
=$
(mktemp
-d)