tests: Move to kernel style SPDX license identifiers
[lttng-tools.git] / tests / regression / ust / rotation-destroy-flush / test_rotation_destroy_flush
1 #!/bin/bash
2 #
3 # Copyright (C) 2015 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
4 # Copyright (C) 2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 #
6 # SPDX-License-Identifier: LGPL-2.1-only
7
8 TEST_DESC="UST - Rotation destroy flush"
9
10 CURDIR=$(dirname $0)/
11 TESTDIR=$CURDIR/../../..
12 SESSION_NAME="rotation_destroy_flush"
13
14 TESTAPP_PATH="$TESTDIR/utils/testapp"
15 TESTAPP_NAME="gen-ust-events"
16 TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
17 NUM_EVENT=1000000
18 EVENT_NAME="tp:tptest"
19 CHANNEL_NAME="testchan"
20 PAGE_SIZE=$(getconf PAGE_SIZE)
21 SIZE_LIMIT=$PAGE_SIZE
22
23 NR_ITER=10
24 NUM_TESTS=$((15*$NR_ITER))
25
26 # Ensure the daemons invoke abort on error.
27 export LTTNG_ABORT_ON_ERROR=1
28
29 source $TESTDIR/utils/utils.sh
30
31 # MUST set TESTDIR before calling those functions
32 function run_app()
33 {
34 $TESTAPP_BIN -i $NUM_EVENT
35 ok $? "Application done"
36 }
37
38 function signal_cleanup()
39 {
40 diag "*** Exiting ***"
41 full_cleanup
42 }
43
44 function enable_ust_lttng_channel_size_limit ()
45 {
46 sess_name="$1"
47 channel_name="$2"
48 tracefile_size_limit="$3"
49
50 test_name="Enable channel $channel_name "
51 test_name+="for session $sess_name: "
52 test_name+="$tracefile_size_limit bytes tracefile limit"
53
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
57
58 ok $? "$test_name"
59 }
60
61 function enable_ust_lttng_event_per_channel ()
62 {
63 sess_name="$1"
64 event_name="$2"
65 channel_name="$3"
66
67 test_name="Enable event $event_name "
68 test_name+="for session $sess_name "
69 test_name+="in channel $channel_name"
70
71 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" \
72 -s $sess_name -u -c $channel_name >/dev/null 2>&1
73
74 ok $? "$test_name"
75 }
76
77 function test_rotation_destroy_flush_single()
78 {
79 start_lttng_sessiond
80
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
87 run_app
88 # stop and destroy
89 stop_lttng_tracing_ok $SESSION_NAME
90 destroy_lttng_session_ok $SESSION_NAME
91
92 rm -rf $TRACE_PATH
93
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
100 run_app
101 # destroy only
102 destroy_lttng_session_ok $SESSION_NAME
103
104 rm -rf $TRACE_PATH
105
106 stop_lttng_sessiond
107 }
108
109 function test_rotation_destroy_flush()
110 {
111 for a in $(seq 1 ${NR_ITER}); do
112 diag "Iteration ${a}/${NR_ITER}"
113 test_rotation_destroy_flush_single
114 done
115 }
116
117
118 plan_tests $NUM_TESTS
119
120 print_test_banner "$TEST_DESC"
121
122 TESTS=(
123 "test_rotation_destroy_flush"
124 )
125
126 TEST_COUNT=${#TESTS[@]}
127 i=0
128
129 while [ "$i" -lt "$TEST_COUNT" ]; do
130
131 trap signal_cleanup SIGTERM SIGINT
132
133 TRACE_PATH=$(mktemp -d)
134
135 # Execute test
136 ${TESTS[$i]}
137
138 let "i++"
139 done
This page took 0.032347 seconds and 4 git commands to generate.