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