tests: Move to kernel style SPDX license identifiers
[lttng-tools.git] / tests / regression / tools / regen-metadata / test_ust
CommitLineData
801236b0
JD
1#!/bin/bash
2#
9d16b343 3# Copyright (C) 2015 Julien Desfossez <jdesfossez@efficios.com>
801236b0 4#
9d16b343
MJ
5# SPDX-License-Identifier: LGPL-2.1-only
6
801236b0
JD
7TEST_DESC="Streaming - User space tracing"
8
9CURDIR=$(dirname $0)/
10TESTDIR=$CURDIR/../../..
11NR_ITER=1
12NR_USEC_WAIT=0
13TESTAPP_PATH="$TESTDIR/utils/testapp"
14TESTAPP_NAME="gen-ust-events"
15TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
16SESSION_NAME="stream"
17EVENT_NAME="tp:tptest"
801236b0
JD
18
19TRACE_PATH=$(mktemp -d)
20
21NUM_TESTS=33
22
23source $TESTDIR/utils/utils.sh
24
25if [ ! -x "$TESTAPP_BIN" ]; then
26 BAIL_OUT "No UST events binary detected."
27fi
28
801236b0
JD
29function enable_channel_per_pid()
30{
31 sess_name=$1
32 channel_name=$2
33
34 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel --buffers-pid -u $channel_name -s $sess_name >/dev/null 2>&1
35 ok $? "Enable channel $channel_name per PID for session $sess_name"
36}
37
38# MUST set TESTDIR before calling those functions
39
40function test_ust_streaming ()
41{
42 local file_sync_after_first=$(mktemp -u)
43 local file_sync_before_last=$(mktemp -u)
44
45 diag "Test UST streaming with metadata regeneration"
f0d43d3d 46 create_lttng_session_uri $SESSION_NAME net://localhost
801236b0
JD
47 enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME
48
6c4a91d6
MD
49 $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT \
50 --sync-after-first-event ${file_sync_after_first} \
51 --sync-before-last-event ${file_sync_before_last} >/dev/null 2>&1 &
801236b0
JD
52
53 start_lttng_tracing_ok $SESSION_NAME
54
55 touch ${file_sync_before_last}
56
57 # Wait for the applications started in background
58 wait
eded6438 59 regenerate_metadata_ok $SESSION_NAME
801236b0
JD
60
61 stop_lttng_tracing_ok $SESSION_NAME
62 destroy_lttng_session_ok $SESSION_NAME
63 # Validate test
64 validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$SESSION_NAME*
65 if [ $? -eq 0 ]; then
66 # Only delete if successful
67 rm -rf $TRACE_PATH
68 fi
69 rm -f ${file_sync_after_first}
70 rm -f ${file_sync_before_last}
71}
72
73function test_ust_local ()
74{
75 local file_sync_after_first=$(mktemp -u)
76 local file_sync_before_last=$(mktemp -u)
77
78 diag "Test UST local with metadata regeneration"
79 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
80 enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME
81
6c4a91d6
MD
82 $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT \
83 --sync-after-first-event ${file_sync_after_first} \
84 --sync-before-last-event ${file_sync_before_last} > /dev/null 2>&1 &
801236b0
JD
85
86 start_lttng_tracing_ok $SESSION_NAME
87
88 touch ${file_sync_before_last}
89
90 # Wait for the applications started in background
91 wait
eded6438 92 regenerate_metadata_ok $SESSION_NAME
801236b0
JD
93
94 stop_lttng_tracing_ok $SESSION_NAME
95 destroy_lttng_session_ok $SESSION_NAME
96 # Validate test
97 validate_trace $EVENT_NAME $TRACE_PATH
98 if [ $? -eq 0 ]; then
99 # Only delete if successful
100 rm -rf $TRACE_PATH
101 fi
102 rm -f ${file_sync_after_first}
103 rm -f ${file_sync_before_last}
104}
105
106function test_ust_pid ()
107{
108 local file_sync_after_first=$(mktemp -u)
109 local file_sync_before_last=$(mktemp -u)
110
111 diag "Test UST per-pid with metadata regeneration (expect failure)"
112 create_lttng_session_ok $SESSION_NAME $TRACE_PATH
113 enable_channel_per_pid $SESSION_NAME "channel0"
114 enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME "channel0"
115
6c4a91d6
MD
116 $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT \
117 --sync-after-first-event ${file_sync_after_first} \
118 --sync-before-last-event ${file_sync_before_last} >/dev/null 2>&1 &
801236b0
JD
119
120 start_lttng_tracing_ok $SESSION_NAME
121
122 touch ${file_sync_before_last}
123
124 # Wait for the applications started in background
125 wait
eded6438 126 regenerate_metadata_fail $SESSION_NAME
801236b0
JD
127
128 stop_lttng_tracing_ok $SESSION_NAME
129 destroy_lttng_session_ok $SESSION_NAME
130 # Validate test
131 validate_trace $EVENT_NAME $TRACE_PATH
132 if [ $? -eq 0 ]; then
133 # Only delete if successful
134 rm -rf $TRACE_PATH
135 fi
136 rm -f ${file_sync_after_first}
137 rm -f ${file_sync_before_last}
138}
139
140function test_ust_live ()
141{
142 local file_sync_after_first=$(mktemp -u)
143 local file_sync_before_last=$(mktemp -u)
144
145 diag "Test UST live with metadata regeneration (expect failure)"
f0d43d3d 146 create_lttng_session_uri $SESSION_NAME net://localhost --live
801236b0
JD
147 enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME
148
6c4a91d6
MD
149 $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT \
150 --sync-after-first-event ${file_sync_after_first} \
151 --sync-before-last-event ${file_sync_before_last} >/dev/null 2>&1 &
801236b0
JD
152
153 start_lttng_tracing_ok $SESSION_NAME
154
155 touch ${file_sync_before_last}
156
157 # Wait for the applications started in background
158 wait
eded6438 159 regenerate_metadata_fail $SESSION_NAME
801236b0
JD
160
161 stop_lttng_tracing_ok $SESSION_NAME
162 destroy_lttng_session_ok $SESSION_NAME
163 # Validate test
164 validate_trace $EVENT_NAME $TRACE_PATH
165 if [ $? -eq 0 ]; then
166 # Only delete if successful
167 rm -rf $TRACE_PATH
168 fi
169 rm -f ${file_sync_after_first}
170 rm -f ${file_sync_before_last}
171}
172
173plan_tests $NUM_TESTS
174
175print_test_banner "$TEST_DESC"
176
177start_lttng_relayd "-o $TRACE_PATH"
178start_lttng_sessiond
179
180tests=( test_ust_streaming test_ust_local test_ust_pid test_ust_live )
181
182for fct_test in ${tests[@]};
183do
184 SESSION_NAME=$(randstring 16 0)
185 ${fct_test}
186done
187
188stop_lttng_sessiond
189stop_lttng_relayd
190
191exit $out
This page took 0.036906 seconds and 4 git commands to generate.