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