Fix: tests: error handling in high throughput limits test (v2)
[lttng-tools.git] / tests / utils / utils.sh
CommitLineData
d3e8f6bb
DG
1# Copyright (C) - 2012 David Goulet <dgoulet@efficios.com>
2#
3# This library is free software; you can redistribute it and/or modify it under
4# the terms of the GNU Lesser General Public License as published by the Free
5# Software Foundation; version 2.1 of the License.
6#
7# This library is distributed in the hope that it will be useful, but WITHOUT
8# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
9# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
10# details.
11#
12# You should have received a copy of the GNU Lesser General Public License
13# along with this library; if not, write to the Free Software Foundation, Inc.,
14# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15
16SESSIOND_BIN="lttng-sessiond"
725f658e 17SESSIOND_MATCH=".*lttng-sess.*"
19356f3a 18RUNAS_BIN="lttng-runas"
725f658e 19RUNAS_MATCH=".*lttng-runas.*"
f7613992 20CONSUMERD_BIN="lttng-consumerd"
725f658e 21CONSUMERD_MATCH=".*lttng-consumerd.*"
f4e40ab6 22RELAYD_BIN="lttng-relayd"
725f658e 23RELAYD_MATCH=".*lttng-relayd.*"
d3e8f6bb
DG
24LTTNG_BIN="lttng"
25BABELTRACE_BIN="babeltrace"
2cf48300
JR
26OUTPUT_DEST=/dev/null
27ERROR_OUTPUT_DEST=/dev/null
d3e8f6bb 28
fd4dfcec
DG
29# Minimal kernel version supported for session daemon tests
30KERNEL_MAJOR_VERSION=2
31KERNEL_MINOR_VERSION=6
32KERNEL_PATCHLEVEL_VERSION=27
33
651b8bb3
JG
34# We set the default UST register timeout and network and app socket timeout to
35# "wait forever", so that basic tests don't have to worry about hitting
36# timeouts on busy systems. Specialized tests should test those corner-cases.
629b9335 37export LTTNG_UST_REGISTER_TIMEOUT=-1
651b8bb3
JG
38export LTTNG_NETWORK_SOCKET_TIMEOUT=-1
39export LTTNG_APP_SOCKET_TIMEOUT=-1
629b9335 40
fd7fe1a8
JR
41# We set the default lttng-sessiond path to /bin/true to prevent the spawning
42# of a daemonized sessiond. This is necessary since 'lttng create' will spawn
43# its own sessiond if none is running. It also ensures that 'lttng create'
44# fails when no sessiond is running.
45export LTTNG_SESSIOND_PATH="/bin/true"
46
29655db7
CB
47source $TESTDIR/utils/tap/tap.sh
48
529bb942
MD
49if [ -z $LTTNG_TEST_TEARDOWN_TIMEOUT ]; then
50 LTTNG_TEST_TEARDOWN_TIMEOUT=60
51fi
52
1c362dc7
JR
53function full_cleanup ()
54{
529bb942
MD
55 # Try to kill daemons gracefully
56 stop_lttng_relayd_notap SIGTERM $LTTNG_TEST_TEARDOWN_TIMEOUT
57 stop_lttng_sessiond_notap SIGTERM $LTTNG_TEST_TEARDOWN_TIMEOUT
58
59 # If daemons are still present, forcibly kill them
60 stop_lttng_relayd_notap SIGKILL $LTTNG_TEST_TEARDOWN_TIMEOUT
61 stop_lttng_sessiond_notap SIGKILL $LTTNG_TEST_TEARDOWN_TIMEOUT
62 stop_lttng_consumerd_notap SIGKILL $LTTNG_TEST_TEARDOWN_TIMEOUT
1c362dc7
JR
63
64 # Disable trap for SIGTERM since the following kill to the
65 # pidgroup will be SIGTERM. Otherwise it loops.
66 # The '-' before the pid number ($$) indicates 'kill' to signal the
67 # whole process group.
68 trap - SIGTERM && kill -- -$$
69}
70
71
72trap full_cleanup SIGINT SIGTERM
73
fec81a7e
CB
74function print_ok ()
75{
76 # Check if we are a terminal
77 if [ -t 1 ]; then
78 echo -e "\e[1;32mOK\e[0m"
79 else
80 echo -e "OK"
81 fi
82}
83
84function print_fail ()
85{
86 # Check if we are a terminal
87 if [ -t 1 ]; then
88 echo -e "\e[1;31mFAIL\e[0m"
89 else
90 echo -e "FAIL"
91 fi
92}
93
94function print_test_banner ()
95{
7d0ad314 96 local desc="$1"
29655db7 97 diag "$desc"
fec81a7e
CB
98}
99
fd4dfcec
DG
100function validate_kernel_version ()
101{
7d0ad314 102 local kern_version=($(uname -r | awk -F. '{ printf("%d.%d.%d\n",$1,$2,$3); }' | tr '.' '\n'))
fd4dfcec
DG
103 if [ ${kern_version[0]} -gt $KERNEL_MAJOR_VERSION ]; then
104 return 0
105 fi
106 if [ ${kern_version[1]} -gt $KERNEL_MINOR_VERSION ]; then
107 return 0
108 fi
109 if [ ${kern_version[2]} -ge $KERNEL_PATCHLEVEL_VERSION ]; then
110 return 0
111 fi
112 return 1
113}
114
9ac429ef 115# Generate a random string
f4e40ab6
DG
116# $1 = number of characters; defaults to 16
117# $2 = include special characters; 1 = yes, 0 = no; defaults to yes
9ac429ef 118function randstring()
f4e40ab6
DG
119{
120 [ "$2" == "0" ] && CHAR="[:alnum:]" || CHAR="[:graph:]"
b89c3a68 121 cat /dev/urandom 2>/dev/null | tr -cd "$CHAR" 2>/dev/null | head -c ${1:-16} 2>/dev/null
f4e40ab6
DG
122 echo
123}
124
9e136324
JG
125# Return the number of _configured_ CPUs.
126function conf_proc_count()
127{
128 getconf _NPROCESSORS_CONF
129 if [ $? -ne 0 ]; then
130 diag "Failed to get the number of configured CPUs"
131 fi
132 echo
133}
134
9c8a3964
JR
135# Check if base lttng-modules are present.
136# Bail out on failure
137function validate_lttng_modules_present ()
138{
139 modprobe -n lttng-tracer 2>/dev/null
140 if [ $? -ne 0 ]; then
141 BAIL_OUT "LTTng modules not detected."
142 fi
143}
144
4a180d9f 145function enable_kernel_lttng_event
f4e40ab6 146{
854382b8
JR
147 local withtap="$1"
148 local expected_to_fail="$2"
149 local sess_name="$3"
150 local event_name="$4"
151 local channel_name="$5"
f4e40ab6 152
4a180d9f 153 if [ -z "$event_name" ]; then
f4e40ab6 154 # Enable all event if no event name specified
29655db7 155 event_name="-a"
f4e40ab6
DG
156 fi
157
4a180d9f 158 if [ -z "$channel_name" ]; then
07b86b52
JD
159 # default channel if none specified
160 chan=""
161 else
162 chan="-c $channel_name"
163 fi
164
2cf48300 165 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -k 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
4a180d9f
MD
166 ret=$?
167 if [[ $expected_to_fail -eq "1" ]]; then
168 test $ret -ne "0"
854382b8
JR
169 ret=$?
170 if [ $withtap -eq "1" ]; then
171 ok $ret "Enable kernel event $event_name for session $session_name on channel $channel_name failed as expected"
172 fi
4a180d9f 173 else
854382b8
JR
174 if [ $withtap -eq "1" ]; then
175 ok $ret "Enable kernel event $event_name for session $sess_name"
176 fi
4a180d9f
MD
177 fi
178}
179
180function enable_kernel_lttng_event_ok ()
181{
854382b8 182 enable_kernel_lttng_event 1 0 "$@"
4a180d9f
MD
183}
184
185function enable_kernel_lttng_event_fail ()
186{
854382b8
JR
187 enable_kernel_lttng_event 1 1 "$@"
188}
189
190function enable_kernel_lttng_event_notap ()
191{
192 enable_kernel_lttng_event 0 0 "$@"
4a180d9f
MD
193}
194
195# Old interface
196function lttng_enable_kernel_event
197{
198 enable_kernel_lttng_event_ok "$@"
f4e40ab6
DG
199}
200
8cfcd41c
MD
201function lttng_enable_kernel_syscall()
202{
203 local expected_to_fail=$1
204 local sess_name=$2
205 local syscall_name=$3
206 local channel_name=$4
207
208 if [ -z $syscall_name ]; then
209 # Enable all event if no syscall name specified
210 syscall_name="-a"
211 fi
212
213 if [ -z $channel_name ]; then
214 # default channel if none specified
215 chan=""
216 else
217 chan="-c $channel_name"
218 fi
219
2cf48300 220 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event --syscall "$syscall_name" $chan -s $sess_name -k 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
8cfcd41c
MD
221 ret=$?
222 if [[ $expected_to_fail -eq "1" ]]; then
223 test $ret -ne "0"
224 ok $? "Enable kernel syscall $syscall_name for session $sess_name on channel $channel_name fail as expected"
225 else
226 ok $ret "Enable kernel syscall $syscall_name for session $sess_name on channel $channel_name"
227 fi
228}
229
230function lttng_enable_kernel_syscall_ok()
231{
421b83dc 232 lttng_enable_kernel_syscall 0 "$@"
8cfcd41c
MD
233}
234
235function lttng_enable_kernel_syscall_fail()
236{
421b83dc 237 lttng_enable_kernel_syscall 1 "$@"
8cfcd41c
MD
238}
239
240function lttng_disable_kernel_syscall()
241{
242 local expected_to_fail=$1
243 local sess_name=$2
244 local syscall_name=$3
245 local channel_name=$4
246
247 if [ -z $syscall_name ]; then
248 # Enable all event if no syscall name specified
249 syscall_name="-a"
250 fi
251
252 if [ -z $channel_name ]; then
253 # default channel if none specified
254 chan=""
255 else
256 chan="-c $channel_name"
257 fi
258
2cf48300 259 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event --syscall "$syscall_name" $chan -s $sess_name -k 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
8cfcd41c
MD
260
261 ret=$?
262 if [[ $expected_to_fail -eq "1" ]]; then
263 test $ret -ne "0"
34ab15c5 264 ok $? "Disable kernel syscall $syscall_name for session $sess_name on channel $channel_name failed as expected"
8cfcd41c
MD
265 else
266 ok $ret "Disable kernel syscall $syscall_name for session $sess_name on channel $channel_name"
267 fi
268}
269
270function lttng_disable_kernel_syscall_ok()
271{
421b83dc 272 lttng_disable_kernel_syscall 0 "$@"
8cfcd41c
MD
273}
274
275function lttng_disable_kernel_syscall_fail()
276{
421b83dc 277 lttng_disable_kernel_syscall 1 "$@"
8cfcd41c
MD
278}
279
a9c2df2b
FD
280function lttng_enable_kernel_userspace_probe_event ()
281{
282 local expected_to_fail="$1"
283 local sess_name="$2"
284 local target="$3"
285 local event_name="$4"
286
287 "$TESTDIR/../src/bin/lttng/$LTTNG_BIN" enable-event --kernel --userspace-probe="$target" "$event_name" -s "$sess_name" > "$OUTPUT_DEST" 2> "$ERROR_OUTPUT_DEST"
288 ret=$?
289 if [[ $expected_to_fail -eq "1" ]]; then
290 test $ret -ne "0"
291 ok $? "Enable kernel userspace probe event for session $sess_name failed as expected"
292 else
293 ok $ret "Enable kernel userspace probe event for session $sess_name"
294 fi
295}
296
297function lttng_enable_kernel_userspace_probe_event_fail ()
298{
299 lttng_enable_kernel_userspace_probe_event 1 "$@"
300}
301
302function lttng_enable_kernel_userspace_probe_event_ok ()
303{
304 lttng_enable_kernel_userspace_probe_event 0 "$@"
305}
306
307function disable_kernel_lttng_userspace_probe_event_ok ()
308{
309 local sess_name="$1"
310 local event_name="$2"
311
312 "$TESTDIR/../src/bin/lttng/$LTTNG_BIN" disable-event --kernel "$event_name" -s "$sess_name" > "$OUTPUT_DEST" 2> "$ERROR_OUTPUT_DEST"
313 ok $? "Disable kernel event $target for session $sess_name"
314}
d96f6315
MD
315function lttng_enable_kernel_channel()
316{
854382b8
JR
317 local withtap=$1
318 local expected_to_fail=$2
319 local sess_name=$3
320 local channel_name=$4
321 local opt=$5
d96f6315 322
854382b8 323 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -k $channel_name -s $sess_name $opt 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
d96f6315
MD
324 ret=$?
325 if [[ $expected_to_fail -eq "1" ]]; then
326 test "$ret" -ne "0"
854382b8
JR
327 ret=$?
328 if [ $withtap -eq "1" ]; then
329 ok $ret "Enable channel $channel_name for session $sess_name failed as expected"
330 fi
d96f6315 331 else
854382b8
JR
332 if [ $withtap -eq "1" ]; then
333 ok $ret "Enable channel $channel_name for session $sess_name"
334 fi
d96f6315
MD
335 fi
336}
337
338function lttng_enable_kernel_channel_ok()
339{
854382b8 340 lttng_enable_kernel_channel 1 0 "$@"
d96f6315
MD
341}
342
343function lttng_enable_kernel_channel_fail()
344{
854382b8
JR
345 lttng_enable_kernel_channel 1 1 "$@"
346}
347
348function lttng_enable_kernel_channel_notap()
349{
350 lttng_enable_kernel_channel 0 0 "$@"
351}
352
353function enable_kernel_lttng_channel_ok()
354{
355 lttng_enable_kernel_channel 1 0 "$@"
d96f6315
MD
356}
357
358function lttng_disable_kernel_channel()
359{
360 local expected_to_fail=$1
361 local sess_name=$2
362 local channel_name=$3
363
2cf48300 364 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-channel -k $channel_name -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
d96f6315
MD
365 ret=$?
366 if [[ $expected_to_fail -eq "1" ]]; then
367 test "$ret" -ne "0"
34ab15c5 368 ok $? "Disable channel $channel_name for session $sess_name failed as expected"
d96f6315 369 else
34ab15c5 370 ok $ret "Disable channel $channel_name for session $sess_name"
d96f6315
MD
371 fi
372}
373
374function lttng_disable_kernel_channel_ok()
375{
421b83dc 376 lttng_disable_kernel_channel 0 "$@"
d96f6315
MD
377}
378
379function lttng_disable_kernel_channel_fail()
380{
421b83dc 381 lttng_disable_kernel_channel 1 "$@"
d96f6315
MD
382}
383
05aa48da 384function start_lttng_relayd_opt()
f4e40ab6 385{
05aa48da
MD
386 local withtap=$1
387 local opt=$2
173af62f 388
529bb942 389 DIR=$(readlink -f "$TESTDIR")
f4e40ab6 390
529bb942
MD
391 if [ -z "$(pgrep "$RELAYD_MATCH")" ]; then
392 # shellcheck disable=SC2086
393 "$DIR/../src/bin/lttng-relayd/$RELAYD_BIN" -b $opt 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
394 #"$DIR/../src/bin/lttng-relayd/$RELAYD_BIN" $opt -vvv >>/tmp/relayd.log 2>&1 &
f4e40ab6 395 if [ $? -eq 1 ]; then
529bb942 396 if [ "$withtap" -eq "1" ]; then
05aa48da
MD
397 fail "Start lttng-relayd (opt: $opt)"
398 fi
f4e40ab6
DG
399 return 1
400 else
529bb942 401 if [ "$withtap" -eq "1" ]; then
05aa48da
MD
402 pass "Start lttng-relayd (opt: $opt)"
403 fi
f4e40ab6
DG
404 fi
405 else
29655db7 406 pass "Start lttng-relayd (opt: $opt)"
f4e40ab6
DG
407 fi
408}
409
05aa48da 410function start_lttng_relayd()
f4e40ab6 411{
05aa48da
MD
412 start_lttng_relayd_opt 1 "$@"
413}
414
415function start_lttng_relayd_notap()
416{
417 start_lttng_relayd_opt 0 "$@"
418}
419
420function stop_lttng_relayd_opt()
421{
422 local withtap=$1
529bb942 423 local signal=$2
05aa48da 424
529bb942
MD
425 if [ -z "$signal" ]; then
426 signal="SIGTERM"
05aa48da 427 fi
29655db7 428
529bb942
MD
429 local timeout_s=$3
430 local dtimeleft_s=
431
432 # Multiply time by 2 to simplify integer arithmetic
433 if [ -n "$timeout_s" ]; then
434 dtimeleft_s=$((timeout_s * 2))
435 fi
436
437 local retval=0
438 local pids=
439
440 pids=$(pgrep "$RELAYD_MATCH")
441 if [ -z "$pids" ]; then
442 if [ "$withtap" -eq "1" ]; then
443 pass "No relay daemon to kill"
444 fi
445 return 0
446 fi
447
448 diag "Killing (signal $signal) lttng-relayd (pid: $pids)"
449
450 # shellcheck disable=SC2086
451 if ! kill -s $signal $pids 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST; then
452 retval=1
453 if [ "$withtap" -eq "1" ]; then
05aa48da
MD
454 fail "Kill relay daemon"
455 fi
05aa48da 456 else
f4e40ab6
DG
457 out=1
458 while [ -n "$out" ]; do
529bb942
MD
459 out=$(pgrep "$RELAYD_MATCH")
460 if [ -n "$dtimeleft_s" ]; then
461 if [ $dtimeleft_s -lt 0 ]; then
462 out=
463 retval=1
464 fi
465 dtimeleft_s=$((dtimeleft_s - 1))
466 fi
f4e40ab6
DG
467 sleep 0.5
468 done
529bb942
MD
469 if [ "$withtap" -eq "1" ]; then
470 if [ "$retval" -eq "0" ]; then
471 pass "Wait after kill relay daemon"
472 else
473 fail "Wait after kill relay daemon"
474 fi
05aa48da 475 fi
1fb23888
MD
476 fi
477 return $retval
478}
479
05aa48da 480function stop_lttng_relayd()
1fb23888 481{
05aa48da
MD
482 stop_lttng_relayd_opt 1 "$@"
483}
1fb23888 484
05aa48da
MD
485function stop_lttng_relayd_notap()
486{
487 stop_lttng_relayd_opt 0 "$@"
f4e40ab6
DG
488}
489
05aa48da
MD
490#First arg: show tap output
491#Second argument: load path for automatic loading
492function start_lttng_sessiond_opt()
355f483d 493{
05aa48da
MD
494 local withtap=$1
495 local load_path=$2
8d51ddbc 496
4b01971f 497 local env_vars=""
b916da6b 498 local consumerd=""
b916da6b 499
529bb942
MD
500 local long_bit_value=
501 long_bit_value=$(getconf LONG_BIT)
502
503 if [ -n "$TEST_NO_SESSIOND" ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
355f483d
DG
504 # Env variable requested no session daemon
505 return
506 fi
507
529bb942 508 DIR=$(readlink -f "$TESTDIR")
b916da6b
JR
509
510 # Get long_bit value for 32/64 consumerd
511 case "$long_bit_value" in
512 32)
513 consumerd="--consumerd32-path=$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
514 ;;
515 64)
516 consumerd="--consumerd64-path=$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
517 ;;
518 *)
519 return
520 ;;
521 esac
522
4b01971f
JR
523 # Check for env. variable. Allow the use of LD_PRELOAD etc.
524 if [[ "x${LTTNG_SESSIOND_ENV_VARS}" != "x" ]]; then
529bb942 525 env_vars="${LTTNG_SESSIOND_ENV_VARS} "
4b01971f 526 fi
529bb942 527 env_vars="${env_vars}$DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN"
4b01971f 528
529bb942 529 if ! validate_kernel_version; then
29655db7
CB
530 fail "Start session daemon"
531 BAIL_OUT "*** Kernel too old for session daemon tests ***"
355f483d
DG
532 fi
533
529bb942 534 : "${LTTNG_SESSION_CONFIG_XSD_PATH="${DIR}/../src/common/config/"}"
d3d97763 535 export LTTNG_SESSION_CONFIG_XSD_PATH
29655db7 536
529bb942 537 if [ -z "$(pgrep "${SESSIOND_MATCH}")" ]; then
8d51ddbc 538 # Have a load path ?
05aa48da 539 if [ -n "$load_path" ]; then
529bb942
MD
540 # shellcheck disable=SC2086
541 env $env_vars --load "$load_path" --background "$consumerd"
8d51ddbc 542 else
529bb942
MD
543 # shellcheck disable=SC2086
544 env $env_vars --background "$consumerd"
8d51ddbc 545 fi
0fc2834c 546 #$DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --verbose-consumer >>/tmp/sessiond.log 2>&1
29655db7 547 status=$?
529bb942 548 if [ "$withtap" -eq "1" ]; then
05aa48da
MD
549 ok $status "Start session daemon"
550 fi
29655db7 551 fi
355f483d
DG
552}
553
05aa48da
MD
554function start_lttng_sessiond()
555{
556 start_lttng_sessiond_opt 1 "$@"
557}
558
559function start_lttng_sessiond_notap()
d3e8f6bb 560{
05aa48da
MD
561 start_lttng_sessiond_opt 0 "$@"
562}
563
564function stop_lttng_sessiond_opt()
565{
566 local withtap=$1
4c80129b 567 local signal=$2
05aa48da 568
529bb942
MD
569 if [ -z "$signal" ]; then
570 signal=SIGTERM
571 fi
572
573 local timeout_s=$3
574 local dtimeleft_s=
575
576 # Multiply time by 2 to simplify integer arithmetic
577 if [ -n "$timeout_s" ]; then
578 dtimeleft_s=$((timeout_s * 2))
579 fi
580
581 if [ -n "$TEST_NO_SESSIOND" ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
355f483d 582 # Env variable requested no session daemon
529bb942 583 return 0
355f483d
DG
584 fi
585
529bb942 586 local retval=0
d3e8f6bb 587
529bb942
MD
588 local runas_pids=
589 runas_pids=$(pgrep "$RUNAS_MATCH")
590
591 local pids=
592 pids=$(pgrep "$SESSIOND_MATCH")
593
594 if [ -n "$runas_pids" ]; then
595 pids="$pids $runas_pids"
4c80129b 596 fi
529bb942
MD
597
598 if [ -z "$pids" ]; then
599 if [ "$withtap" -eq "1" ]; then
600 pass "No session daemon to kill"
601 fi
602 return 0
8490897a 603 fi
29655db7 604
529bb942
MD
605 diag "Killing (signal $signal) $SESSIOND_BIN and lt-$SESSIOND_BIN pids: $(echo "$pids" | tr '\n' ' ')"
606
607 # shellcheck disable=SC2086
608 if ! kill -s $signal $pids 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST; then
609 retval=1
610 if [ "$withtap" -eq "1" ]; then
05aa48da
MD
611 fail "Kill sessions daemon"
612 fi
d3e8f6bb 613 else
5fa32580
DG
614 out=1
615 while [ -n "$out" ]; do
529bb942
MD
616 out=$(pgrep "${SESSIOND_MATCH}")
617 if [ -n "$dtimeleft_s" ]; then
618 if [ $dtimeleft_s -lt 0 ]; then
619 out=
620 retval=1
621 fi
622 dtimeleft_s=$((dtimeleft_s - 1))
623 fi
5fa32580
DG
624 sleep 0.5
625 done
f7613992
MD
626 out=1
627 while [ -n "$out" ]; do
529bb942
MD
628 out=$(pgrep "$CONSUMERD_MATCH")
629 if [ -n "$dtimeleft_s" ]; then
630 if [ $dtimeleft_s -lt 0 ]; then
631 out=
632 retval=1
633 fi
634 dtimeleft_s=$((dtimeleft_s - 1))
635 fi
f7613992
MD
636 sleep 0.5
637 done
1c362dc7 638
529bb942
MD
639 if [ "$withtap" -eq "1" ]; then
640 if [ "$retval" -eq "0" ]; then
641 pass "Wait after kill session daemon"
642 else
643 fail "Wait after kill session daemon"
644 fi
05aa48da 645 fi
d3e8f6bb 646 fi
529bb942
MD
647 if [ "$signal" = "SIGKILL" ]; then
648 if [ "$(id -u)" -eq "0" ]; then
649 local modules=
650 modules="$(lsmod | grep ^lttng | awk '{print $1}')"
651
652 if [ -n "$modules" ]; then
653 diag "Unloading all LTTng modules"
654 modprobe -r "$modules"
655 fi
656 fi
657 fi
658
659 return $retval
d3e8f6bb
DG
660}
661
05aa48da
MD
662function stop_lttng_sessiond()
663{
664 stop_lttng_sessiond_opt 1 "$@"
665}
666
667function stop_lttng_sessiond_notap()
668{
669 stop_lttng_sessiond_opt 0 "$@"
670}
671
8490897a
MD
672function sigstop_lttng_sessiond_opt()
673{
674 local withtap=$1
675 local signal=SIGSTOP
8490897a 676
529bb942 677 if [ -n "$TEST_NO_SESSIOND" ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
8490897a
MD
678 # Env variable requested no session daemon
679 return
680 fi
681
529bb942 682 PID_SESSIOND="$(pgrep "${SESSIOND_MATCH}") $(pgrep "$RUNAS_MATCH")"
8490897a 683
529bb942
MD
684 if [ "$withtap" -eq "1" ]; then
685 diag "Sending SIGSTOP to lt-$SESSIOND_BIN and $SESSIOND_BIN pids: $(echo "$PID_SESSIOND" | tr '\n' ' ')"
8490897a 686 fi
8490897a 687
529bb942
MD
688 # shellcheck disable=SC2086
689 if ! kill -s $signal $PID_SESSIOND 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST; then
690 if [ "$withtap" -eq "1" ]; then
8490897a
MD
691 fail "Sending SIGSTOP to session daemon"
692 fi
693 else
694 out=1
695 while [ $out -ne 0 ]; do
529bb942 696 pid="$(pgrep "$SESSIOND_MATCH")"
8490897a
MD
697
698 # Wait until state becomes stopped for session
699 # daemon(s).
700 out=0
701 for sessiond_pid in $pid; do
529bb942 702 state="$(ps -p "$sessiond_pid" -o state= )"
8490897a
MD
703 if [[ -n "$state" && "$state" != "T" ]]; then
704 out=1
705 fi
706 done
707 sleep 0.5
708 done
529bb942 709 if [ "$withtap" -eq "1" ]; then
8490897a
MD
710 pass "Sending SIGSTOP to session daemon"
711 fi
712 fi
713}
714
715function sigstop_lttng_sessiond()
716{
717 sigstop_lttng_sessiond_opt 1 "$@"
718}
719
720function sigstop_lttng_sessiond_notap()
721{
722 sigstop_lttng_sessiond_opt 0 "$@"
723}
724
4c80129b
JR
725function stop_lttng_consumerd_opt()
726{
727 local withtap=$1
728 local signal=$2
4c80129b 729
529bb942
MD
730 if [ -z "$signal" ]; then
731 signal=SIGTERM
732 fi
733
734 local timeout_s=$3
735 local dtimeleft_s=
4c80129b 736
529bb942
MD
737 # Multiply time by 2 to simplify integer arithmetic
738 if [ -n "$timeout_s" ]; then
739 dtimeleft_s=$((timeout_s * 2))
4c80129b
JR
740 fi
741
529bb942
MD
742 local retval=0
743
744 PID_CONSUMERD="$(pgrep "$CONSUMERD_MATCH")"
745
746 if [ -z "$PID_CONSUMERD" ]; then
747 if [ "$withtap" -eq "1" ]; then
748 pass "No consumer daemon to kill"
749 fi
750 return 0
4c80129b 751 fi
3355fd4d 752
529bb942 753 diag "Killing (signal $signal) $CONSUMERD_BIN pids: $(echo "$PID_CONSUMERD" | tr '\n' ' ')"
4c80129b 754
529bb942
MD
755 # shellcheck disable=SC2086
756 if ! kill -s $signal $PID_CONSUMERD 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST; then
757 retval=1
758 if [ "$withtap" -eq "1" ]; then
4c80129b
JR
759 fail "Kill consumer daemon"
760 fi
4c80129b
JR
761 else
762 out=1
763 while [ $out -ne 0 ]; do
529bb942 764 pid="$(pgrep "$CONSUMERD_MATCH")"
4c80129b
JR
765
766 # If consumerds are still present check their status.
767 # A zombie status qualifies the consumerd as *killed*
768 out=0
769 for consumer_pid in $pid; do
529bb942 770 state="$(ps -p "$consumer_pid" -o state= )"
4c80129b
JR
771 if [[ -n "$state" && "$state" != "Z" ]]; then
772 out=1
773 fi
774 done
529bb942
MD
775 if [ -n "$dtimeleft_s" ]; then
776 if [ $dtimeleft_s -lt 0 ]; then
777 out=0
778 retval=1
779 fi
780 dtimeleft_s=$((dtimeleft_s - 1))
781 fi
4c80129b
JR
782 sleep 0.5
783 done
529bb942
MD
784 if [ "$withtap" -eq "1" ]; then
785 if [ "$retval" -eq "0" ]; then
786 pass "Wait after kill consumer daemon"
787 else
788 fail "Wait after kill consumer daemon"
789 fi
4c80129b
JR
790 fi
791 fi
529bb942 792
4c80129b
JR
793 return $retval
794}
795
796function stop_lttng_consumerd()
797{
798 stop_lttng_consumerd_opt 1 "$@"
799}
800
801function stop_lttng_consumerd_notap()
802{
803 stop_lttng_consumerd_opt 0 "$@"
804}
805
8490897a
MD
806function sigstop_lttng_consumerd_opt()
807{
808 local withtap=$1
809 local signal=SIGSTOP
8490897a 810
529bb942 811 PID_CONSUMERD="$(pgrep "$CONSUMERD_MATCH")"
8490897a 812
529bb942 813 diag "Sending SIGSTOP to $CONSUMERD_BIN pids: $(echo "$PID_CONSUMERD" | tr '\n' ' ')"
8490897a 814
529bb942
MD
815 # shellcheck disable=SC2086
816 kill -s $signal $PID_CONSUMERD 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
8490897a 817 retval=$?
8490897a 818
529bb942
MD
819 if [ $retval -eq 1 ]; then
820 if [ "$withtap" -eq "1" ]; then
8490897a
MD
821 fail "Sending SIGSTOP to consumer daemon"
822 fi
823 return 1
824 else
825 out=1
826 while [ $out -ne 0 ]; do
529bb942 827 pid="$(pgrep "$CONSUMERD_MATCH")"
8490897a
MD
828
829 # Wait until state becomes stopped for all
830 # consumers.
831 out=0
832 for consumer_pid in $pid; do
529bb942 833 state="$(ps -p "$consumer_pid" -o state= )"
8490897a
MD
834 if [[ -n "$state" && "$state" != "T" ]]; then
835 out=1
836 fi
837 done
838 sleep 0.5
839 done
529bb942 840 if [ "$withtap" -eq "1" ]; then
8490897a
MD
841 pass "Sending SIGSTOP to consumer daemon"
842 fi
843 fi
844 return $retval
845}
846
847function sigstop_lttng_consumerd()
848{
849 sigstop_lttng_consumerd_opt 1 "$@"
850}
851
852function sigstop_lttng_consumerd_notap()
853{
854 sigstop_lttng_consumerd_opt 0 "$@"
855}
856
873c2aae
JRJ
857function list_lttng_with_opts ()
858{
7d0ad314 859 local opts=$1
2cf48300 860 $TESTDIR/../src/bin/lttng/$LTTNG_BIN list $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
873c2aae
JRJ
861 ok $? "Lttng-tool list command with option $opts"
862}
863
07b86b52
JD
864function create_lttng_session_no_output ()
865{
7d0ad314 866 local sess_name=$1
2a166864 867 local opts="${@:2}"
07b86b52 868
2a166864 869 $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $sess_name --no-output $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
07b86b52
JD
870 ok $? "Create session $sess_name in no-output mode"
871}
872
f0d43d3d
JR
873function create_lttng_session_uri () {
874 local sess_name=$1
875 local uri=$2
876 local opts="${@:3}"
877
878 $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $sess_name -U $uri $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
879 ok $? "Create session $sess_name with uri:$uri and opts: $opts"
880}
881
d3e8f6bb
DG
882function create_lttng_session ()
883{
434f8068
JR
884 local withtap=$1
885 local expected_to_fail=$2
886 local sess_name=$3
887 local trace_path=$4
888 local opt=$5
d3e8f6bb 889
4c80129b 890 $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $sess_name -o $trace_path $opt > $OUTPUT_DEST
873c2aae 891 ret=$?
434f8068 892 if [ $expected_to_fail -eq "1" ]; then
01513c3e 893 test "$ret" -ne "0"
434f8068
JR
894 ret=$?
895 if [ $withtap -eq "1" ]; then
896 ok $ret "Create session $sess_name in $trace_path failed as expected"
897 fi
873c2aae 898 else
434f8068
JR
899 if [ $withtap -eq "1" ]; then
900 ok $ret "Create session $sess_name in $trace_path"
901 fi
873c2aae 902 fi
434f8068 903 return $ret
d4018451
DG
904}
905
bf6ae429
JR
906function create_lttng_session_ok ()
907{
434f8068 908 create_lttng_session 1 0 "$@"
bf6ae429
JR
909}
910
911function create_lttng_session_fail ()
912{
434f8068
JR
913 create_lttng_session 1 1 "$@"
914}
915
916function create_lttng_session_notap ()
917{
918 create_lttng_session 0 0 "$@"
bf6ae429
JR
919}
920
921
827caf52 922function enable_ust_lttng_channel ()
d4018451 923{
434f8068
JR
924 local withtap=$1
925 local expected_to_fail=$2
926 local sess_name=$3
927 local channel_name=$4
928 local opt=$5
d4018451 929
4c80129b 930 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -u $channel_name -s $sess_name $opt 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
312dabc3 931 ret=$?
34ab15c5 932 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 933 test "$ret" -ne "0"
434f8068
JR
934 ret=$?
935 if [ $withtap -eq "1" ]; then
936 ok $ret "Enable channel $channel_name for session $sess_name failed as expected"
937 fi
312dabc3 938 else
434f8068
JR
939 if [ $withtap -eq "1" ]; then
940 ok $ret "Enable channel $channel_name for session $sess_name"
941 fi
312dabc3 942 fi
434f8068 943 return $ret
d4018451
DG
944}
945
827caf52
JR
946function enable_ust_lttng_channel_ok ()
947{
434f8068 948 enable_ust_lttng_channel 1 0 "$@"
827caf52
JR
949}
950
951function enable_ust_lttng_channel_fail ()
952{
434f8068
JR
953 enable_ust_lttng_channel 1 1 "$@"
954}
955
956function enable_ust_lttng_channel_notap ()
957{
958 enable_ust_lttng_channel 0 0 "$@"
827caf52
JR
959}
960
29655db7 961function disable_ust_lttng_channel()
d4018451 962{
7d0ad314
JRJ
963 local sess_name=$1
964 local channel_name=$2
d4018451 965
2cf48300 966 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-channel -u $channel_name -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 967 ok $? "Disable channel $channel_name for session $sess_name"
d3e8f6bb
DG
968}
969
07b86b52
JD
970function enable_lttng_mmap_overwrite_kernel_channel()
971{
7d0ad314
JRJ
972 local sess_name=$1
973 local channel_name=$2
07b86b52 974
2cf48300 975 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -s $sess_name $channel_name -k --output mmap --overwrite 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
07b86b52
JD
976 ok $? "Enable channel $channel_name for session $sess_name"
977}
978
086e6add
MD
979function enable_lttng_mmap_discard_small_kernel_channel()
980{
981 local sess_name=$1
982 local channel_name=$2
983
984 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -s $sess_name $channel_name -k --output mmap --discard --subbuf-size=$(getconf PAGE_SIZE) --num-subbuf=2 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
985 ok $? "Enable small discard channel $channel_name for session $sess_name"
986}
987
988function enable_lttng_mmap_overwrite_small_kernel_channel()
989{
990 local sess_name=$1
991 local channel_name=$2
992
993 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -s $sess_name $channel_name -k --output mmap --overwrite --subbuf-size=$(getconf PAGE_SIZE) --num-subbuf=2 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
994 ok $? "Enable small discard channel $channel_name for session $sess_name"
995}
996
ebaaaf5e
JD
997function enable_lttng_mmap_overwrite_ust_channel()
998{
7d0ad314
JRJ
999 local sess_name=$1
1000 local channel_name=$2
ebaaaf5e 1001
2cf48300 1002 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -s $sess_name $channel_name -u --output mmap --overwrite 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
ebaaaf5e
JD
1003 ok $? "Enable channel $channel_name for session $sess_name"
1004}
1005
d3e8f6bb
DG
1006function enable_ust_lttng_event ()
1007{
434f8068
JR
1008 local withtap=$1
1009 local expected_to_fail=$2
1010 local sess_name=$3
1011 local event_name="$4"
1012 local channel_name=$5
ebaaaf5e
JD
1013
1014 if [ -z $channel_name ]; then
1015 # default channel if none specified
1016 chan=""
1017 else
1018 chan="-c $channel_name"
1019 fi
d3e8f6bb 1020
2cf48300 1021 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -u 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 1022 ret=$?
c4926bb5 1023 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 1024 test $ret -ne "0"
434f8068
JR
1025 ret=$?
1026 if [[ $withtap -eq "1" ]]; then
1027 ok $ret "Enable ust event $event_name for session $session_name failed as expected"
1028 fi
01513c3e 1029 else
434f8068
JR
1030 if [[ $withtap -eq "1" ]]; then
1031 ok $ret "Enable ust event $event_name for session $sess_name"
1032 fi
01513c3e 1033 fi
434f8068 1034 return $ret
26b53d3b
DG
1035}
1036
c4926bb5
JR
1037function enable_ust_lttng_event_ok ()
1038{
434f8068 1039 enable_ust_lttng_event 1 0 "$@"
c4926bb5
JR
1040}
1041
1042function enable_ust_lttng_event_fail ()
1043{
434f8068
JR
1044 enable_ust_lttng_event 1 1 "$@"
1045}
1046
1047function enable_ust_lttng_event_notap ()
1048{
1049 enable_ust_lttng_event 0 0 "$@"
c4926bb5
JR
1050}
1051
37175ce4
DG
1052function enable_jul_lttng_event()
1053{
1054 sess_name=$1
1055 event_name="$2"
1056 channel_name=$3
1057
1058 if [ -z $channel_name ]; then
1059 # default channel if none specified
1060 chan=""
1061 else
1062 chan="-c $channel_name"
1063 fi
1064
2cf48300 1065 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -j 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
37175ce4
DG
1066 ok $? "Enable JUL event $event_name for session $sess_name"
1067}
1068
b2064f54
DG
1069function enable_jul_lttng_event_loglevel()
1070{
7d0ad314
JRJ
1071 local sess_name=$1
1072 local event_name="$2"
1073 local loglevel=$3
1074 local channel_name=$4
b2064f54
DG
1075
1076 if [ -z $channel_name ]; then
1077 # default channel if none specified
1078 chan=""
1079 else
1080 chan="-c $channel_name"
1081 fi
1082
2cf48300 1083 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event --loglevel $loglevel "$event_name" $chan -s $sess_name -j 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
b2064f54
DG
1084 ok $? "Enable JUL event $event_name for session $sess_name with loglevel $loglevel"
1085}
1086
504d4ace
DG
1087function enable_log4j_lttng_event()
1088{
1089 sess_name=$1
1090 event_name="$2"
1091 channel_name=$3
1092
1093 if [ -z $channel_name ]; then
1094 # default channel if none specified
1095 chan=""
1096 else
1097 chan="-c $channel_name"
1098 fi
1099
2cf48300 1100 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -l 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
504d4ace
DG
1101 ok $? "Enable LOG4J event $event_name for session $sess_name"
1102}
1103
1104function enable_log4j_lttng_event_loglevel()
1105{
1106 local sess_name=$1
1107 local event_name="$2"
1108 local loglevel=$3
1109 local channel_name=$4
1110
1111 if [ -z $channel_name ]; then
1112 # default channel if none specified
1113 chan=""
1114 else
1115 chan="-c $channel_name"
1116 fi
1117
2cf48300 1118 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event --loglevel $loglevel "$event_name" $chan -s $sess_name -l 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
504d4ace
DG
1119 ok $? "Enable LOG4J event $event_name for session $sess_name with loglevel $loglevel"
1120}
1121
0e115563
DG
1122function enable_python_lttng_event()
1123{
1124 sess_name=$1
1125 event_name="$2"
1126 channel_name=$3
1127
1128 if [ -z $channel_name ]; then
1129 # default channel if none specified
1130 chan=""
1131 else
1132 chan="-c $channel_name"
1133 fi
1134
2cf48300 1135 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -p 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
0e115563
DG
1136 ok $? "Enable Python event $event_name for session $sess_name"
1137}
1138
1139function enable_python_lttng_event_loglevel()
1140{
1141 local sess_name=$1
1142 local event_name="$2"
1143 local loglevel=$3
1144 local channel_name=$4
1145
1146 if [ -z $channel_name ]; then
1147 # default channel if none specified
1148 chan=""
1149 else
1150 chan="-c $channel_name"
1151 fi
1152
2cf48300 1153 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event --loglevel $loglevel "$event_name" $chan -s $sess_name -p 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
0e115563
DG
1154 ok $? "Enable Python event $event_name for session $sess_name with loglevel $loglevel"
1155}
1156
26b53d3b
DG
1157function enable_ust_lttng_event_filter()
1158{
7d0ad314
JRJ
1159 local sess_name="$1"
1160 local event_name="$2"
1161 local filter="$3"
26b53d3b 1162
2cf48300 1163 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" -s $sess_name -u --filter "$filter" 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 1164 ok $? "Enable event $event_name with filtering for session $sess_name"
26b53d3b
DG
1165}
1166
1167function enable_ust_lttng_event_loglevel()
1168{
7d0ad314
JRJ
1169 local sess_name="$1"
1170 local event_name="$2"
1171 local loglevel="$3"
26b53d3b 1172
2cf48300 1173 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" -s $sess_name -u --loglevel $loglevel 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 1174 ok $? "Enable event $event_name with loglevel $loglevel"
26b53d3b
DG
1175}
1176
1177function enable_ust_lttng_event_loglevel_only()
1178{
7d0ad314
JRJ
1179 local sess_name="$1"
1180 local event_name="$2"
1181 local loglevel="$3"
26b53d3b 1182
2cf48300 1183 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" -s $sess_name -u --loglevel-only $loglevel 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 1184 ok $? "Enable event $event_name with loglevel-only $loglevel"
26b53d3b
DG
1185}
1186
1187function disable_ust_lttng_event ()
1188{
7d0ad314
JRJ
1189 local sess_name="$1"
1190 local event_name="$2"
01513c3e 1191 local channel_name="$3"
26b53d3b 1192
01513c3e
JRJ
1193 if [ -z $channel_name ]; then
1194 # default channel if none specified
1195 chan=""
1196 else
1197 chan="-c $channel_name"
1198 fi
1199
2cf48300 1200 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name $chan -u 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 1201 ok $? "Disable event $event_name for session $sess_name"
d3e8f6bb
DG
1202}
1203
1d842d5a
DG
1204function disable_jul_lttng_event ()
1205{
1206 local sess_name="$1"
1207 local event_name="$2"
1208
1209 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name -j >/dev/null 2>&1
1210 ok $? "Disable JUL event $event_name for session $sess_name"
1211}
1212
504d4ace
DG
1213function disable_log4j_lttng_event ()
1214{
1215 local sess_name="$1"
1216 local event_name="$2"
1217
1218 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name -l >/dev/null 2>&1
1219 ok $? "Disable LOG4J event $event_name for session $sess_name"
1220}
1221
0e115563
DG
1222function disable_python_lttng_event ()
1223{
1224 local sess_name="$1"
1225 local event_name="$2"
1226
2cf48300 1227 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name -p 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
0e115563
DG
1228 ok $? "Disable Python event $event_name for session $sess_name"
1229}
1230
7fe98a98 1231function start_lttng_tracing_opt ()
d3e8f6bb 1232{
7fe98a98
JG
1233 local withtap=$1
1234 local expected_to_fail=$2
1235 local sess_name=$3
d3e8f6bb 1236
2cf48300 1237 $TESTDIR/../src/bin/lttng/$LTTNG_BIN start $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 1238 ret=$?
e563bbdb 1239 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 1240 test "$ret" -ne "0"
7fe98a98
JG
1241 ret=$?
1242 if [ $withtap -eq "1" ]; then
1243 ok $? "Start tracing for session $sess_name failed as expected"
1244 fi
01513c3e 1245 else
7fe98a98
JG
1246 if [ $withtap -eq "1" ]; then
1247 ok $ret "Start tracing for session $sess_name"
1248 fi
01513c3e 1249 fi
d3e8f6bb
DG
1250}
1251
e563bbdb
JR
1252function start_lttng_tracing_ok ()
1253{
7fe98a98 1254 start_lttng_tracing_opt 1 0 "$@"
e563bbdb
JR
1255}
1256
1257function start_lttng_tracing_fail ()
1258{
7fe98a98 1259 start_lttng_tracing_opt 1 1 "$@"
e563bbdb
JR
1260}
1261
7fe98a98 1262function start_lttng_tracing_notap ()
d3e8f6bb 1263{
7fe98a98
JG
1264 start_lttng_tracing_opt 0 1 "$@"
1265}
1266
1267function stop_lttng_tracing_opt ()
1268{
1269 local withtap=$1
1270 local expected_to_fail=$2
1271 local sess_name=$3
d3e8f6bb 1272
2cf48300 1273 $TESTDIR/../src/bin/lttng/$LTTNG_BIN stop $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 1274 ret=$?
96340a01 1275 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 1276 test "$ret" -ne "0"
7fe98a98
JG
1277 ret=$?
1278 if [ $withtap -eq "1" ]; then
1279 ok $? "Stop lttng tracing for session $sess_name failed as expected"
1280 fi
01513c3e 1281 else
7fe98a98
JG
1282 if [ $withtap -eq "1" ]; then
1283 ok $ret "Stop lttng tracing for session $sess_name"
1284 fi
01513c3e 1285 fi
d3e8f6bb
DG
1286}
1287
96340a01
JR
1288function stop_lttng_tracing_ok ()
1289{
7fe98a98 1290 stop_lttng_tracing_opt 1 0 "$@"
96340a01
JR
1291}
1292
1293function stop_lttng_tracing_fail ()
1294{
7fe98a98
JG
1295 stop_lttng_tracing_opt 1 1 "$@"
1296}
1297
1298function stop_lttng_tracing_notap ()
1299{
1300 stop_lttng_tracing_opt 0 0 "$@"
96340a01
JR
1301}
1302
d3e8f6bb
DG
1303function destroy_lttng_session ()
1304{
854382b8
JR
1305 local withtap=$1
1306 local expected_to_fail=$2
1307 local sess_name=$3
d3e8f6bb 1308
2cf48300 1309 $TESTDIR/../src/bin/lttng/$LTTNG_BIN destroy $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 1310 ret=$?
96340a01 1311 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 1312 test "$ret" -ne "0"
854382b8
JR
1313 ret=$?
1314 if [ $withtap -eq "1" ]; then
1315 ok $ret "Destroy session $sess_name failed as expected"
1316 fi
01513c3e 1317 else
854382b8
JR
1318 if [ $withtap -eq "1" ]; then
1319 ok $ret "Destroy session $sess_name"
1320 fi
01513c3e 1321 fi
d3e8f6bb
DG
1322}
1323
67b4c664
JR
1324function destroy_lttng_session_ok ()
1325{
854382b8 1326 destroy_lttng_session 1 0 "$@"
67b4c664
JR
1327
1328}
1329
1330function destroy_lttng_session_fail ()
1331{
854382b8 1332 destroy_lttng_session 1 1 "$@"
67b4c664
JR
1333}
1334
854382b8
JR
1335function destroy_lttng_session_notap ()
1336{
1337 destroy_lttng_session 0 0 "$@"
1338}
67b4c664 1339
873c2aae
JRJ
1340function destroy_lttng_sessions ()
1341{
2cf48300 1342 $TESTDIR/../src/bin/lttng/$LTTNG_BIN destroy --all 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
873c2aae
JRJ
1343 ok $? "Destroy all lttng sessions"
1344}
1345
07b86b52
JD
1346function lttng_snapshot_add_output ()
1347{
b5633831
JR
1348 local expected_to_fail=$1
1349 local sess_name=$2
1350 local trace_path=$3
07b86b52 1351
030ccc25 1352 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot add-output -s $sess_name $trace_path 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 1353 ret=$?
b5633831 1354 if [[ $expected_to_fail -eq 1 ]]; then
01513c3e 1355 test "$ret" -ne "0"
34ab15c5 1356 ok $? "Added snapshot output file://$trace_path failed as expected"
01513c3e
JRJ
1357 else
1358 ok $ret "Added snapshot output file://$trace_path"
1359 fi
07b86b52
JD
1360}
1361
b5633831
JR
1362function lttng_snapshot_add_output_ok ()
1363{
1364 lttng_snapshot_add_output 0 "$@"
1365}
1366
1367function lttng_snapshot_add_output_fail ()
1368{
1369 lttng_snapshot_add_output 1 "$@"
1370}
1371
26402e0c
DG
1372function lttng_snapshot_del_output ()
1373{
31580dc7
JR
1374 local expected_to_fail=$1
1375 local sess_name=$2
1376 local id=$3
26402e0c 1377
2cf48300 1378 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot del-output -s $sess_name $id 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 1379 ret=$?
31580dc7 1380 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 1381 test "$ret" -ne "0"
34ab15c5 1382 ok $? "Deleted snapshot output id $id failed as expected"
01513c3e
JRJ
1383 else
1384 ok $ret "Deleted snapshot output id $id"
1385 fi
26402e0c
DG
1386}
1387
31580dc7
JR
1388function lttng_snapshot_del_output_ok ()
1389{
1390 lttng_snapshot_del_output 0 "$@"
1391}
1392
1393function lttng_snapshot_del_output_fail ()
1394{
1395 lttng_snapshot_del_output 1 "$@"
1396}
1397
07b86b52
JD
1398function lttng_snapshot_record ()
1399{
7d0ad314
JRJ
1400 local sess_name=$1
1401 local trace_path=$2
07b86b52 1402
2a166864 1403 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot record -s $sess_name $trace_path 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
07b86b52
JD
1404 ok $? "Snapshot recorded"
1405}
1406
01513c3e
JRJ
1407function lttng_snapshot_list ()
1408{
1409 local sess_name=$1
2cf48300 1410 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot list-output -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e
JRJ
1411 ok $? "Snapshot list"
1412}
1413
e02b109b
DG
1414function lttng_save()
1415{
1416 local sess_name=$1
1417 local opts=$2
1418
2cf48300 1419 $TESTDIR/../src/bin/lttng/$LTTNG_BIN save $sess_name $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
34ab15c5 1420 ok $? "Session saved"
e02b109b
DG
1421}
1422
1423function lttng_load()
1424{
192ac418
JR
1425 local expected_to_fail=$1
1426 local opts=$2
e02b109b 1427
2cf48300 1428 $TESTDIR/../src/bin/lttng/$LTTNG_BIN load $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
192ac418
JR
1429 ret=$?
1430 if [[ $expected_to_fail -eq "1" ]]; then
1431 test $ret -ne "0"
1432 ok $? "Load command failed as expected with opts: $opts"
1433 else
1434 ok $ret "Load command with opts: $opts"
1435 fi
1436}
1437
1438function lttng_load_ok()
1439{
1440 lttng_load 0 "$@"
1441}
1442
1443function lttng_load_fail()
1444{
1445 lttng_load 1 "$@"
e02b109b
DG
1446}
1447
e83a8bdb
JR
1448function lttng_track()
1449{
1450 local expected_to_fail=$1
1451 local opts=$2
1452 $TESTDIR/../src/bin/lttng/$LTTNG_BIN track $opts >$OUTPUT_DEST
1453 ret=$?
1454 if [[ $expected_to_fail -eq "1" ]]; then
1455 test $ret -ne "0"
1456 ok $? "Track command failed as expected with opts: $opts"
1457 else
34ab15c5 1458 ok $ret "Track command with opts: $opts"
e83a8bdb
JR
1459 fi
1460}
1461
1462function lttng_track_ok()
1463{
1464 lttng_track 0 "$@"
1465}
1466
1467function lttng_track_fail()
1468{
1469 lttng_track 1 "$@"
1470}
1471
1472function lttng_untrack()
1473{
1474 local expected_to_fail=$1
1475 local opts=$2
1476 $TESTDIR/../src/bin/lttng/$LTTNG_BIN untrack $opts >$OUTPUT_DEST
1477 ret=$?
1478 if [[ $expected_to_fail -eq "1" ]]; then
1479 test $ret -ne "0"
1480 ok $? "Untrack command failed as expected with opts: $opts"
1481 else
34ab15c5 1482 ok $ret "Untrack command with opts: $opts"
e83a8bdb
JR
1483 fi
1484}
1485
1486function lttng_untrack_ok()
1487{
1488 lttng_untrack 0 "$@"
1489}
1490
1491function lttng_untrack_fail()
1492{
1493 lttng_untrack 1 "$@"
1494}
1495
c8e51d15
FD
1496function lttng_track_pid_ok()
1497{
1498 PID=$1
1499 "$TESTDIR/../src/bin/lttng/$LTTNG_BIN" track --kernel --pid=$PID 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1500 ok $? "Lttng track pid on the kernel domain"
1501}
1502
1503function lttng_untrack_kernel_all_ok()
1504{
1505 "$TESTDIR/../src/bin/lttng/$LTTNG_BIN" untrack --kernel --pid --all 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1506 ok $? "Lttng untrack all pid on the kernel domain"
1507}
1508
59deec0c
JR
1509function lttng_add_context_list()
1510{
1511 $TESTDIR/../src/bin/lttng/$LTTNG_BIN add-context --list 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1512 ret=$?
1513 ok $ret "Context listing"
1514}
1515
8dcef147
JR
1516function add_context_lttng()
1517{
1518 local expected_to_fail="$1"
1519 local domain="$2"
1520 local session_name="$3"
1521 local channel_name="$4"
1522 local type="$5"
1523
1524 $TESTDIR/../src/bin/lttng/$LTTNG_BIN add-context -s $session_name -c $channel_name -t $type $domain 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1525 ret=$?
1526 if [[ $expected_to_fail -eq "1" ]]; then
1527 test $ret -ne "0"
1528 ok $? "Add context command failed as expected for type: $type"
1529 else
1530 ok $ret "Add context command for type: $type"
1531 fi
1532}
1533
1534function add_context_ust_ok()
1535{
1536 add_context_lttng 0 -u "$@"
1537}
1538
1539function add_context_ust_fail()
1540{
1541 add_context_lttng 1 -u "$@"
1542}
1543
1544function add_context_kernel_ok()
1545{
1546 add_context_lttng 0 -k "$@"
1547}
1548
1549function add_context_kernel_fail()
1550{
1551 add_context_lttng 1 -k "$@"
1552}
1553
c54b437e
FD
1554function validate_metadata_event ()
1555{
1556 local event_name=$1
1557 local nr_event_id=$2
1558 local trace_path=$3
1559
1560 local metadata_file=$(find $trace_path | grep metadata)
1561 local metadata_path=$(dirname $metadata_file)
1562
1563 which $BABELTRACE_BIN >/dev/null
1564 skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches"
1565
1566 local count=$($BABELTRACE_BIN --output-format=ctf-metadata $metadata_path | grep $event_name | wc -l)
1567
1568 if [ "$count" -ne "$nr_event_id" ]; then
1569 fail "Metadata match with the metadata of $count event(s) named $event_name"
1570 diag "$count matching event id found in metadata"
1571 else
1572 pass "Metadata match with the metadata of $count event(s) named $event_name"
1573 fi
1574
1575}
1576
d3e8f6bb
DG
1577function trace_matches ()
1578{
7d0ad314
JRJ
1579 local event_name=$1
1580 local nr_iter=$2
1581 local trace_path=$3
d3e8f6bb 1582
317eef93 1583 which $BABELTRACE_BIN >/dev/null
29655db7 1584 skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches"
d3e8f6bb 1585
7d0ad314 1586 local count=$($BABELTRACE_BIN $trace_path | grep $event_name | wc -l)
29655db7 1587
d3e8f6bb 1588 if [ "$count" -ne "$nr_iter" ]; then
29655db7 1589 fail "Trace match"
af91abc9 1590 diag "$count matching events found in trace"
d3e8f6bb 1591 else
29655db7 1592 pass "Trace match"
d3e8f6bb
DG
1593 fi
1594}
f4e40ab6 1595
d53addeb
DG
1596function trace_match_only()
1597{
1598 local event_name=$1
1599 local nr_iter=$2
1600 local trace_path=$3
1601
1602 which $BABELTRACE_BIN >/dev/null
1603 skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches"
1604
1605 local count=$($BABELTRACE_BIN $trace_path | grep $event_name | wc -l)
1606 local total=$($BABELTRACE_BIN $trace_path | wc -l)
1607
08f96a38
JG
1608 if [ "$nr_iter" -eq "$count" ] && [ "$total" -eq "$nr_iter" ]; then
1609 pass "Trace match with $total event $event_name"
1610 else
1611 fail "Trace match"
1612 diag "$total event(s) found, expecting $nr_iter of event $event_name and only found $count"
1613 fi
d53addeb
DG
1614}
1615
f4e40ab6
DG
1616function validate_trace
1617{
7d0ad314
JRJ
1618 local event_name=$1
1619 local trace_path=$2
f4e40ab6
DG
1620
1621 which $BABELTRACE_BIN >/dev/null
29655db7
CB
1622 if [ $? -ne 0 ]; then
1623 skip 0 "Babeltrace binary not found. Skipping trace validation"
f4e40ab6
DG
1624 fi
1625
07b86b52
JD
1626 OLDIFS=$IFS
1627 IFS=","
1628 for i in $event_name; do
1629 traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | grep $i | wc -l)
1630 if [ "$traced" -ne 0 ]; then
ebaaaf5e 1631 pass "Validate trace for event $i, $traced events"
07b86b52
JD
1632 else
1633 fail "Validate trace for event $i"
1634 diag "Found $traced occurences of $i"
1635 fi
1636 done
1637 ret=$?
1638 IFS=$OLDIFS
1639 return $ret
f4e40ab6 1640}
8cfcd41c 1641
54cd6107
JD
1642function validate_trace_count
1643{
1644 local event_name=$1
1645 local trace_path=$2
1646 local expected_count=$3
1647
1648 which $BABELTRACE_BIN >/dev/null
1649 if [ $? -ne 0 ]; then
1650 skip 0 "Babeltrace binary not found. Skipping trace validation"
1651 fi
1652
1653 cnt=0
1654 OLDIFS=$IFS
1655 IFS=","
1656 for i in $event_name; do
1657 traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | grep $i | wc -l)
1658 if [ "$traced" -ne 0 ]; then
1659 pass "Validate trace for event $i, $traced events"
1660 else
1661 fail "Validate trace for event $i"
1662 diag "Found $traced occurences of $i"
1663 fi
1664 cnt=$(($cnt + $traced))
1665 done
1666 IFS=$OLDIFS
1667 test $cnt -eq $expected_count
1668 ok $? "Read a total of $cnt events, expected $expected_count"
1669}
1670
086e6add
MD
1671function trace_first_line
1672{
1673 local trace_path=$1
1674
1675 which $BABELTRACE_BIN >/dev/null
1676 if [ $? -ne 0 ]; then
1677 skip 0 "Babeltrace binary not found. Skipping trace validation"
1678 fi
1679
1680 $BABELTRACE_BIN $trace_path 2>/dev/null | head -n 1
1681}
1682
8cfcd41c
MD
1683function validate_trace_exp()
1684{
1685 local event_exp=$1
1686 local trace_path=$2
1687
1688 which $BABELTRACE_BIN >/dev/null
1689 skip $? -ne 0 "Babeltrace binary not found. Skipping trace validation"
1690
49538c32 1691 traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | grep --extended-regexp ${event_exp} | wc -l)
8cfcd41c
MD
1692 if [ "$traced" -ne 0 ]; then
1693 pass "Validate trace for expression '${event_exp}', $traced events"
1694 else
1695 fail "Validate trace for expression '${event_exp}'"
1696 diag "Found $traced occurences of '${event_exp}'"
1697 fi
1698 ret=$?
1699 return $ret
1700}
1701
1702function validate_trace_only_exp()
1703{
1704 local event_exp=$1
1705 local trace_path=$2
1706
1707 which $BABELTRACE_BIN >/dev/null
1708 skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches"
1709
49538c32 1710 local count=$($BABELTRACE_BIN $trace_path | grep --extended-regexp ${event_exp} | wc -l)
8cfcd41c
MD
1711 local total=$($BABELTRACE_BIN $trace_path | wc -l)
1712
1713 if [ "$count" -ne 0 ] && [ "$total" -eq "$count" ]; then
ab95d85d 1714 pass "Trace match with $total for expression '${event_exp}'"
8cfcd41c
MD
1715 else
1716 fail "Trace match"
1717 diag "$total syscall event(s) found, only syscalls matching expression '${event_exp}' ($count occurrences) are expected"
1718 fi
1719 ret=$?
1720 return $ret
1721}
1722
1723function validate_trace_empty()
1724{
1725 local trace_path=$1
1726
1727 which $BABELTRACE_BIN >/dev/null
1728 if [ $? -ne 0 ]; then
1729 skip 0 "Babeltrace binary not found. Skipping trace validation"
1730 fi
1731
2462eee7
JD
1732 events=$($BABELTRACE_BIN $trace_path 2>/dev/null)
1733 ret=$?
1734 if [ $ret -ne 0 ]; then
1735 fail "Failed to parse trace"
1736 return $ret
1737 fi
1738
1739 traced=$(echo -n "$events" | wc -l)
8cfcd41c
MD
1740 if [ "$traced" -eq 0 ]; then
1741 pass "Validate empty trace"
1742 else
1743 fail "Validate empty trace"
1744 diag "Found $traced events in trace"
1745 fi
1746 ret=$?
1747 return $ret
1748}
801236b0 1749
eded6438 1750function regenerate_metadata ()
801236b0
JD
1751{
1752 local expected_to_fail=$1
1753 local sess_name=$2
1754
eded6438 1755 $TESTDIR/../src/bin/lttng/$LTTNG_BIN regenerate metadata -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
801236b0
JD
1756 ret=$?
1757 if [[ $expected_to_fail -eq "1" ]]; then
1758 test "$ret" -ne "0"
eded6438 1759 ok $? "Expected fail on regenerate metadata $sess_name"
801236b0
JD
1760 else
1761 ok $ret "Metadata regenerate $sess_name"
1762 fi
1763}
1764
eded6438 1765function regenerate_metadata_ok ()
801236b0 1766{
eded6438 1767 regenerate_metadata 0 "$@"
801236b0
JD
1768}
1769
eded6438 1770function regenerate_metadata_fail ()
801236b0 1771{
eded6438 1772 regenerate_metadata 1 "$@"
801236b0 1773}
512eb148 1774
54cd6107
JD
1775function regenerate_statedump ()
1776{
1777 local expected_to_fail=$1
1778 local sess_name=$2
1779
1780 $TESTDIR/../src/bin/lttng/$LTTNG_BIN regenerate statedump -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1781 ret=$?
1782 if [[ $expected_to_fail -eq "1" ]]; then
1783 test "$ret" -ne "0"
1784 ok $? "Expected fail on regenerate statedump $sess_name"
1785 else
1786 ok $ret "Metadata regenerate $sess_name"
1787 fi
1788}
1789
1790function regenerate_statedump_ok ()
1791{
1792 regenerate_statedump 0 "$@"
1793}
1794
1795function regenerate_statedump_fail ()
1796{
1797 regenerate_statedump 1 "$@"
1798}
1799
e7716c6a
JD
1800function rotate_session ()
1801{
1802 local expected_to_fail=$1
1803 local sess_name=$2
1804
1805 $TESTDIR/../src/bin/lttng/$LTTNG_BIN rotate $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1806 ret=$?
1807 if [[ $expected_to_fail -eq "1" ]]; then
1808 test "$ret" -ne "0"
1809 ok $? "Expected fail on rotate session $sess_name"
1810 else
1811 ok $ret "Rotate session $sess_name"
1812 fi
1813}
1814
1815function rotate_session_ok ()
1816{
1817 rotate_session 0 "$@"
1818}
1819
1820function rotate_session_fail ()
1821{
1822 rotate_session 1 "$@"
1823}
1824
512eb148
JD
1825function destructive_tests_enabled ()
1826{
1827 if [ ${LTTNG_ENABLE_DESTRUCTIVE_TESTS} = "will-break-my-system" ]; then
1828 return 0
1829 else
1830 return 1
1831 fi
1832}
e7716c6a
JD
1833
1834function lttng_enable_rotation_timer ()
1835{
1836 local expected_to_fail=$1
1837 local sess_name=$2
1838 local period=$3
1839
1840 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-rotation -s $sess_name --timer $period 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1841 ret=$?
1842 if [[ $expected_to_fail -eq "1" ]]; then
1843 test "$ret" -ne "0"
9498e289 1844 ok $? "Expected fail when setting periodic rotation ($period) of session $sess_name"
e7716c6a 1845 else
795f9063 1846 ok $ret "Set periodic rotation ($period) of session $sess_name"
e7716c6a
JD
1847 fi
1848}
1849
1850function lttng_enable_rotation_timer_ok ()
1851{
1852 lttng_enable_rotation_timer 0 $@
1853}
1854
1855function lttng_enable_rotation_timer_fail ()
1856{
1857 lttng_enable_rotation_timer 1 $@
1858}
1859
1860function lttng_enable_rotation_size ()
1861{
1862 local expected_to_fail=$1
1863 local sess_name=$2
1864 local size=$3
1865
1866 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-rotation -s $sess_name --size $size 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1867 ret=$?
1868 if [[ $expected_to_fail -eq "1" ]]; then
1869 test "$ret" -ne "0"
1870 ok $? "Expected fail on rotate session $sess_name"
1871 else
1872 ok $ret "Rotate session $sess_name"
1873 fi
1874}
1875
1876function lttng_enable_rotation_size_ok ()
1877{
1878 lttng_enable_rotation_size 0 $@
1879}
1880
1881function lttng_enable_rotation_size_fail ()
1882{
1883 lttng_enable_rotation_size 1 $@
1884}
This page took 0.130788 seconds and 4 git commands to generate.