tests: test kernel snapshot with discard buffers
[lttng-tools.git] / tests / utils / utils.sh
CommitLineData
10a8a223 1#!/src/bin/bash
d3e8f6bb
DG
2#
3# Copyright (C) - 2012 David Goulet <dgoulet@efficios.com>
4#
5# This library is free software; you can redistribute it and/or modify it under
6# the terms of the GNU Lesser General Public License as published by the Free
7# Software Foundation; version 2.1 of the License.
8#
9# This library is distributed in the hope that it will be useful, but WITHOUT
10# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12# details.
13#
14# You should have received a copy of the GNU Lesser General Public License
15# along with this library; if not, write to the Free Software Foundation, Inc.,
16# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
18SESSIOND_BIN="lttng-sessiond"
19356f3a 19RUNAS_BIN="lttng-runas"
f7613992 20CONSUMERD_BIN="lttng-consumerd"
f4e40ab6 21RELAYD_BIN="lttng-relayd"
d3e8f6bb
DG
22LTTNG_BIN="lttng"
23BABELTRACE_BIN="babeltrace"
2cf48300
JR
24OUTPUT_DEST=/dev/null
25ERROR_OUTPUT_DEST=/dev/null
d3e8f6bb 26
fd4dfcec
DG
27# Minimal kernel version supported for session daemon tests
28KERNEL_MAJOR_VERSION=2
29KERNEL_MINOR_VERSION=6
30KERNEL_PATCHLEVEL_VERSION=27
31
629b9335
MD
32# We set the default UST register timeout to "wait forever", so that
33# basic tests don't have to worry about hitting timeouts on busy
34# systems. Specialized tests should test those corner-cases.
35export LTTNG_UST_REGISTER_TIMEOUT=-1
36
fd7fe1a8
JR
37# We set the default lttng-sessiond path to /bin/true to prevent the spawning
38# of a daemonized sessiond. This is necessary since 'lttng create' will spawn
39# its own sessiond if none is running. It also ensures that 'lttng create'
40# fails when no sessiond is running.
41export LTTNG_SESSIOND_PATH="/bin/true"
42
29655db7
CB
43source $TESTDIR/utils/tap/tap.sh
44
fec81a7e
CB
45function print_ok ()
46{
47 # Check if we are a terminal
48 if [ -t 1 ]; then
49 echo -e "\e[1;32mOK\e[0m"
50 else
51 echo -e "OK"
52 fi
53}
54
55function print_fail ()
56{
57 # Check if we are a terminal
58 if [ -t 1 ]; then
59 echo -e "\e[1;31mFAIL\e[0m"
60 else
61 echo -e "FAIL"
62 fi
63}
64
65function print_test_banner ()
66{
7d0ad314 67 local desc="$1"
29655db7 68 diag "$desc"
fec81a7e
CB
69}
70
fd4dfcec
DG
71function validate_kernel_version ()
72{
7d0ad314 73 local kern_version=($(uname -r | awk -F. '{ printf("%d.%d.%d\n",$1,$2,$3); }' | tr '.' '\n'))
fd4dfcec
DG
74 if [ ${kern_version[0]} -gt $KERNEL_MAJOR_VERSION ]; then
75 return 0
76 fi
77 if [ ${kern_version[1]} -gt $KERNEL_MINOR_VERSION ]; then
78 return 0
79 fi
80 if [ ${kern_version[2]} -ge $KERNEL_PATCHLEVEL_VERSION ]; then
81 return 0
82 fi
83 return 1
84}
85
9ac429ef 86# Generate a random string
f4e40ab6
DG
87# $1 = number of characters; defaults to 16
88# $2 = include special characters; 1 = yes, 0 = no; defaults to yes
9ac429ef 89function randstring()
f4e40ab6
DG
90{
91 [ "$2" == "0" ] && CHAR="[:alnum:]" || CHAR="[:graph:]"
b89c3a68 92 cat /dev/urandom 2>/dev/null | tr -cd "$CHAR" 2>/dev/null | head -c ${1:-16} 2>/dev/null
f4e40ab6
DG
93 echo
94}
95
9e136324
JG
96# Return the number of _configured_ CPUs.
97function conf_proc_count()
98{
99 getconf _NPROCESSORS_CONF
100 if [ $? -ne 0 ]; then
101 diag "Failed to get the number of configured CPUs"
102 fi
103 echo
104}
105
4a180d9f 106function enable_kernel_lttng_event
f4e40ab6 107{
4a180d9f
MD
108 local expected_to_fail="$1"
109 local sess_name="$2"
110 local event_name="$3"
111 local channel_name="$4"
f4e40ab6 112
4a180d9f 113 if [ -z "$event_name" ]; then
f4e40ab6 114 # Enable all event if no event name specified
29655db7 115 event_name="-a"
f4e40ab6
DG
116 fi
117
4a180d9f 118 if [ -z "$channel_name" ]; then
07b86b52
JD
119 # default channel if none specified
120 chan=""
121 else
122 chan="-c $channel_name"
123 fi
124
2cf48300 125 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -k 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
4a180d9f
MD
126 ret=$?
127 if [[ $expected_to_fail -eq "1" ]]; then
128 test $ret -ne "0"
129 ok $? "Enable kernel event $event_name for session $session_name on channel $channel_name failed as expected"
130 else
131 ok $ret "Enable kernel event $event_name for session $sess_name"
132 fi
133}
134
135function enable_kernel_lttng_event_ok ()
136{
137 enable_kernel_lttng_event 0 "$@"
138}
139
140function enable_kernel_lttng_event_fail ()
141{
142 enable_kernel_lttng_event 1 "$@"
143}
144
145# Old interface
146function lttng_enable_kernel_event
147{
148 enable_kernel_lttng_event_ok "$@"
f4e40ab6
DG
149}
150
8cfcd41c
MD
151function lttng_enable_kernel_syscall()
152{
153 local expected_to_fail=$1
154 local sess_name=$2
155 local syscall_name=$3
156 local channel_name=$4
157
158 if [ -z $syscall_name ]; then
159 # Enable all event if no syscall name specified
160 syscall_name="-a"
161 fi
162
163 if [ -z $channel_name ]; then
164 # default channel if none specified
165 chan=""
166 else
167 chan="-c $channel_name"
168 fi
169
2cf48300 170 $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
171 ret=$?
172 if [[ $expected_to_fail -eq "1" ]]; then
173 test $ret -ne "0"
174 ok $? "Enable kernel syscall $syscall_name for session $sess_name on channel $channel_name fail as expected"
175 else
176 ok $ret "Enable kernel syscall $syscall_name for session $sess_name on channel $channel_name"
177 fi
178}
179
180function lttng_enable_kernel_syscall_ok()
181{
421b83dc 182 lttng_enable_kernel_syscall 0 "$@"
8cfcd41c
MD
183}
184
185function lttng_enable_kernel_syscall_fail()
186{
421b83dc 187 lttng_enable_kernel_syscall 1 "$@"
8cfcd41c
MD
188}
189
190function lttng_disable_kernel_syscall()
191{
192 local expected_to_fail=$1
193 local sess_name=$2
194 local syscall_name=$3
195 local channel_name=$4
196
197 if [ -z $syscall_name ]; then
198 # Enable all event if no syscall name specified
199 syscall_name="-a"
200 fi
201
202 if [ -z $channel_name ]; then
203 # default channel if none specified
204 chan=""
205 else
206 chan="-c $channel_name"
207 fi
208
2cf48300 209 $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
210
211 ret=$?
212 if [[ $expected_to_fail -eq "1" ]]; then
213 test $ret -ne "0"
34ab15c5 214 ok $? "Disable kernel syscall $syscall_name for session $sess_name on channel $channel_name failed as expected"
8cfcd41c
MD
215 else
216 ok $ret "Disable kernel syscall $syscall_name for session $sess_name on channel $channel_name"
217 fi
218}
219
220function lttng_disable_kernel_syscall_ok()
221{
421b83dc 222 lttng_disable_kernel_syscall 0 "$@"
8cfcd41c
MD
223}
224
225function lttng_disable_kernel_syscall_fail()
226{
421b83dc 227 lttng_disable_kernel_syscall 1 "$@"
8cfcd41c
MD
228}
229
d96f6315
MD
230function lttng_enable_kernel_channel()
231{
232 local expected_to_fail=$1
233 local sess_name=$2
234 local channel_name=$3
235
2cf48300 236 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -k $channel_name -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
d96f6315
MD
237 ret=$?
238 if [[ $expected_to_fail -eq "1" ]]; then
239 test "$ret" -ne "0"
34ab15c5 240 ok $? "Enable channel $channel_name for session $sess_name failed as expected"
d96f6315
MD
241 else
242 ok $ret "Enable channel $channel_name for session $sess_name"
243 fi
244}
245
246function lttng_enable_kernel_channel_ok()
247{
421b83dc 248 lttng_enable_kernel_channel 0 "$@"
d96f6315
MD
249}
250
251function lttng_enable_kernel_channel_fail()
252{
421b83dc 253 lttng_enable_kernel_channel 1 "$@"
d96f6315
MD
254}
255
256function lttng_disable_kernel_channel()
257{
258 local expected_to_fail=$1
259 local sess_name=$2
260 local channel_name=$3
261
2cf48300 262 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-channel -k $channel_name -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
d96f6315
MD
263 ret=$?
264 if [[ $expected_to_fail -eq "1" ]]; then
265 test "$ret" -ne "0"
34ab15c5 266 ok $? "Disable channel $channel_name for session $sess_name failed as expected"
d96f6315 267 else
34ab15c5 268 ok $ret "Disable channel $channel_name for session $sess_name"
d96f6315
MD
269 fi
270}
271
272function lttng_disable_kernel_channel_ok()
273{
421b83dc 274 lttng_disable_kernel_channel 0 "$@"
d96f6315
MD
275}
276
277function lttng_disable_kernel_channel_fail()
278{
421b83dc 279 lttng_disable_kernel_channel 1 "$@"
d96f6315
MD
280}
281
05aa48da 282function start_lttng_relayd_opt()
f4e40ab6 283{
05aa48da
MD
284 local withtap=$1
285 local opt=$2
173af62f 286
f4e40ab6
DG
287 DIR=$(readlink -f $TESTDIR)
288
db7b260c 289 if [ -z $(pgrep --full lt-$RELAYD_BIN) ]; then
2cf48300 290 $DIR/../src/bin/lttng-relayd/$RELAYD_BIN -b $opt 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
25a818af 291 #$DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt -vvv >>/tmp/relayd.log 2>&1 &
f4e40ab6 292 if [ $? -eq 1 ]; then
05aa48da
MD
293 if [ $withtap -eq "1" ]; then
294 fail "Start lttng-relayd (opt: $opt)"
295 fi
f4e40ab6
DG
296 return 1
297 else
05aa48da
MD
298 if [ $withtap -eq "1" ]; then
299 pass "Start lttng-relayd (opt: $opt)"
300 fi
f4e40ab6
DG
301 fi
302 else
29655db7 303 pass "Start lttng-relayd (opt: $opt)"
f4e40ab6
DG
304 fi
305}
306
05aa48da 307function start_lttng_relayd()
f4e40ab6 308{
05aa48da
MD
309 start_lttng_relayd_opt 1 "$@"
310}
311
312function start_lttng_relayd_notap()
313{
314 start_lttng_relayd_opt 0 "$@"
315}
316
317function stop_lttng_relayd_opt()
318{
319 local withtap=$1
320
db7b260c 321 PID_RELAYD=`pgrep --full lt-$RELAYD_BIN`
f4e40ab6 322
05aa48da
MD
323 if [ $withtap -eq "1" ]; then
324 diag "Killing lttng-relayd (pid: $PID_RELAYD)"
325 fi
2cf48300 326 kill $PID_RELAYD 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1fb23888 327 retval=$?
29655db7 328
05aa48da
MD
329 if [ $? -eq 1 ]; then
330 if [ $withtap -eq "1" ]; then
331 fail "Kill relay daemon"
332 fi
333 return 1
334 else
f4e40ab6
DG
335 out=1
336 while [ -n "$out" ]; do
db7b260c 337 out=$(pgrep --full lt-$RELAYD_BIN)
f4e40ab6
DG
338 sleep 0.5
339 done
05aa48da
MD
340 if [ $withtap -eq "1" ]; then
341 pass "Kill relay daemon"
342 fi
1fb23888
MD
343 fi
344 return $retval
345}
346
05aa48da 347function stop_lttng_relayd()
1fb23888 348{
05aa48da
MD
349 stop_lttng_relayd_opt 1 "$@"
350}
1fb23888 351
05aa48da
MD
352function stop_lttng_relayd_notap()
353{
354 stop_lttng_relayd_opt 0 "$@"
f4e40ab6
DG
355}
356
05aa48da
MD
357#First arg: show tap output
358#Second argument: load path for automatic loading
359function start_lttng_sessiond_opt()
355f483d 360{
05aa48da
MD
361 local withtap=$1
362 local load_path=$2
8d51ddbc 363
355f483d
DG
364 if [ -n $TEST_NO_SESSIOND ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
365 # Env variable requested no session daemon
366 return
367 fi
368
29655db7
CB
369 validate_kernel_version
370 if [ $? -ne 0 ]; then
371 fail "Start session daemon"
372 BAIL_OUT "*** Kernel too old for session daemon tests ***"
355f483d
DG
373 fi
374
29655db7 375 DIR=$(readlink -f $TESTDIR)
d3d97763
JG
376 : ${LTTNG_SESSION_CONFIG_XSD_PATH=${DIR}/../src/common/config/}
377 export LTTNG_SESSION_CONFIG_XSD_PATH
29655db7 378
db7b260c 379 if [ -z $(pgrep --full lt-$SESSIOND_BIN) ]; then
8d51ddbc 380 # Have a load path ?
05aa48da 381 if [ -n "$load_path" ]; then
e4f8013b 382 $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --load "$load_path" --background --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
8d51ddbc
JRJ
383 else
384 $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"
385 fi
0fc2834c 386 #$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 387 status=$?
05aa48da
MD
388 if [ $withtap -eq "1" ]; then
389 ok $status "Start session daemon"
390 fi
29655db7 391 fi
355f483d
DG
392}
393
05aa48da
MD
394function start_lttng_sessiond()
395{
396 start_lttng_sessiond_opt 1 "$@"
397}
398
399function start_lttng_sessiond_notap()
d3e8f6bb 400{
05aa48da
MD
401 start_lttng_sessiond_opt 0 "$@"
402}
403
404function stop_lttng_sessiond_opt()
405{
406 local withtap=$1
4c80129b
JR
407 local signal=$2
408 local kill_opt=""
05aa48da 409
355f483d
DG
410 if [ -n $TEST_NO_SESSIOND ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
411 # Env variable requested no session daemon
412 return
413 fi
414
19356f3a 415 PID_SESSIOND="$(pgrep --full lt-$SESSIOND_BIN) $(pgrep --full $RUNAS_BIN)"
d3e8f6bb 416
4c80129b
JR
417 if [ -n "$2" ]; then
418 kill_opt="$kill_opt -s $signal"
419 fi
8490897a
MD
420 if [ $withtap -eq "1" ]; then
421 diag "Killing lt-$SESSIOND_BIN pids: $(echo $PID_SESSIOND | tr '\n' ' ')"
422 fi
4c80129b 423 kill $kill_opt $PID_SESSIOND 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 424
d3e8f6bb 425 if [ $? -eq 1 ]; then
05aa48da
MD
426 if [ $withtap -eq "1" ]; then
427 fail "Kill sessions daemon"
428 fi
d3e8f6bb 429 else
5fa32580
DG
430 out=1
431 while [ -n "$out" ]; do
db7b260c 432 out=$(pgrep --full lt-$SESSIOND_BIN)
5fa32580
DG
433 sleep 0.5
434 done
f7613992
MD
435 out=1
436 while [ -n "$out" ]; do
db7b260c 437 out=$(pgrep --full $CONSUMERD_BIN)
f7613992
MD
438 sleep 0.5
439 done
05aa48da
MD
440 if [ $withtap -eq "1" ]; then
441 pass "Kill session daemon"
442 fi
d3e8f6bb
DG
443 fi
444}
445
05aa48da
MD
446function stop_lttng_sessiond()
447{
448 stop_lttng_sessiond_opt 1 "$@"
449}
450
451function stop_lttng_sessiond_notap()
452{
453 stop_lttng_sessiond_opt 0 "$@"
454}
455
8490897a
MD
456function sigstop_lttng_sessiond_opt()
457{
458 local withtap=$1
459 local signal=SIGSTOP
460 local kill_opt=""
461
462 if [ -n $TEST_NO_SESSIOND ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
463 # Env variable requested no session daemon
464 return
465 fi
466
19356f3a 467 PID_SESSIOND="$(pgrep --full lt-$SESSIOND_BIN) $(pgrep --full $RUNAS_BIN)"
8490897a
MD
468
469 kill_opt="$kill_opt -s $signal"
470
471 if [ $withtap -eq "1" ]; then
472 diag "Sending SIGSTOP to lt-$SESSIOND_BIN pids: $(echo $PID_SESSIOND | tr '\n' ' ')"
473 fi
474 kill $kill_opt $PID_SESSIOND 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
475
476 if [ $? -eq 1 ]; then
477 if [ $withtap -eq "1" ]; then
478 fail "Sending SIGSTOP to session daemon"
479 fi
480 else
481 out=1
482 while [ $out -ne 0 ]; do
483 pid=$(pgrep --full lt-$SESSIOND_BIN)
484
485 # Wait until state becomes stopped for session
486 # daemon(s).
487 out=0
488 for sessiond_pid in $pid; do
489 state=$(ps -p $sessiond_pid -o state= )
490 if [[ -n "$state" && "$state" != "T" ]]; then
491 out=1
492 fi
493 done
494 sleep 0.5
495 done
496 if [ $withtap -eq "1" ]; then
497 pass "Sending SIGSTOP to session daemon"
498 fi
499 fi
500}
501
502function sigstop_lttng_sessiond()
503{
504 sigstop_lttng_sessiond_opt 1 "$@"
505}
506
507function sigstop_lttng_sessiond_notap()
508{
509 sigstop_lttng_sessiond_opt 0 "$@"
510}
511
4c80129b
JR
512function stop_lttng_consumerd_opt()
513{
514 local withtap=$1
515 local signal=$2
516 local kill_opt=""
517
db7b260c 518 PID_CONSUMERD=`pgrep --full $CONSUMERD_BIN`
4c80129b
JR
519
520 if [ -n "$2" ]; then
521 kill_opt="$kill_opt -s $signal"
522 fi
523
524 if [ $withtap -eq "1" ]; then
8490897a 525 diag "Killing $CONSUMERD_BIN pids: $(echo $PID_CONSUMERD | tr '\n' ' ')"
4c80129b
JR
526 fi
527 kill $kill_opt $PID_CONSUMERD 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
528 retval=$?
529 set +x
530
531 if [ $? -eq 1 ]; then
532 if [ $withtap -eq "1" ]; then
533 fail "Kill consumer daemon"
534 fi
535 return 1
536 else
537 out=1
538 while [ $out -ne 0 ]; do
db7b260c 539 pid=$(pgrep --full $CONSUMERD_BIN)
4c80129b
JR
540
541 # If consumerds are still present check their status.
542 # A zombie status qualifies the consumerd as *killed*
543 out=0
544 for consumer_pid in $pid; do
545 state=$(ps -p $consumer_pid -o state= )
546 if [[ -n "$state" && "$state" != "Z" ]]; then
547 out=1
548 fi
549 done
550 sleep 0.5
551 done
552 if [ $withtap -eq "1" ]; then
553 pass "Kill consumer daemon"
554 fi
555 fi
556 return $retval
557}
558
559function stop_lttng_consumerd()
560{
561 stop_lttng_consumerd_opt 1 "$@"
562}
563
564function stop_lttng_consumerd_notap()
565{
566 stop_lttng_consumerd_opt 0 "$@"
567}
568
8490897a
MD
569function sigstop_lttng_consumerd_opt()
570{
571 local withtap=$1
572 local signal=SIGSTOP
573 local kill_opt=""
574
575 PID_CONSUMERD=`pgrep --full $CONSUMERD_BIN`
576
577 kill_opt="$kill_opt -s $signal"
578
579 if [ $withtap -eq "1" ]; then
580 diag "Sending SIGSTOP to $CONSUMERD_BIN pids: $(echo $PID_CONSUMERD | tr '\n' ' ')"
581 fi
582 kill $kill_opt $PID_CONSUMERD 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
583 retval=$?
584 set +x
585
586 if [ $? -eq 1 ]; then
587 if [ $withtap -eq "1" ]; then
588 fail "Sending SIGSTOP to consumer daemon"
589 fi
590 return 1
591 else
592 out=1
593 while [ $out -ne 0 ]; do
594 pid=$(pgrep --full $CONSUMERD_BIN)
595
596 # Wait until state becomes stopped for all
597 # consumers.
598 out=0
599 for consumer_pid in $pid; do
600 state=$(ps -p $consumer_pid -o state= )
601 if [[ -n "$state" && "$state" != "T" ]]; then
602 out=1
603 fi
604 done
605 sleep 0.5
606 done
607 if [ $withtap -eq "1" ]; then
608 pass "Sending SIGSTOP to consumer daemon"
609 fi
610 fi
611 return $retval
612}
613
614function sigstop_lttng_consumerd()
615{
616 sigstop_lttng_consumerd_opt 1 "$@"
617}
618
619function sigstop_lttng_consumerd_notap()
620{
621 sigstop_lttng_consumerd_opt 0 "$@"
622}
623
873c2aae
JRJ
624function list_lttng_with_opts ()
625{
7d0ad314 626 local opts=$1
2cf48300 627 $TESTDIR/../src/bin/lttng/$LTTNG_BIN list $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
873c2aae
JRJ
628 ok $? "Lttng-tool list command with option $opts"
629}
630
07b86b52
JD
631function create_lttng_session_no_output ()
632{
7d0ad314 633 local sess_name=$1
07b86b52 634
2cf48300 635 $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $sess_name --no-output 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
07b86b52
JD
636 ok $? "Create session $sess_name in no-output mode"
637}
638
d3e8f6bb
DG
639function create_lttng_session ()
640{
bf6ae429
JR
641 local expected_to_fail=$1
642 local sess_name=$2
643 local trace_path=$3
4c80129b 644 local opt=$4
d3e8f6bb 645
4c80129b 646 $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $sess_name -o $trace_path $opt > $OUTPUT_DEST
873c2aae 647 ret=$?
bf6ae429 648 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 649 test "$ret" -ne "0"
34ab15c5 650 ok $? "Create session $sess_name in $trace_path failed as expected"
873c2aae
JRJ
651 else
652 ok $ret "Create session $sess_name in $trace_path"
653 fi
d4018451
DG
654}
655
bf6ae429
JR
656function create_lttng_session_ok ()
657{
658 create_lttng_session 0 "$@"
659}
660
661function create_lttng_session_fail ()
662{
663 create_lttng_session 1 "$@"
664}
665
666
827caf52 667function enable_ust_lttng_channel ()
d4018451 668{
34ab15c5 669 local expected_to_fail=$1
827caf52
JR
670 local sess_name=$2
671 local channel_name=$3
4c80129b 672 local opt=$4
d4018451 673
4c80129b 674 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -u $channel_name -s $sess_name $opt 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
312dabc3 675 ret=$?
34ab15c5 676 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 677 test "$ret" -ne "0"
34ab15c5 678 ok $? "Enable channel $channel_name for session $sess_name failed as expected"
312dabc3
JRJ
679 else
680 ok $ret "Enable channel $channel_name for session $sess_name"
681 fi
d4018451
DG
682}
683
827caf52
JR
684function enable_ust_lttng_channel_ok ()
685{
686 enable_ust_lttng_channel 0 "$@"
687}
688
689function enable_ust_lttng_channel_fail ()
690{
691 enable_ust_lttng_channel 1 "$@"
692}
693
29655db7 694function disable_ust_lttng_channel()
d4018451 695{
7d0ad314
JRJ
696 local sess_name=$1
697 local channel_name=$2
d4018451 698
2cf48300 699 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-channel -u $channel_name -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 700 ok $? "Disable channel $channel_name for session $sess_name"
d3e8f6bb
DG
701}
702
07b86b52
JD
703function enable_lttng_mmap_overwrite_kernel_channel()
704{
7d0ad314
JRJ
705 local sess_name=$1
706 local channel_name=$2
07b86b52 707
2cf48300 708 $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
709 ok $? "Enable channel $channel_name for session $sess_name"
710}
711
0ca1a58b
MD
712function enable_lttng_mmap_discard_small_kernel_channel()
713{
714 local sess_name=$1
715 local channel_name=$2
716
717 $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
718 ok $? "Enable small discard channel $channel_name for session $sess_name"
719}
720
721function enable_lttng_mmap_overwrite_small_kernel_channel()
722{
723 local sess_name=$1
724 local channel_name=$2
725
726 $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
727 ok $? "Enable small discard channel $channel_name for session $sess_name"
728}
729
ebaaaf5e
JD
730function enable_lttng_mmap_overwrite_ust_channel()
731{
7d0ad314
JRJ
732 local sess_name=$1
733 local channel_name=$2
ebaaaf5e 734
2cf48300 735 $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
736 ok $? "Enable channel $channel_name for session $sess_name"
737}
738
d3e8f6bb
DG
739function enable_ust_lttng_event ()
740{
c4926bb5
JR
741 local expected_to_fail=$1
742 local sess_name=$2
743 local event_name="$3"
744 local channel_name=$4
ebaaaf5e
JD
745
746 if [ -z $channel_name ]; then
747 # default channel if none specified
748 chan=""
749 else
750 chan="-c $channel_name"
751 fi
d3e8f6bb 752
2cf48300 753 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -u 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 754 ret=$?
c4926bb5 755 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 756 test $ret -ne "0"
34ab15c5 757 ok $? "Enable ust event $event_name for session $session_name failed as expected"
01513c3e 758 else
34ab15c5 759 ok $ret "Enable ust event $event_name for session $sess_name"
01513c3e 760 fi
26b53d3b
DG
761}
762
c4926bb5
JR
763function enable_ust_lttng_event_ok ()
764{
765 enable_ust_lttng_event 0 "$@"
766}
767
768function enable_ust_lttng_event_fail ()
769{
770 enable_ust_lttng_event 1 "$@"
771}
772
37175ce4
DG
773function enable_jul_lttng_event()
774{
775 sess_name=$1
776 event_name="$2"
777 channel_name=$3
778
779 if [ -z $channel_name ]; then
780 # default channel if none specified
781 chan=""
782 else
783 chan="-c $channel_name"
784 fi
785
2cf48300 786 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -j 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
37175ce4
DG
787 ok $? "Enable JUL event $event_name for session $sess_name"
788}
789
b2064f54
DG
790function enable_jul_lttng_event_loglevel()
791{
7d0ad314
JRJ
792 local sess_name=$1
793 local event_name="$2"
794 local loglevel=$3
795 local channel_name=$4
b2064f54
DG
796
797 if [ -z $channel_name ]; then
798 # default channel if none specified
799 chan=""
800 else
801 chan="-c $channel_name"
802 fi
803
2cf48300 804 $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
805 ok $? "Enable JUL event $event_name for session $sess_name with loglevel $loglevel"
806}
807
504d4ace
DG
808function enable_log4j_lttng_event()
809{
810 sess_name=$1
811 event_name="$2"
812 channel_name=$3
813
814 if [ -z $channel_name ]; then
815 # default channel if none specified
816 chan=""
817 else
818 chan="-c $channel_name"
819 fi
820
2cf48300 821 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -l 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
504d4ace
DG
822 ok $? "Enable LOG4J event $event_name for session $sess_name"
823}
824
825function enable_log4j_lttng_event_loglevel()
826{
827 local sess_name=$1
828 local event_name="$2"
829 local loglevel=$3
830 local channel_name=$4
831
832 if [ -z $channel_name ]; then
833 # default channel if none specified
834 chan=""
835 else
836 chan="-c $channel_name"
837 fi
838
2cf48300 839 $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
840 ok $? "Enable LOG4J event $event_name for session $sess_name with loglevel $loglevel"
841}
842
0e115563
DG
843function enable_python_lttng_event()
844{
845 sess_name=$1
846 event_name="$2"
847 channel_name=$3
848
849 if [ -z $channel_name ]; then
850 # default channel if none specified
851 chan=""
852 else
853 chan="-c $channel_name"
854 fi
855
2cf48300 856 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -p 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
0e115563
DG
857 ok $? "Enable Python event $event_name for session $sess_name"
858}
859
860function enable_python_lttng_event_loglevel()
861{
862 local sess_name=$1
863 local event_name="$2"
864 local loglevel=$3
865 local channel_name=$4
866
867 if [ -z $channel_name ]; then
868 # default channel if none specified
869 chan=""
870 else
871 chan="-c $channel_name"
872 fi
873
2cf48300 874 $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
875 ok $? "Enable Python event $event_name for session $sess_name with loglevel $loglevel"
876}
877
26b53d3b
DG
878function enable_ust_lttng_event_filter()
879{
7d0ad314
JRJ
880 local sess_name="$1"
881 local event_name="$2"
882 local filter="$3"
26b53d3b 883
2cf48300 884 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" -s $sess_name -u --filter "$filter" 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 885 ok $? "Enable event $event_name with filtering for session $sess_name"
26b53d3b
DG
886}
887
888function enable_ust_lttng_event_loglevel()
889{
7d0ad314
JRJ
890 local sess_name="$1"
891 local event_name="$2"
892 local loglevel="$3"
26b53d3b 893
2cf48300 894 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" -s $sess_name -u --loglevel $loglevel 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 895 ok $? "Enable event $event_name with loglevel $loglevel"
26b53d3b
DG
896}
897
898function enable_ust_lttng_event_loglevel_only()
899{
7d0ad314
JRJ
900 local sess_name="$1"
901 local event_name="$2"
902 local loglevel="$3"
26b53d3b 903
2cf48300 904 $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 905 ok $? "Enable event $event_name with loglevel-only $loglevel"
26b53d3b
DG
906}
907
908function disable_ust_lttng_event ()
909{
7d0ad314
JRJ
910 local sess_name="$1"
911 local event_name="$2"
01513c3e 912 local channel_name="$3"
26b53d3b 913
01513c3e
JRJ
914 if [ -z $channel_name ]; then
915 # default channel if none specified
916 chan=""
917 else
918 chan="-c $channel_name"
919 fi
920
2cf48300 921 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name $chan -u 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 922 ok $? "Disable event $event_name for session $sess_name"
d3e8f6bb
DG
923}
924
1d842d5a
DG
925function disable_jul_lttng_event ()
926{
927 local sess_name="$1"
928 local event_name="$2"
929
930 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name -j >/dev/null 2>&1
931 ok $? "Disable JUL event $event_name for session $sess_name"
932}
933
504d4ace
DG
934function disable_log4j_lttng_event ()
935{
936 local sess_name="$1"
937 local event_name="$2"
938
939 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name -l >/dev/null 2>&1
940 ok $? "Disable LOG4J event $event_name for session $sess_name"
941}
942
0e115563
DG
943function disable_python_lttng_event ()
944{
945 local sess_name="$1"
946 local event_name="$2"
947
2cf48300 948 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name -p 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
0e115563
DG
949 ok $? "Disable Python event $event_name for session $sess_name"
950}
951
fb3268e3 952function start_lttng_tracing ()
d3e8f6bb 953{
e563bbdb
JR
954 local expected_to_fail=$1
955 local sess_name=$2
d3e8f6bb 956
2cf48300 957 $TESTDIR/../src/bin/lttng/$LTTNG_BIN start $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 958 ret=$?
e563bbdb 959 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 960 test "$ret" -ne "0"
34ab15c5 961 ok $? "Start tracing for session $sess_name failed as expected"
01513c3e
JRJ
962 else
963 ok $ret "Start tracing for session $sess_name"
964 fi
d3e8f6bb
DG
965}
966
e563bbdb
JR
967function start_lttng_tracing_ok ()
968{
969 start_lttng_tracing 0 "$@"
970}
971
972function start_lttng_tracing_fail ()
973{
974 start_lttng_tracing 1 "$@"
975}
976
fb3268e3 977function stop_lttng_tracing ()
d3e8f6bb 978{
96340a01
JR
979 local expected_to_fail=$1
980 local sess_name=$2
d3e8f6bb 981
2cf48300 982 $TESTDIR/../src/bin/lttng/$LTTNG_BIN stop $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 983 ret=$?
96340a01 984 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 985 test "$ret" -ne "0"
34ab15c5 986 ok $? "Stop lttng tracing for session $sess_name failed as expected"
01513c3e
JRJ
987 else
988 ok $ret "Stop lttng tracing for session $sess_name"
989 fi
d3e8f6bb
DG
990}
991
96340a01
JR
992function stop_lttng_tracing_ok ()
993{
994 stop_lttng_tracing 0 "$@"
995}
996
997function stop_lttng_tracing_fail ()
998{
999 stop_lttng_tracing 1 "$@"
1000}
1001
d3e8f6bb
DG
1002function destroy_lttng_session ()
1003{
67b4c664
JR
1004 local expected_to_fail=$1
1005 local sess_name=$2
d3e8f6bb 1006
2cf48300 1007 $TESTDIR/../src/bin/lttng/$LTTNG_BIN destroy $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 1008 ret=$?
96340a01 1009 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 1010 test "$ret" -ne "0"
34ab15c5 1011 ok $? "Destroy session $sess_name failed as expected"
01513c3e
JRJ
1012 else
1013 ok $ret "Destroy session $sess_name"
1014 fi
d3e8f6bb
DG
1015}
1016
67b4c664
JR
1017function destroy_lttng_session_ok ()
1018{
1019 destroy_lttng_session 0 "$@"
1020
1021}
1022
1023function destroy_lttng_session_fail ()
1024{
1025 destroy_lttng_session 1 "$@"
1026}
1027
1028
873c2aae
JRJ
1029function destroy_lttng_sessions ()
1030{
2cf48300 1031 $TESTDIR/../src/bin/lttng/$LTTNG_BIN destroy --all 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
873c2aae
JRJ
1032 ok $? "Destroy all lttng sessions"
1033}
1034
07b86b52
JD
1035function lttng_snapshot_add_output ()
1036{
b5633831
JR
1037 local expected_to_fail=$1
1038 local sess_name=$2
1039 local trace_path=$3
07b86b52 1040
2cf48300 1041 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot add-output -s $sess_name file://$trace_path 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 1042 ret=$?
b5633831 1043 if [[ $expected_to_fail -eq 1 ]]; then
01513c3e 1044 test "$ret" -ne "0"
34ab15c5 1045 ok $? "Added snapshot output file://$trace_path failed as expected"
01513c3e
JRJ
1046 else
1047 ok $ret "Added snapshot output file://$trace_path"
1048 fi
07b86b52
JD
1049}
1050
b5633831
JR
1051function lttng_snapshot_add_output_ok ()
1052{
1053 lttng_snapshot_add_output 0 "$@"
1054}
1055
1056function lttng_snapshot_add_output_fail ()
1057{
1058 lttng_snapshot_add_output 1 "$@"
1059}
1060
26402e0c
DG
1061function lttng_snapshot_del_output ()
1062{
31580dc7
JR
1063 local expected_to_fail=$1
1064 local sess_name=$2
1065 local id=$3
26402e0c 1066
2cf48300 1067 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot del-output -s $sess_name $id 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e 1068 ret=$?
31580dc7 1069 if [[ $expected_to_fail -eq "1" ]]; then
01513c3e 1070 test "$ret" -ne "0"
34ab15c5 1071 ok $? "Deleted snapshot output id $id failed as expected"
01513c3e
JRJ
1072 else
1073 ok $ret "Deleted snapshot output id $id"
1074 fi
26402e0c
DG
1075}
1076
31580dc7
JR
1077function lttng_snapshot_del_output_ok ()
1078{
1079 lttng_snapshot_del_output 0 "$@"
1080}
1081
1082function lttng_snapshot_del_output_fail ()
1083{
1084 lttng_snapshot_del_output 1 "$@"
1085}
1086
07b86b52
JD
1087function lttng_snapshot_record ()
1088{
7d0ad314
JRJ
1089 local sess_name=$1
1090 local trace_path=$2
07b86b52 1091
2cf48300 1092 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot record -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
07b86b52
JD
1093 ok $? "Snapshot recorded"
1094}
1095
01513c3e
JRJ
1096function lttng_snapshot_list ()
1097{
1098 local sess_name=$1
2cf48300 1099 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot list-output -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e
JRJ
1100 ok $? "Snapshot list"
1101}
1102
e02b109b
DG
1103function lttng_save()
1104{
1105 local sess_name=$1
1106 local opts=$2
1107
2cf48300 1108 $TESTDIR/../src/bin/lttng/$LTTNG_BIN save $sess_name $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
34ab15c5 1109 ok $? "Session saved"
e02b109b
DG
1110}
1111
1112function lttng_load()
1113{
1114 local opts=$1
1115
2cf48300 1116 $TESTDIR/../src/bin/lttng/$LTTNG_BIN load $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
34ab15c5 1117 ok $? "Load command with opts: $opts"
e02b109b
DG
1118}
1119
e83a8bdb
JR
1120function lttng_track()
1121{
1122 local expected_to_fail=$1
1123 local opts=$2
1124 $TESTDIR/../src/bin/lttng/$LTTNG_BIN track $opts >$OUTPUT_DEST
1125 ret=$?
1126 if [[ $expected_to_fail -eq "1" ]]; then
1127 test $ret -ne "0"
1128 ok $? "Track command failed as expected with opts: $opts"
1129 else
34ab15c5 1130 ok $ret "Track command with opts: $opts"
e83a8bdb
JR
1131 fi
1132}
1133
1134function lttng_track_ok()
1135{
1136 lttng_track 0 "$@"
1137}
1138
1139function lttng_track_fail()
1140{
1141 lttng_track 1 "$@"
1142}
1143
1144function lttng_untrack()
1145{
1146 local expected_to_fail=$1
1147 local opts=$2
1148 $TESTDIR/../src/bin/lttng/$LTTNG_BIN untrack $opts >$OUTPUT_DEST
1149 ret=$?
1150 if [[ $expected_to_fail -eq "1" ]]; then
1151 test $ret -ne "0"
1152 ok $? "Untrack command failed as expected with opts: $opts"
1153 else
34ab15c5 1154 ok $ret "Untrack command with opts: $opts"
e83a8bdb
JR
1155 fi
1156}
1157
1158function lttng_untrack_ok()
1159{
1160 lttng_untrack 0 "$@"
1161}
1162
1163function lttng_untrack_fail()
1164{
1165 lttng_untrack 1 "$@"
1166}
1167
8dcef147
JR
1168function add_context_lttng()
1169{
1170 local expected_to_fail="$1"
1171 local domain="$2"
1172 local session_name="$3"
1173 local channel_name="$4"
1174 local type="$5"
1175
1176 $TESTDIR/../src/bin/lttng/$LTTNG_BIN add-context -s $session_name -c $channel_name -t $type $domain 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1177 ret=$?
1178 if [[ $expected_to_fail -eq "1" ]]; then
1179 test $ret -ne "0"
1180 ok $? "Add context command failed as expected for type: $type"
1181 else
1182 ok $ret "Add context command for type: $type"
1183 fi
1184}
1185
1186function add_context_ust_ok()
1187{
1188 add_context_lttng 0 -u "$@"
1189}
1190
1191function add_context_ust_fail()
1192{
1193 add_context_lttng 1 -u "$@"
1194}
1195
1196function add_context_kernel_ok()
1197{
1198 add_context_lttng 0 -k "$@"
1199}
1200
1201function add_context_kernel_fail()
1202{
1203 add_context_lttng 1 -k "$@"
1204}
1205
d3e8f6bb
DG
1206function trace_matches ()
1207{
7d0ad314
JRJ
1208 local event_name=$1
1209 local nr_iter=$2
1210 local trace_path=$3
d3e8f6bb 1211
317eef93 1212 which $BABELTRACE_BIN >/dev/null
29655db7 1213 skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches"
d3e8f6bb 1214
7d0ad314 1215 local count=$($BABELTRACE_BIN $trace_path | grep $event_name | wc -l)
29655db7 1216
d3e8f6bb 1217 if [ "$count" -ne "$nr_iter" ]; then
29655db7
CB
1218 fail "Trace match"
1219 diag "$count events found in trace"
d3e8f6bb 1220 else
29655db7 1221 pass "Trace match"
d3e8f6bb
DG
1222 fi
1223}
f4e40ab6 1224
d53addeb
DG
1225function trace_match_only()
1226{
1227 local event_name=$1
1228 local nr_iter=$2
1229 local trace_path=$3
1230
1231 which $BABELTRACE_BIN >/dev/null
1232 skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches"
1233
1234 local count=$($BABELTRACE_BIN $trace_path | grep $event_name | wc -l)
1235 local total=$($BABELTRACE_BIN $trace_path | wc -l)
1236
1237 if [ "$nr_iter" -eq "$count" ] && [ "$total" -eq "$nr_iter" ]; then
1238 pass "Trace match with $total event $event_name"
1239 else
1240 fail "Trace match"
1241 diag "$total event(s) found, expecting $nr_iter of event $event_name and only found $count"
1242 fi
1243}
1244
f4e40ab6
DG
1245function validate_trace
1246{
7d0ad314
JRJ
1247 local event_name=$1
1248 local trace_path=$2
f4e40ab6
DG
1249
1250 which $BABELTRACE_BIN >/dev/null
29655db7
CB
1251 if [ $? -ne 0 ]; then
1252 skip 0 "Babeltrace binary not found. Skipping trace validation"
f4e40ab6
DG
1253 fi
1254
07b86b52
JD
1255 OLDIFS=$IFS
1256 IFS=","
1257 for i in $event_name; do
1258 traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | grep $i | wc -l)
1259 if [ "$traced" -ne 0 ]; then
ebaaaf5e 1260 pass "Validate trace for event $i, $traced events"
07b86b52
JD
1261 else
1262 fail "Validate trace for event $i"
1263 diag "Found $traced occurences of $i"
1264 fi
1265 done
1266 ret=$?
1267 IFS=$OLDIFS
1268 return $ret
f4e40ab6 1269}
8cfcd41c 1270
0ca1a58b
MD
1271function trace_first_line
1272{
1273 local trace_path=$1
1274
1275 which $BABELTRACE_BIN >/dev/null
1276 if [ $? -ne 0 ]; then
1277 skip 0 "Babeltrace binary not found. Skipping trace validation"
1278 fi
1279
1280 $BABELTRACE_BIN $trace_path 2>/dev/null | head -n 1
1281}
1282
8cfcd41c
MD
1283function validate_trace_exp()
1284{
1285 local event_exp=$1
1286 local trace_path=$2
1287
1288 which $BABELTRACE_BIN >/dev/null
1289 skip $? -ne 0 "Babeltrace binary not found. Skipping trace validation"
1290
1291 traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | grep ${event_exp} | wc -l)
1292 if [ "$traced" -ne 0 ]; then
1293 pass "Validate trace for expression '${event_exp}', $traced events"
1294 else
1295 fail "Validate trace for expression '${event_exp}'"
1296 diag "Found $traced occurences of '${event_exp}'"
1297 fi
1298 ret=$?
1299 return $ret
1300}
1301
1302function validate_trace_only_exp()
1303{
1304 local event_exp=$1
1305 local trace_path=$2
1306
1307 which $BABELTRACE_BIN >/dev/null
1308 skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches"
1309
1310 local count=$($BABELTRACE_BIN $trace_path | grep ${event_exp} | wc -l)
1311 local total=$($BABELTRACE_BIN $trace_path | wc -l)
1312
1313 if [ "$count" -ne 0 ] && [ "$total" -eq "$count" ]; then
1314 pass "Trace match with $total for expression '${event_exp}"
1315 else
1316 fail "Trace match"
1317 diag "$total syscall event(s) found, only syscalls matching expression '${event_exp}' ($count occurrences) are expected"
1318 fi
1319 ret=$?
1320 return $ret
1321}
1322
1323function validate_trace_empty()
1324{
1325 local trace_path=$1
1326
1327 which $BABELTRACE_BIN >/dev/null
1328 if [ $? -ne 0 ]; then
1329 skip 0 "Babeltrace binary not found. Skipping trace validation"
1330 fi
1331
1332 traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | wc -l)
1333 if [ "$traced" -eq 0 ]; then
1334 pass "Validate empty trace"
1335 else
1336 fail "Validate empty trace"
1337 diag "Found $traced events in trace"
1338 fi
1339 ret=$?
1340 return $ret
1341}
801236b0
JD
1342
1343function metadata_regenerate ()
1344{
1345 local expected_to_fail=$1
1346 local sess_name=$2
1347
1348 $TESTDIR/../src/bin/lttng/$LTTNG_BIN metadata regenerate -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1349 ret=$?
1350 if [[ $expected_to_fail -eq "1" ]]; then
1351 test "$ret" -ne "0"
1352 ok $? "Expected fail on regenerate $sess_name"
1353 else
1354 ok $ret "Metadata regenerate $sess_name"
1355 fi
1356}
1357
1358function metadata_regenerate_ok ()
1359{
1360 metadata_regenerate 0 "$@"
1361}
1362
1363function metadata_regenerate_fail ()
1364{
1365 metadata_regenerate 1 "$@"
1366}
512eb148
JD
1367
1368function destructive_tests_enabled ()
1369{
1370 if [ ${LTTNG_ENABLE_DESTRUCTIVE_TESTS} = "will-break-my-system" ]; then
1371 return 0
1372 else
1373 return 1
1374 fi
1375}
This page took 0.119218 seconds and 5 git commands to generate.