Test: prevent the spawning of a daemonized sessiond
[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"
f7613992 19CONSUMERD_BIN="lttng-consumerd"
f4e40ab6 20RELAYD_BIN="lttng-relayd"
d3e8f6bb
DG
21LTTNG_BIN="lttng"
22BABELTRACE_BIN="babeltrace"
aaf3bc91
JR
23OUTPUT_DEST=/dev/null
24ERROR_OUTPUT_DEST=/dev/null
d3e8f6bb 25
fd4dfcec
DG
26# Minimal kernel version supported for session daemon tests
27KERNEL_MAJOR_VERSION=2
28KERNEL_MINOR_VERSION=6
29KERNEL_PATCHLEVEL_VERSION=27
30
3a3c8bb2
MD
31# We set the default UST register timeout to "wait forever", so that
32# basic tests don't have to worry about hitting timeouts on busy
33# systems. Specialized tests should test those corner-cases.
34export LTTNG_UST_REGISTER_TIMEOUT=-1
35
845de12b
JR
36# We set the default lttng-sessiond path to /bin/true to prevent the spawning
37# of a daemonized sessiond. This is necessary since 'lttng create' will spawn
38# its own sessiond if none is running. It also ensures that 'lttng create'
39# fails when no sessiond is running.
40export LTTNG_SESSIOND_PATH="/bin/true"
41
29655db7
CB
42source $TESTDIR/utils/tap/tap.sh
43
fec81a7e
CB
44function print_ok ()
45{
46 # Check if we are a terminal
47 if [ -t 1 ]; then
48 echo -e "\e[1;32mOK\e[0m"
49 else
50 echo -e "OK"
51 fi
52}
53
54function print_fail ()
55{
56 # Check if we are a terminal
57 if [ -t 1 ]; then
58 echo -e "\e[1;31mFAIL\e[0m"
59 else
60 echo -e "FAIL"
61 fi
62}
63
64function print_test_banner ()
65{
7d0ad314 66 local desc="$1"
29655db7 67 diag "$desc"
fec81a7e
CB
68}
69
fd4dfcec
DG
70function validate_kernel_version ()
71{
7d0ad314 72 local kern_version=($(uname -r | awk -F. '{ printf("%d.%d.%d\n",$1,$2,$3); }' | tr '.' '\n'))
fd4dfcec
DG
73 if [ ${kern_version[0]} -gt $KERNEL_MAJOR_VERSION ]; then
74 return 0
75 fi
76 if [ ${kern_version[1]} -gt $KERNEL_MINOR_VERSION ]; then
77 return 0
78 fi
79 if [ ${kern_version[2]} -ge $KERNEL_PATCHLEVEL_VERSION ]; then
80 return 0
81 fi
82 return 1
83}
84
9ac429ef 85# Generate a random string
f4e40ab6
DG
86# $1 = number of characters; defaults to 16
87# $2 = include special characters; 1 = yes, 0 = no; defaults to yes
9ac429ef 88function randstring()
f4e40ab6
DG
89{
90 [ "$2" == "0" ] && CHAR="[:alnum:]" || CHAR="[:graph:]"
91 cat /dev/urandom | tr -cd "$CHAR" | head -c ${1:-16}
92 echo
93}
94
f4e40ab6
DG
95function lttng_enable_kernel_event
96{
7d0ad314
JRJ
97 local sess_name=$1
98 local event_name=$2
99 local channel_name=$3
f4e40ab6
DG
100
101 if [ -z $event_name ]; then
102 # Enable all event if no event name specified
29655db7 103 event_name="-a"
f4e40ab6
DG
104 fi
105
07b86b52
JD
106 if [ -z $channel_name ]; then
107 # default channel if none specified
108 chan=""
109 else
110 chan="-c $channel_name"
111 fi
112
aaf3bc91 113 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -k 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 114 ok $? "Enable kernel event $event_name for session $sess_name"
f4e40ab6
DG
115}
116
8cfcd41c
MD
117function lttng_enable_kernel_syscall()
118{
119 local expected_to_fail=$1
120 local sess_name=$2
121 local syscall_name=$3
122 local channel_name=$4
123
124 if [ -z $syscall_name ]; then
125 # Enable all event if no syscall name specified
126 syscall_name="-a"
127 fi
128
129 if [ -z $channel_name ]; then
130 # default channel if none specified
131 chan=""
132 else
133 chan="-c $channel_name"
134 fi
135
aaf3bc91 136 $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
137 ret=$?
138 if [[ $expected_to_fail -eq "1" ]]; then
139 test $ret -ne "0"
140 ok $? "Enable kernel syscall $syscall_name for session $sess_name on channel $channel_name fail as expected"
141 else
142 ok $ret "Enable kernel syscall $syscall_name for session $sess_name on channel $channel_name"
143 fi
144}
145
146function lttng_enable_kernel_syscall_ok()
147{
148 lttng_enable_kernel_syscall 0 ${*}
149}
150
151function lttng_enable_kernel_syscall_fail()
152{
153 lttng_enable_kernel_syscall 1 ${*}
154}
155
156function lttng_disable_kernel_syscall()
157{
158 local expected_to_fail=$1
159 local sess_name=$2
160 local syscall_name=$3
161 local channel_name=$4
162
163 if [ -z $syscall_name ]; then
164 # Enable all event if no syscall name specified
165 syscall_name="-a"
166 fi
167
168 if [ -z $channel_name ]; then
169 # default channel if none specified
170 chan=""
171 else
172 chan="-c $channel_name"
173 fi
174
aaf3bc91 175 $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
176
177 ret=$?
178 if [[ $expected_to_fail -eq "1" ]]; then
179 test $ret -ne "0"
180 ok $? "Disable kernel syscall $syscall_name for session $sess_name on channel $channel_name fail as expected"
181 else
182 ok $ret "Disable kernel syscall $syscall_name for session $sess_name on channel $channel_name"
183 fi
184}
185
186function lttng_disable_kernel_syscall_ok()
187{
188 lttng_disable_kernel_syscall 0 ${*}
189}
190
191function lttng_disable_kernel_syscall_fail()
192{
193 lttng_disable_kernel_syscall 1 ${*}
194}
195
d96f6315
MD
196function lttng_enable_kernel_channel()
197{
198 local expected_to_fail=$1
199 local sess_name=$2
200 local channel_name=$3
201
aaf3bc91 202 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -k $channel_name -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
d96f6315
MD
203 ret=$?
204 if [[ $expected_to_fail -eq "1" ]]; then
205 test "$ret" -ne "0"
206 ok $? "Expected failure on kernel channel creation $channel_name in $sess_name"
207 else
208 ok $ret "Enable channel $channel_name for session $sess_name"
209 fi
210}
211
212function lttng_enable_kernel_channel_ok()
213{
214 lttng_enable_kernel_channel 0 ${*}
215}
216
217function lttng_enable_kernel_channel_fail()
218{
219 lttng_enable_kernel_channel 1 ${*}
220}
221
222function lttng_disable_kernel_channel()
223{
224 local expected_to_fail=$1
225 local sess_name=$2
226 local channel_name=$3
227
aaf3bc91 228 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-channel -k $channel_name -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
d96f6315
MD
229 ret=$?
230 if [[ $expected_to_fail -eq "1" ]]; then
231 test "$ret" -ne "0"
232 ok $? "Expected failure on kernel channel creation $channel_name in $sess_name"
233 else
234 ok $ret "disable channel $channel_name for session $sess_name"
235 fi
236}
237
238function lttng_disable_kernel_channel_ok()
239{
240 lttng_disable_kernel_channel 0 ${*}
241}
242
243function lttng_disable_kernel_channel_fail()
244{
245 lttng_disable_kernel_channel 1 ${*}
246}
247
9f775e38 248function start_lttng_relayd_opt()
f4e40ab6 249{
9f775e38
MD
250 local withtap=$1
251 local opt=$2
173af62f 252
f4e40ab6
DG
253 DIR=$(readlink -f $TESTDIR)
254
255 if [ -z $(pidof lt-$RELAYD_BIN) ]; then
aaf3bc91 256 $DIR/../src/bin/lttng-relayd/$RELAYD_BIN -b $opt 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
25a818af 257 #$DIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt -vvv >>/tmp/relayd.log 2>&1 &
f4e40ab6 258 if [ $? -eq 1 ]; then
9f775e38
MD
259 if [ $withtap -eq "1" ]; then
260 fail "Start lttng-relayd (opt: $opt)"
261 fi
f4e40ab6
DG
262 return 1
263 else
9f775e38
MD
264 if [ $withtap -eq "1" ]; then
265 pass "Start lttng-relayd (opt: $opt)"
266 fi
f4e40ab6
DG
267 fi
268 else
29655db7 269 pass "Start lttng-relayd (opt: $opt)"
f4e40ab6
DG
270 fi
271}
272
9f775e38 273function start_lttng_relayd()
f4e40ab6 274{
9f775e38
MD
275 start_lttng_relayd_opt 1 "$@"
276}
277
278function start_lttng_relayd_notap()
279{
280 start_lttng_relayd_opt 0 "$@"
281}
282
283function stop_lttng_relayd_opt()
284{
285 local withtap=$1
286
f4e40ab6
DG
287 PID_RELAYD=`pidof lt-$RELAYD_BIN`
288
9f775e38
MD
289 if [ $withtap -eq "1" ]; then
290 diag "Killing lttng-relayd (pid: $PID_RELAYD)"
291 fi
aaf3bc91 292 kill $PID_RELAYD 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
1fb23888 293 retval=$?
29655db7 294
9f775e38
MD
295 if [ $? -eq 1 ]; then
296 if [ $withtap -eq "1" ]; then
297 fail "Kill relay daemon"
298 fi
299 return 1
300 else
f4e40ab6
DG
301 out=1
302 while [ -n "$out" ]; do
303 out=$(pidof lt-$RELAYD_BIN)
304 sleep 0.5
305 done
9f775e38
MD
306 if [ $withtap -eq "1" ]; then
307 pass "Kill relay daemon"
308 fi
1fb23888
MD
309 fi
310 return $retval
311}
312
9f775e38 313function stop_lttng_relayd()
1fb23888 314{
9f775e38
MD
315 stop_lttng_relayd_opt 1 "$@"
316}
1fb23888 317
9f775e38
MD
318function stop_lttng_relayd_notap()
319{
320 stop_lttng_relayd_opt 0 "$@"
f4e40ab6
DG
321}
322
9f775e38
MD
323#First arg: show tap output
324#Second argument: load path for automatic loading
325function start_lttng_sessiond_opt()
355f483d 326{
9f775e38
MD
327 local withtap=$1
328 local load_path=$2
8d51ddbc 329
355f483d
DG
330 if [ -n $TEST_NO_SESSIOND ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
331 # Env variable requested no session daemon
332 return
333 fi
334
29655db7
CB
335 validate_kernel_version
336 if [ $? -ne 0 ]; then
337 fail "Start session daemon"
338 BAIL_OUT "*** Kernel too old for session daemon tests ***"
355f483d
DG
339 fi
340
29655db7 341 DIR=$(readlink -f $TESTDIR)
d3d97763
JG
342 : ${LTTNG_SESSION_CONFIG_XSD_PATH=${DIR}/../src/common/config/}
343 export LTTNG_SESSION_CONFIG_XSD_PATH
29655db7
CB
344
345 if [ -z $(pidof lt-$SESSIOND_BIN) ]; then
8d51ddbc 346 # Have a load path ?
9f775e38 347 if [ -n "$load_path" ]; then
8d51ddbc
JRJ
348 $DIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --load "$1" --background --consumerd32-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$DIR/../src/bin/lttng-consumerd/lttng-consumerd"
349 else
350 $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"
351 fi
7ec0f31f 352 #$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 353 status=$?
9f775e38
MD
354 if [ $withtap -eq "1" ]; then
355 ok $status "Start session daemon"
356 fi
29655db7 357 fi
355f483d
DG
358}
359
9f775e38
MD
360function start_lttng_sessiond()
361{
362 start_lttng_sessiond_opt 1 "$@"
363}
364
365function start_lttng_sessiond_notap()
d3e8f6bb 366{
9f775e38
MD
367 start_lttng_sessiond_opt 0 "$@"
368}
369
370function stop_lttng_sessiond_opt()
371{
372 local withtap=$1
373
355f483d
DG
374 if [ -n $TEST_NO_SESSIOND ] && [ "$TEST_NO_SESSIOND" == "1" ]; then
375 # Env variable requested no session daemon
376 return
377 fi
378
d3e8f6bb
DG
379 PID_SESSIOND=`pidof lt-$SESSIOND_BIN`
380
aaf3bc91 381 kill $PID_SESSIOND 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 382
d3e8f6bb 383 if [ $? -eq 1 ]; then
9f775e38
MD
384 if [ $withtap -eq "1" ]; then
385 fail "Kill sessions daemon"
386 fi
d3e8f6bb 387 else
5fa32580
DG
388 out=1
389 while [ -n "$out" ]; do
390 out=$(pidof lt-$SESSIOND_BIN)
391 sleep 0.5
392 done
f7613992
MD
393 out=1
394 while [ -n "$out" ]; do
395 out=$(pidof $CONSUMERD_BIN)
396 sleep 0.5
397 done
9f775e38
MD
398 if [ $withtap -eq "1" ]; then
399 pass "Kill session daemon"
400 fi
d3e8f6bb
DG
401 fi
402}
403
9f775e38
MD
404function stop_lttng_sessiond()
405{
406 stop_lttng_sessiond_opt 1 "$@"
407}
408
409function stop_lttng_sessiond_notap()
410{
411 stop_lttng_sessiond_opt 0 "$@"
412}
413
873c2aae
JRJ
414function list_lttng_with_opts ()
415{
7d0ad314 416 local opts=$1
aaf3bc91 417 $TESTDIR/../src/bin/lttng/$LTTNG_BIN list $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
873c2aae
JRJ
418 ok $? "Lttng-tool list command with option $opts"
419}
420
07b86b52
JD
421function create_lttng_session_no_output ()
422{
7d0ad314 423 local sess_name=$1
07b86b52 424
aaf3bc91 425 $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $sess_name --no-output 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
07b86b52
JD
426 ok $? "Create session $sess_name in no-output mode"
427}
428
d3e8f6bb
DG
429function create_lttng_session ()
430{
7d0ad314
JRJ
431 local sess_name=$1
432 local trace_path=$2
433 local expected_to_fail=$3
d3e8f6bb 434
873c2aae
JRJ
435 $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $sess_name -o $trace_path > $OUTPUT_DEST
436 ret=$?
312dabc3 437 if [[ $expected_to_fail ]]; then
01513c3e
JRJ
438 test "$ret" -ne "0"
439 ok $? "Expected fail on session creation $sess_name in $trace_path"
873c2aae
JRJ
440 else
441 ok $ret "Create session $sess_name in $trace_path"
442 fi
d4018451
DG
443}
444
29655db7 445function enable_ust_lttng_channel()
d4018451 446{
7d0ad314
JRJ
447 local sess_name=$1
448 local channel_name=$2
449 local expect_fail=$3
d4018451 450
aaf3bc91 451 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel -u $channel_name -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
312dabc3
JRJ
452 ret=$?
453 if [[ $expect_fail ]]; then
01513c3e
JRJ
454 test "$ret" -ne "0"
455 ok $? "Expected fail on ust channel creation $channel_name in $sess_name"
312dabc3
JRJ
456 else
457 ok $ret "Enable channel $channel_name for session $sess_name"
458 fi
d4018451
DG
459}
460
29655db7 461function disable_ust_lttng_channel()
d4018451 462{
7d0ad314
JRJ
463 local sess_name=$1
464 local channel_name=$2
d4018451 465
aaf3bc91 466 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-channel -u $channel_name -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 467 ok $? "Disable channel $channel_name for session $sess_name"
d3e8f6bb
DG
468}
469
07b86b52
JD
470function enable_lttng_mmap_overwrite_kernel_channel()
471{
7d0ad314
JRJ
472 local sess_name=$1
473 local channel_name=$2
07b86b52 474
aaf3bc91 475 $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
476 ok $? "Enable channel $channel_name for session $sess_name"
477}
478
ebaaaf5e
JD
479function enable_lttng_mmap_overwrite_ust_channel()
480{
7d0ad314
JRJ
481 local sess_name=$1
482 local channel_name=$2
ebaaaf5e 483
aaf3bc91 484 $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
485 ok $? "Enable channel $channel_name for session $sess_name"
486}
487
d3e8f6bb
DG
488function enable_ust_lttng_event ()
489{
7d0ad314
JRJ
490 local sess_name=$1
491 local event_name="$2"
492 local channel_name=$3
01513c3e 493 local expected_to_fail=$4
ebaaaf5e
JD
494
495 if [ -z $channel_name ]; then
496 # default channel if none specified
497 chan=""
498 else
499 chan="-c $channel_name"
500 fi
d3e8f6bb 501
aaf3bc91 502 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -u 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e
JRJ
503 ret=$?
504 if [[ $expected_to_fail ]]; then
505 test $ret -ne "0"
506 ok $? "Enable ust event $event_name for session $session_name on channel $channel_name failed as expected"
507 else
508 ok $ret "Enable event $event_name for session $sess_name"
509 fi
26b53d3b
DG
510}
511
37175ce4
DG
512function enable_jul_lttng_event()
513{
514 sess_name=$1
515 event_name="$2"
516 channel_name=$3
517
518 if [ -z $channel_name ]; then
519 # default channel if none specified
520 chan=""
521 else
522 chan="-c $channel_name"
523 fi
524
aaf3bc91 525 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -j 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
37175ce4
DG
526 ok $? "Enable JUL event $event_name for session $sess_name"
527}
528
b2064f54
DG
529function enable_jul_lttng_event_loglevel()
530{
7d0ad314
JRJ
531 local sess_name=$1
532 local event_name="$2"
533 local loglevel=$3
534 local channel_name=$4
b2064f54
DG
535
536 if [ -z $channel_name ]; then
537 # default channel if none specified
538 chan=""
539 else
540 chan="-c $channel_name"
541 fi
542
aaf3bc91 543 $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
544 ok $? "Enable JUL event $event_name for session $sess_name with loglevel $loglevel"
545}
546
504d4ace
DG
547function enable_log4j_lttng_event()
548{
549 sess_name=$1
550 event_name="$2"
551 channel_name=$3
552
553 if [ -z $channel_name ]; then
554 # default channel if none specified
555 chan=""
556 else
557 chan="-c $channel_name"
558 fi
559
aaf3bc91 560 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" $chan -s $sess_name -l 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
504d4ace
DG
561 ok $? "Enable LOG4J event $event_name for session $sess_name"
562}
563
564function enable_log4j_lttng_event_loglevel()
565{
566 local sess_name=$1
567 local event_name="$2"
568 local loglevel=$3
569 local channel_name=$4
570
571 if [ -z $channel_name ]; then
572 # default channel if none specified
573 chan=""
574 else
575 chan="-c $channel_name"
576 fi
577
aaf3bc91 578 $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
579 ok $? "Enable LOG4J event $event_name for session $sess_name with loglevel $loglevel"
580}
581
26b53d3b
DG
582function enable_ust_lttng_event_filter()
583{
7d0ad314
JRJ
584 local sess_name="$1"
585 local event_name="$2"
586 local filter="$3"
26b53d3b 587
aaf3bc91 588 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" -s $sess_name -u --filter "$filter" 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 589 ok $? "Enable event $event_name with filtering for session $sess_name"
26b53d3b
DG
590}
591
592function enable_ust_lttng_event_loglevel()
593{
7d0ad314
JRJ
594 local sess_name="$1"
595 local event_name="$2"
596 local loglevel="$3"
26b53d3b 597
aaf3bc91 598 $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-event "$event_name" -s $sess_name -u --loglevel $loglevel 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 599 ok $? "Enable event $event_name with loglevel $loglevel"
26b53d3b
DG
600}
601
602function enable_ust_lttng_event_loglevel_only()
603{
7d0ad314
JRJ
604 local sess_name="$1"
605 local event_name="$2"
606 local loglevel="$3"
26b53d3b 607
aaf3bc91 608 $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 609 ok $? "Enable event $event_name with loglevel-only $loglevel"
26b53d3b
DG
610}
611
612function disable_ust_lttng_event ()
613{
7d0ad314
JRJ
614 local sess_name="$1"
615 local event_name="$2"
01513c3e 616 local channel_name="$3"
26b53d3b 617
01513c3e
JRJ
618 if [ -z $channel_name ]; then
619 # default channel if none specified
620 chan=""
621 else
622 chan="-c $channel_name"
623 fi
624
aaf3bc91 625 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name $chan -u 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
29655db7 626 ok $? "Disable event $event_name for session $sess_name"
d3e8f6bb
DG
627}
628
1d842d5a
DG
629function disable_jul_lttng_event ()
630{
631 local sess_name="$1"
632 local event_name="$2"
633
634 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name -j >/dev/null 2>&1
635 ok $? "Disable JUL event $event_name for session $sess_name"
636}
637
504d4ace
DG
638function disable_log4j_lttng_event ()
639{
640 local sess_name="$1"
641 local event_name="$2"
642
643 $TESTDIR/../src/bin/lttng/$LTTNG_BIN disable-event "$event_name" -s $sess_name -l >/dev/null 2>&1
644 ok $? "Disable LOG4J event $event_name for session $sess_name"
645}
646
fb3268e3 647function start_lttng_tracing ()
d3e8f6bb 648{
7d0ad314 649 local sess_name=$1
01513c3e 650 local expected_to_fail=$2
d3e8f6bb 651
aaf3bc91 652 $TESTDIR/../src/bin/lttng/$LTTNG_BIN start $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e
JRJ
653 ret=$?
654 if [[ $expected_to_fail ]]; then
655 test "$ret" -ne "0"
656 ok $? "Expected fail on start tracing for session: $sess_name"
657 else
658 ok $ret "Start tracing for session $sess_name"
659 fi
d3e8f6bb
DG
660}
661
fb3268e3 662function stop_lttng_tracing ()
d3e8f6bb 663{
7d0ad314 664 local sess_name=$1
01513c3e 665 local expected_to_fail=$2
d3e8f6bb 666
aaf3bc91 667 $TESTDIR/../src/bin/lttng/$LTTNG_BIN stop $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e
JRJ
668 ret=$?
669 if [[ $expected_to_fail ]]; then
670 test "$ret" -ne "0"
671 ok $? "Expected fail on stop tracing for session: $sess_name"
672 else
673 ok $ret "Stop lttng tracing for session $sess_name"
674 fi
d3e8f6bb
DG
675}
676
677function destroy_lttng_session ()
678{
7d0ad314 679 local sess_name=$1
01513c3e 680 local expected_to_fail=$2
d3e8f6bb 681
aaf3bc91 682 $TESTDIR/../src/bin/lttng/$LTTNG_BIN destroy $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e
JRJ
683 ret=$?
684 if [[ $expected_to_fail ]]; then
685 test "$ret" -ne "0"
686 ok $? "Expected fail on session deletion $sess_name"
687 else
688 ok $ret "Destroy session $sess_name"
689 fi
d3e8f6bb
DG
690}
691
873c2aae
JRJ
692function destroy_lttng_sessions ()
693{
aaf3bc91 694 $TESTDIR/../src/bin/lttng/$LTTNG_BIN destroy --all 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
873c2aae
JRJ
695 ok $? "Destroy all lttng sessions"
696}
697
07b86b52
JD
698function lttng_snapshot_add_output ()
699{
7d0ad314
JRJ
700 local sess_name=$1
701 local trace_path=$2
01513c3e 702 local expected_to_fail=$3
07b86b52 703
aaf3bc91 704 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot add-output -s $sess_name file://$trace_path 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e
JRJ
705 ret=$?
706 if [[ $expected_to_fail ]]; then
707 test "$ret" -ne "0"
708 ok $? "Failed to add a snapshot output file://$trace_path as expected"
709 else
710 ok $ret "Added snapshot output file://$trace_path"
711 fi
07b86b52
JD
712}
713
26402e0c
DG
714function lttng_snapshot_del_output ()
715{
716 local sess_name=$1
717 local id=$2
01513c3e 718 local expected_to_fail=$3
26402e0c 719
aaf3bc91 720 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot del-output -s $sess_name $id 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e
JRJ
721 ret=$?
722 if [[ $expected_to_fail ]]; then
723 test "$ret" -ne "0"
724 ok $? "Expect fail on deletion of snapshot output id $id"
725 else
726 ok $ret "Deleted snapshot output id $id"
727 fi
26402e0c
DG
728}
729
07b86b52
JD
730function lttng_snapshot_record ()
731{
7d0ad314
JRJ
732 local sess_name=$1
733 local trace_path=$2
07b86b52 734
aaf3bc91 735 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot record -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
07b86b52
JD
736 ok $? "Snapshot recorded"
737}
738
01513c3e
JRJ
739function lttng_snapshot_list ()
740{
741 local sess_name=$1
aaf3bc91 742 $TESTDIR/../src/bin/lttng/$LTTNG_BIN snapshot list-output -s $sess_name 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
01513c3e
JRJ
743 ok $? "Snapshot list"
744}
745
e02b109b
DG
746function lttng_save()
747{
748 local sess_name=$1
749 local opts=$2
750
aaf3bc91 751 $TESTDIR/../src/bin/lttng/$LTTNG_BIN save $sess_name $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
e02b109b
DG
752 ok $? "Session successfully saved"
753}
754
755function lttng_load()
756{
757 local opts=$1
758
aaf3bc91 759 $TESTDIR/../src/bin/lttng/$LTTNG_BIN load $opts 1> $OUTPUT_DEST 2> $ERROR_OUTPUT_DEST
e02b109b
DG
760 ok $? "Load command successful"
761}
762
d3e8f6bb
DG
763function trace_matches ()
764{
7d0ad314
JRJ
765 local event_name=$1
766 local nr_iter=$2
767 local trace_path=$3
d3e8f6bb 768
317eef93 769 which $BABELTRACE_BIN >/dev/null
29655db7 770 skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches"
d3e8f6bb 771
7d0ad314 772 local count=$($BABELTRACE_BIN $trace_path | grep $event_name | wc -l)
29655db7 773
d3e8f6bb 774 if [ "$count" -ne "$nr_iter" ]; then
29655db7
CB
775 fail "Trace match"
776 diag "$count events found in trace"
d3e8f6bb 777 else
29655db7 778 pass "Trace match"
d3e8f6bb
DG
779 fi
780}
f4e40ab6 781
d53addeb
DG
782function trace_match_only()
783{
784 local event_name=$1
785 local nr_iter=$2
786 local trace_path=$3
787
788 which $BABELTRACE_BIN >/dev/null
789 skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches"
790
791 local count=$($BABELTRACE_BIN $trace_path | grep $event_name | wc -l)
792 local total=$($BABELTRACE_BIN $trace_path | wc -l)
793
794 if [ "$nr_iter" -eq "$count" ] && [ "$total" -eq "$nr_iter" ]; then
795 pass "Trace match with $total event $event_name"
796 else
797 fail "Trace match"
798 diag "$total event(s) found, expecting $nr_iter of event $event_name and only found $count"
799 fi
800}
801
f4e40ab6
DG
802function validate_trace
803{
7d0ad314
JRJ
804 local event_name=$1
805 local trace_path=$2
f4e40ab6
DG
806
807 which $BABELTRACE_BIN >/dev/null
29655db7
CB
808 if [ $? -ne 0 ]; then
809 skip 0 "Babeltrace binary not found. Skipping trace validation"
f4e40ab6
DG
810 fi
811
07b86b52
JD
812 OLDIFS=$IFS
813 IFS=","
814 for i in $event_name; do
815 traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | grep $i | wc -l)
816 if [ "$traced" -ne 0 ]; then
ebaaaf5e 817 pass "Validate trace for event $i, $traced events"
07b86b52
JD
818 else
819 fail "Validate trace for event $i"
820 diag "Found $traced occurences of $i"
821 fi
822 done
823 ret=$?
824 IFS=$OLDIFS
825 return $ret
f4e40ab6 826}
8cfcd41c
MD
827
828function validate_trace_exp()
829{
830 local event_exp=$1
831 local trace_path=$2
832
833 which $BABELTRACE_BIN >/dev/null
834 skip $? -ne 0 "Babeltrace binary not found. Skipping trace validation"
835
836 traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | grep ${event_exp} | wc -l)
837 if [ "$traced" -ne 0 ]; then
838 pass "Validate trace for expression '${event_exp}', $traced events"
839 else
840 fail "Validate trace for expression '${event_exp}'"
841 diag "Found $traced occurences of '${event_exp}'"
842 fi
843 ret=$?
844 return $ret
845}
846
847function validate_trace_only_exp()
848{
849 local event_exp=$1
850 local trace_path=$2
851
852 which $BABELTRACE_BIN >/dev/null
853 skip $? -ne 0 "Babeltrace binary not found. Skipping trace matches"
854
855 local count=$($BABELTRACE_BIN $trace_path | grep ${event_exp} | wc -l)
856 local total=$($BABELTRACE_BIN $trace_path | wc -l)
857
858 if [ "$count" -ne 0 ] && [ "$total" -eq "$count" ]; then
859 pass "Trace match with $total for expression '${event_exp}"
860 else
861 fail "Trace match"
862 diag "$total syscall event(s) found, only syscalls matching expression '${event_exp}' ($count occurrences) are expected"
863 fi
864 ret=$?
865 return $ret
866}
867
868function validate_trace_empty()
869{
870 local trace_path=$1
871
872 which $BABELTRACE_BIN >/dev/null
873 if [ $? -ne 0 ]; then
874 skip 0 "Babeltrace binary not found. Skipping trace validation"
875 fi
876
877 traced=$($BABELTRACE_BIN $trace_path 2>/dev/null | wc -l)
878 if [ "$traced" -eq 0 ]; then
879 pass "Validate empty trace"
880 else
881 fail "Validate empty trace"
882 diag "Found $traced events in trace"
883 fi
884 ret=$?
885 return $ret
886}
This page took 0.073605 seconds and 4 git commands to generate.