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