port: add support for BSD mktemp
[lttng-tools.git] / tests / regression / ust / rotation-destroy-flush / test_rotation_destroy_flush
CommitLineData
ced06804
MD
1#!/bin/bash
2#
9d16b343
MJ
3# Copyright (C) 2015 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
4# Copyright (C) 2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
ced06804 5#
9d16b343
MJ
6# SPDX-License-Identifier: LGPL-2.1-only
7
ced06804
MD
8TEST_DESC="UST - Rotation destroy flush"
9
10CURDIR=$(dirname $0)/
11TESTDIR=$CURDIR/../../..
12SESSION_NAME="rotation_destroy_flush"
13
14TESTAPP_PATH="$TESTDIR/utils/testapp"
15TESTAPP_NAME="gen-ust-events"
16TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
17NUM_EVENT=1000000
18EVENT_NAME="tp:tptest"
19CHANNEL_NAME="testchan"
20PAGE_SIZE=$(getconf PAGE_SIZE)
21SIZE_LIMIT=$PAGE_SIZE
22
23NR_ITER=10
24NUM_TESTS=$((15*$NR_ITER))
25
26# Ensure the daemons invoke abort on error.
27export LTTNG_ABORT_ON_ERROR=1
28
29source $TESTDIR/utils/utils.sh
30
31# MUST set TESTDIR before calling those functions
32function run_app()
33{
6c4a91d6 34 $TESTAPP_BIN -i $NUM_EVENT
ced06804
MD
35 ok $? "Application done"
36}
37
38function signal_cleanup()
39{
40 diag "*** Exiting ***"
3be453c9 41 full_cleanup
ced06804
MD
42}
43
44function 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
61function 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
77function 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
109function 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
118plan_tests $NUM_TESTS
119
120print_test_banner "$TEST_DESC"
121
122TESTS=(
123 "test_rotation_destroy_flush"
124)
125
126TEST_COUNT=${#TESTS[@]}
127i=0
128
129while [ "$i" -lt "$TEST_COUNT" ]; do
130
131 trap signal_cleanup SIGTERM SIGINT
132
8d5a3312 133 TRACE_PATH=$(mktemp -d -t tmp.test_rotation_destroy_flush.XXXXXX)
ced06804
MD
134
135 # Execute test
136 ${TESTS[$i]}
137
138 let "i++"
139done
This page took 0.044902 seconds and 4 git commands to generate.