Cleanup: tests: name all temporary files to better identify leakage
[lttng-tools.git] / tests / regression / tools / trigger / test_list_triggers_cli
CommitLineData
0de2479d
SM
1#!/bin/bash
2#
3# Copyright (C) - 2020 EfficiOS, inc
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
18# Test the `lttng list-trigger` command line interface.
19
20CURDIR="$(dirname "$0")"
21TESTDIR="$CURDIR/../../.."
22
23# shellcheck source=../../../utils/utils.sh
24source "$TESTDIR/utils/utils.sh"
25
57739a6b 26NUM_TESTS=106
0de2479d
SM
27
28FULL_LTTNG_BIN="${TESTDIR}/../src/bin/lttng/${LTTNG_BIN}"
29
33e55711
FD
30tmp_stdout=$(mktemp --tmpdir -t test_list_triggers_cli_stdout.XXXXXX)
31tmp_stderr=$(mktemp --tmpdir -t test_list_triggers_cli_stderr.XXXXXX)
32tmp_expected_stdout=$(mktemp --tmpdir -t test_list_triggers_cli_expected_stdout.XXXXXX)
0de2479d 33uprobe_elf_binary=$(realpath "${TESTDIR}/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary")
8a917ae8 34uprobe_sdt_binary=$(realpath "${TESTDIR}/utils/testapp/userspace-probe-sdt-binary/.libs/userspace-probe-sdt-binary")
19904669 35register_some_triggers_bin=$(realpath "${CURDIR}/utils/register-some-triggers")
0de2479d
SM
36
37uid=$(id --user)
38gid=$(id --group)
39
40if [ "$uid" == "0" ]; then
41 ist_root=1
8a917ae8
FD
42 ls "$uprobe_sdt_binary" >/dev/null 2>&1
43 if test $? == 0; then
44 hast_sdt_binary=1
45 else
46 hast_sdt_binary=0
47 fi
0de2479d
SM
48else
49 ist_root=0
8a917ae8 50 hast_sdt_binary=0
0de2479d
SM
51fi
52
be7f9dfc 53
0de2479d
SM
54test_top_level_options ()
55{
be7f9dfc 56 diag "Listing top level options"
0de2479d 57
64c34630 58 lttng_add_trigger_ok "hello" --condition event-rule-matches --domain=user --name=test-name --action notify
0de2479d
SM
59
60 cat > "${tmp_expected_stdout}" <<- EOF
1d4b59f2 61 - name: hello
481c5310 62 owner uid: ${uid}
8c1d25ff 63 condition: event rule matches
50ad0862 64 rule: test-name (type: tracepoint, domain: ust)
0de2479d
SM
65 actions:
66 notify
709fb83f
JG
67 errors: none
68 errors: none
0de2479d
SM
69 EOF
70
be7f9dfc 71 list_triggers_matches_ok "top level options" "${tmp_expected_stdout}"
0de2479d 72
be7f9dfc 73 lttng_remove_trigger_ok "hello"
0de2479d
SM
74}
75
8dbb86b8 76test_event_rule_matches_tracepoint ()
0de2479d 77{
040a195f 78 diag "Listing event-rule-matches tracepoint"
0de2479d 79
64c34630
SM
80 lttng_add_trigger_ok "C" --condition event-rule-matches --domain=user --action notify
81 lttng_add_trigger_ok "A" --condition event-rule-matches --name=aaa --domain=user --filter 'p == 2' --action notify
b03a81fb 82 lttng_add_trigger_ok "D" --condition event-rule-matches --name='hello*' --domain=user -x hello2 --exclude-name hello3 -x hello4 --action notify
949f049b
SM
83 lttng_add_trigger_ok "B" --condition event-rule-matches --domain=user --name=gerboise --log-level INFO.. --action notify
84 lttng_add_trigger_ok "E" --condition event-rule-matches --domain=user --name=lemming --log-level WARNING --action notify
85 lttng_add_trigger_ok "J" --condition event-rule-matches --domain=user --name=lemming --log-level .. --action notify
64c34630
SM
86 lttng_add_trigger_ok "F" --condition event-rule-matches --domain=user --name=capture-payload-field --capture a --action notify
87 lttng_add_trigger_ok "G" --condition event-rule-matches --domain=user --name=capture-array --capture 'a[2]' --capture '$ctx.tourlou[18]' --action notify
88 lttng_add_trigger_ok "H" --condition event-rule-matches --domain=user --name=capture-chan-ctx --capture '$ctx.vpid' --action notify
89 lttng_add_trigger_ok "I" --condition event-rule-matches --domain=user --name=capture-app-ctx --capture '$app.iga:active_clients' --action notify
0de2479d
SM
90
91 cat > "${tmp_expected_stdout}" <<- EOF
1d4b59f2 92 - name: A
481c5310 93 owner uid: ${uid}
8c1d25ff 94 condition: event rule matches
0de2479d
SM
95 rule: aaa (type: tracepoint, domain: ust, filter: p == 2)
96 actions:
97 notify
709fb83f
JG
98 errors: none
99 errors: none
1d4b59f2 100 - name: B
481c5310 101 owner uid: ${uid}
8c1d25ff 102 condition: event rule matches
1b859ae2 103 rule: gerboise (type: tracepoint, domain: ust, log level at least INFO)
0de2479d
SM
104 actions:
105 notify
709fb83f
JG
106 errors: none
107 errors: none
1d4b59f2 108 - name: C
481c5310 109 owner uid: ${uid}
8c1d25ff 110 condition: event rule matches
0de2479d
SM
111 rule: * (type: tracepoint, domain: ust)
112 actions:
113 notify
709fb83f
JG
114 errors: none
115 errors: none
1d4b59f2 116 - name: D
481c5310 117 owner uid: ${uid}
8c1d25ff 118 condition: event rule matches
0de2479d
SM
119 rule: hello* (type: tracepoint, domain: ust, exclusions: hello2,hello3,hello4)
120 actions:
121 notify
709fb83f
JG
122 errors: none
123 errors: none
1d4b59f2 124 - name: E
481c5310 125 owner uid: ${uid}
8c1d25ff 126 condition: event rule matches
1b859ae2 127 rule: lemming (type: tracepoint, domain: ust, log level is WARNING)
0de2479d
SM
128 actions:
129 notify
709fb83f
JG
130 errors: none
131 errors: none
1d4b59f2 132 - name: F
481c5310 133 owner uid: ${uid}
8c1d25ff 134 condition: event rule matches
b203b4b0
SM
135 rule: capture-payload-field (type: tracepoint, domain: ust)
136 captures:
137 - a
138 actions:
139 notify
709fb83f
JG
140 errors: none
141 errors: none
1d4b59f2 142 - name: G
481c5310 143 owner uid: ${uid}
8c1d25ff 144 condition: event rule matches
b203b4b0
SM
145 rule: capture-array (type: tracepoint, domain: ust)
146 captures:
147 - a[2]
148 - \$ctx.tourlou[18]
149 actions:
150 notify
709fb83f
JG
151 errors: none
152 errors: none
1d4b59f2 153 - name: H
481c5310 154 owner uid: ${uid}
8c1d25ff 155 condition: event rule matches
b203b4b0
SM
156 rule: capture-chan-ctx (type: tracepoint, domain: ust)
157 captures:
158 - \$ctx.vpid
159 actions:
160 notify
709fb83f
JG
161 errors: none
162 errors: none
1d4b59f2 163 - name: I
481c5310 164 owner uid: ${uid}
8c1d25ff 165 condition: event rule matches
b203b4b0
SM
166 rule: capture-app-ctx (type: tracepoint, domain: ust)
167 captures:
168 - \$app.iga:active_clients
169 actions:
170 notify
709fb83f
JG
171 errors: none
172 errors: none
949f049b 173 - name: J
481c5310 174 owner uid: ${uid}
8c1d25ff 175 condition: event rule matches
949f049b
SM
176 rule: lemming (type: tracepoint, domain: ust)
177 actions:
178 notify
179 errors: none
180 errors: none
0de2479d
SM
181 EOF
182
665db063 183 list_triggers_matches_ok "event-rule-matches, tracepoint event rule" "${tmp_expected_stdout}"
be7f9dfc
FD
184
185 lttng_remove_trigger_ok "A"
186 lttng_remove_trigger_ok "B"
187 lttng_remove_trigger_ok "C"
188 lttng_remove_trigger_ok "D"
189 lttng_remove_trigger_ok "E"
190 lttng_remove_trigger_ok "F"
191 lttng_remove_trigger_ok "G"
192 lttng_remove_trigger_ok "H"
193 lttng_remove_trigger_ok "I"
949f049b 194 lttng_remove_trigger_ok "J"
0de2479d
SM
195}
196
8dbb86b8 197test_event_rule_matches_probe ()
0de2479d
SM
198{
199 local channel_enable_addr
200 local channel_disable_addr
201
040a195f 202 diag "Listing event-rule-matches kernel probe"
0de2479d
SM
203
204 channel_enable_addr=$(grep ' t lttng_channel_enable\s\[lttng_tracer\]$' /proc/kallsyms | cut -f 1 -d ' ')
205 channel_disable_addr=$(grep ' t lttng_channel_disable\s\[lttng_tracer\]$' /proc/kallsyms | cut -f 1 -d ' ')
206
207 # We need to find a valid offset.
208 base_symbol=""
209 offset=0
210 if [[ 0x$channel_enable_addr -lt 0x$channel_disable_addr ]]; then
211 base_symbol="lttng_channel_enable"
212 offset=$(( 0x$channel_disable_addr - 0x$channel_enable_addr ))
213 else
214 base_symbol="lttng_channel_disable"
215 offset=$(( 0x$channel_enable_addr - 0x$channel_disable_addr ))
216 fi
217
218 offset_hex="0x$(printf '%x' $offset)"
219
24de704e
SM
220 lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=kernel --type=kprobe --location=lttng_channel_enable --event-name=my_channel_enable --action notify
221 lttng_add_trigger_ok "T1" --condition event-rule-matches --domain=kernel --type=kprobe --location="${base_symbol}+${offset_hex}" --event-name=my_channel_enable --action notify
222 lttng_add_trigger_ok "T2" --condition event-rule-matches --domain=kernel --type=kprobe --location="0x${channel_enable_addr}" --event-name=my_channel_enable --action notify
0de2479d
SM
223
224 cat > "${tmp_expected_stdout}" <<- EOF
1d4b59f2 225 - name: T0
481c5310 226 owner uid: ${uid}
8c1d25ff 227 condition: event rule matches
0de2479d
SM
228 rule: my_channel_enable (type: probe, location: lttng_channel_enable)
229 actions:
230 notify
709fb83f
JG
231 errors: none
232 errors: none
1d4b59f2 233 - name: T1
481c5310 234 owner uid: ${uid}
8c1d25ff 235 condition: event rule matches
0de2479d
SM
236 rule: my_channel_enable (type: probe, location: ${base_symbol}+${offset_hex})
237 actions:
238 notify
709fb83f
JG
239 errors: none
240 errors: none
1d4b59f2 241 - name: T2
481c5310 242 owner uid: ${uid}
8c1d25ff 243 condition: event rule matches
0de2479d
SM
244 rule: my_channel_enable (type: probe, location: 0x${channel_enable_addr})
245 actions:
246 notify
709fb83f
JG
247 errors: none
248 errors: none
0de2479d
SM
249 EOF
250
665db063 251 list_triggers_matches_ok "event-rule-matches, probe event rule" "${tmp_expected_stdout}"
0de2479d 252
be7f9dfc
FD
253 lttng_remove_trigger_ok "T0"
254 lttng_remove_trigger_ok "T1"
255 lttng_remove_trigger_ok "T2"
0de2479d
SM
256}
257
8dbb86b8 258test_event_rule_matches_userspace_probe_elf ()
0de2479d 259{
be7f9dfc
FD
260 local elf_function_name="test_function"
261
040a195f 262 diag "Listing event-rule-matches userspace-probe elf"
0de2479d 263
24de704e 264 lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=kernel --type=uprobe --location=${uprobe_elf_binary}:test_function --event-name=ma-probe-elf --action notify
0de2479d
SM
265
266 cat > "${tmp_expected_stdout}" <<- EOF
1d4b59f2 267 - name: T0
481c5310 268 owner uid: ${uid}
8c1d25ff 269 condition: event rule matches
8a917ae8 270 rule: ma-probe-elf (type: userspace probe, location type: ELF, location: ${uprobe_elf_binary}:${elf_function_name})
0de2479d
SM
271 actions:
272 notify
709fb83f
JG
273 errors: none
274 errors: none
0de2479d
SM
275 EOF
276
665db063 277 list_triggers_matches_ok "event-rule-matches, userspace-probe event rule" "${tmp_expected_stdout}"
0de2479d 278
be7f9dfc 279 lttng_remove_trigger_ok "T0"
0de2479d
SM
280}
281
8dbb86b8 282test_event_rule_matches_userspace_probe_sdt ()
8a917ae8 283{
8a917ae8
FD
284 local sdt_provider_name="foobar"
285 local sdt_probe_name="tp1"
286
040a195f 287 diag "Listing event-rule-matches userspace-probe sdt"
8a917ae8 288
040a195f 289 lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=kernel --type=uprobe --location=sdt:${uprobe_sdt_binary}:${sdt_provider_name}:${sdt_probe_name} --event-name=ma-probe-sdt --action notify
8a917ae8
FD
290
291 cat > "${tmp_expected_stdout}" <<- EOF
040a195f
FD
292 - name: T0
293 owner uid: 0
8c1d25ff 294 condition: event rule matches
8a917ae8
FD
295 rule: ma-probe-sdt (type: userspace probe, location type: SDT, location: ${uprobe_sdt_binary}:${sdt_provider_name}:${sdt_probe_name})
296 actions:
297 notify
298 errors: none
299 errors: none
300 EOF
301
040a195f 302 list_triggers_matches_ok "event-rule-matches, userspace-probe event rule SDT" "${tmp_expected_stdout}"
8a917ae8
FD
303
304 lttng_remove_trigger_ok "T0"
305}
306
8dbb86b8 307test_event_rule_matches_syscall ()
0de2479d 308{
040a195f 309 diag "Listing event-rule-matches syscall"
0de2479d 310
24de704e 311 lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=kernel --type=syscall --name=open --action notify
040a195f 312 lttng_add_trigger_ok "T1" --condition event-rule-matches --domain=kernel --type=syscall:entry --name=open --action notify
57739a6b
JR
313 lttng_add_trigger_ok "T2" --condition event-rule-matches --domain=kernel --type=syscall:exit --name=open --action notify
314 lttng_add_trigger_ok "T3" --condition event-rule-matches --domain=kernel --type=syscall:entry+exit --name=open --action notify
315 lttng_add_trigger_ok "T4" --condition event-rule-matches --domain=kernel --type=syscall --name=ptrace --filter 'a > 2' --action notify
0de2479d
SM
316
317 cat > "${tmp_expected_stdout}" <<- EOF
1d4b59f2 318 - name: T0
481c5310 319 owner uid: ${uid}
8c1d25ff 320 condition: event rule matches
57739a6b 321 rule: open (type: syscall:entry+exit)
0de2479d
SM
322 actions:
323 notify
709fb83f
JG
324 errors: none
325 errors: none
1d4b59f2 326 - name: T1
481c5310 327 owner uid: ${uid}
8c1d25ff 328 condition: event rule matches
57739a6b
JR
329 rule: open (type: syscall:entry)
330 actions:
331 notify
332 errors: none
333 errors: none
334 - name: T2
335 owner uid: ${uid}
8c1d25ff 336 condition: event rule matches
57739a6b
JR
337 rule: open (type: syscall:exit)
338 actions:
339 notify
340 errors: none
341 errors: none
342 - name: T3
343 owner uid: ${uid}
8c1d25ff 344 condition: event rule matches
57739a6b
JR
345 rule: open (type: syscall:entry+exit)
346 actions:
347 notify
348 errors: none
349 errors: none
350 - name: T4
351 owner uid: ${uid}
8c1d25ff 352 condition: event rule matches
57739a6b 353 rule: ptrace (type: syscall:entry+exit, filter: a > 2)
0de2479d
SM
354 actions:
355 notify
709fb83f
JG
356 errors: none
357 errors: none
0de2479d
SM
358 EOF
359
665db063 360 list_triggers_matches_ok "event-rule-matches, syscall event rule" "${tmp_expected_stdout}"
0de2479d 361
be7f9dfc
FD
362 lttng_remove_trigger_ok "T0"
363 lttng_remove_trigger_ok "T1"
57739a6b
JR
364 lttng_remove_trigger_ok "T2"
365 lttng_remove_trigger_ok "T3"
366 lttng_remove_trigger_ok "T4"
0de2479d
SM
367}
368
19904669
SM
369test_session_consumed_size_condition ()
370{
371 ${register_some_triggers_bin} test_session_consumed_size_condition
372
373 cat > "${tmp_expected_stdout}" <<- EOF
374 - name: trigger-with-session-consumed-size-condition
375 owner uid: ${uid}
376 condition: session consumed size
377 session name: the-session-name
378 threshold: 1234 bytes
379 actions:
380 notify
381 errors: none
382 errors: none
383 EOF
384
385 list_triggers_matches_ok "session consumed size condition" "${tmp_expected_stdout}"
386
387 lttng_remove_trigger_ok "trigger-with-session-consumed-size-condition"
388}
389
390test_buffer_usage_conditions ()
391{
392 ${register_some_triggers_bin} test_buffer_usage_conditions
393
394 cat > "${tmp_expected_stdout}" <<- EOF
395 - name: trigger-with-buffer-usage-high-bytes-condition
396 owner uid: ${uid}
397 condition: buffer usage high
398 session name: the-session-name
399 channel name: the-channel-name
400 domain: ust
401 threshold (bytes): 1234
402 actions:
403 notify
404 errors: none
405 errors: none
406 - name: trigger-with-buffer-usage-high-ratio-condition
407 owner uid: ${uid}
408 condition: buffer usage high
409 session name: the-session-name
410 channel name: the-channel-name
411 domain: ust
412 threshold (ratio): 0.25
413 actions:
414 notify
415 errors: none
416 errors: none
417 - name: trigger-with-buffer-usage-low-bytes-condition
418 owner uid: ${uid}
419 condition: buffer usage low
420 session name: the-session-name
421 channel name: the-channel-name
422 domain: ust
423 threshold (bytes): 2345
424 actions:
425 notify
426 errors: none
427 errors: none
428 - name: trigger-with-buffer-usage-low-ratio-condition
429 owner uid: ${uid}
430 condition: buffer usage low
431 session name: the-session-name
432 channel name: the-channel-name
433 domain: ust
434 threshold (ratio): 0.40
435 actions:
436 notify
437 errors: none
438 errors: none
439 EOF
440
441 list_triggers_matches_ok "buffer usage condition" "${tmp_expected_stdout}"
442
443 lttng_remove_trigger_ok "trigger-with-buffer-usage-high-bytes-condition"
444 lttng_remove_trigger_ok "trigger-with-buffer-usage-high-ratio-condition"
445 lttng_remove_trigger_ok "trigger-with-buffer-usage-low-bytes-condition"
446 lttng_remove_trigger_ok "trigger-with-buffer-usage-low-ratio-condition"
447}
448
449test_session_rotation_conditions ()
450{
451 ${register_some_triggers_bin} test_session_rotation_conditions
452
453 cat > "${tmp_expected_stdout}" <<- EOF
454 - name: trigger-with-session-rotation-completed-condition
455 owner uid: ${uid}
456 condition: session rotation completed
457 session name: the-session-name
458 actions:
459 notify
460 errors: none
461 errors: none
462 - name: trigger-with-session-rotation-ongoing-condition
463 owner uid: ${uid}
464 condition: session rotation ongoing
465 session name: the-session-name
466 actions:
467 notify
468 errors: none
469 errors: none
470 EOF
471
472 list_triggers_matches_ok "session rotation conditions" "${tmp_expected_stdout}"
473
474 lttng_remove_trigger_ok "trigger-with-session-rotation-completed-condition"
475 lttng_remove_trigger_ok "trigger-with-session-rotation-ongoing-condition"
476}
477
0de2479d
SM
478test_snapshot_action ()
479{
be7f9dfc 480 diag "Listing snapshot actions"
0de2479d 481
64c34630
SM
482 lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session
483 lttng_add_trigger_ok "T1" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --path /some/path
484 lttng_add_trigger_ok "T2" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --url file:///some/other/path
485 lttng_add_trigger_ok "T3" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --url net://1.2.3.4
486 lttng_add_trigger_ok "T4" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --url net://1.2.3.4:1234:1235
487 lttng_add_trigger_ok "T5" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --ctrl-url=tcp://1.2.3.4:1111 --data-url=tcp://1.2.3.4:1112
488 lttng_add_trigger_ok "T6" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --path /some/path --max-size=1234
489 lttng_add_trigger_ok "T7" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --path /some/path --name=meh
490 lttng_add_trigger_ok "T8" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --rate-policy=every:10
491 lttng_add_trigger_ok "T9" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --rate-policy=once-after:10
0de2479d
SM
492
493 cat > "${tmp_expected_stdout}" <<- EOF
1d4b59f2 494 - name: T0
481c5310 495 owner uid: ${uid}
8c1d25ff 496 condition: event rule matches
0de2479d
SM
497 rule: some-event (type: tracepoint, domain: ust)
498 actions:
499 snapshot session \`ze-session\`
709fb83f
JG
500 errors: none
501 errors: none
1d4b59f2 502 - name: T1
481c5310 503 owner uid: ${uid}
8c1d25ff 504 condition: event rule matches
0de2479d
SM
505 rule: some-event (type: tracepoint, domain: ust)
506 actions:
507 snapshot session \`ze-session\`, path: /some/path
709fb83f
JG
508 errors: none
509 errors: none
1d4b59f2 510 - name: T2
481c5310 511 owner uid: ${uid}
8c1d25ff 512 condition: event rule matches
0de2479d
SM
513 rule: some-event (type: tracepoint, domain: ust)
514 actions:
515 snapshot session \`ze-session\`, path: /some/other/path
709fb83f
JG
516 errors: none
517 errors: none
1d4b59f2 518 - name: T3
481c5310 519 owner uid: ${uid}
8c1d25ff 520 condition: event rule matches
0de2479d
SM
521 rule: some-event (type: tracepoint, domain: ust)
522 actions:
523 snapshot session \`ze-session\`, url: net://1.2.3.4
709fb83f
JG
524 errors: none
525 errors: none
1d4b59f2 526 - name: T4
481c5310 527 owner uid: ${uid}
8c1d25ff 528 condition: event rule matches
0de2479d
SM
529 rule: some-event (type: tracepoint, domain: ust)
530 actions:
531 snapshot session \`ze-session\`, url: net://1.2.3.4:1234:1235
709fb83f
JG
532 errors: none
533 errors: none
1d4b59f2 534 - name: T5
481c5310 535 owner uid: ${uid}
8c1d25ff 536 condition: event rule matches
0de2479d
SM
537 rule: some-event (type: tracepoint, domain: ust)
538 actions:
539 snapshot session \`ze-session\`, control url: tcp://1.2.3.4:1111, data url: tcp://1.2.3.4:1112
709fb83f
JG
540 errors: none
541 errors: none
1d4b59f2 542 - name: T6
481c5310 543 owner uid: ${uid}
8c1d25ff 544 condition: event rule matches
0de2479d
SM
545 rule: some-event (type: tracepoint, domain: ust)
546 actions:
547 snapshot session \`ze-session\`, path: /some/path, max size: 1234
709fb83f
JG
548 errors: none
549 errors: none
1d4b59f2 550 - name: T7
481c5310 551 owner uid: ${uid}
8c1d25ff 552 condition: event rule matches
0de2479d
SM
553 rule: some-event (type: tracepoint, domain: ust)
554 actions:
555 snapshot session \`ze-session\`, path: /some/path, name: meh
709fb83f
JG
556 errors: none
557 errors: none
1d4b59f2 558 - name: T8
481c5310 559 owner uid: ${uid}
8c1d25ff 560 condition: event rule matches
e45dd625 561 rule: some-event (type: tracepoint, domain: ust)
e45dd625 562 actions:
2f280aa0 563 snapshot session \`ze-session\`, rate policy: every 10 occurrences
709fb83f
JG
564 errors: none
565 errors: none
1d4b59f2 566 - name: T9
481c5310 567 owner uid: ${uid}
8c1d25ff 568 condition: event rule matches
e45dd625 569 rule: some-event (type: tracepoint, domain: ust)
e45dd625 570 actions:
7f4d5b07 571 snapshot session \`ze-session\`, rate policy: once after 10 occurrences
709fb83f
JG
572 errors: none
573 errors: none
e45dd625
JR
574 EOF
575
be7f9dfc 576 list_triggers_matches_ok "snapshot action" "${tmp_expected_stdout}"
e45dd625 577
665db063
SM
578 lttng_remove_trigger_ok "T0"
579 lttng_remove_trigger_ok "T1"
580 lttng_remove_trigger_ok "T2"
581 lttng_remove_trigger_ok "T3"
582 lttng_remove_trigger_ok "T4"
583 lttng_remove_trigger_ok "T5"
584 lttng_remove_trigger_ok "T6"
585 lttng_remove_trigger_ok "T7"
586 lttng_remove_trigger_ok "T8"
587 lttng_remove_trigger_ok "T9"
e45dd625
JR
588}
589
590test_notify_action ()
591{
64c34630
SM
592 lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=user --name=some-event --action notify --rate-policy=once-after:5
593 lttng_add_trigger_ok "T1" --condition event-rule-matches --domain=user --name=some-event --action notify --rate-policy=every:10
e45dd625
JR
594
595 cat > "${tmp_expected_stdout}" <<- EOF
1d4b59f2 596 - name: T0
481c5310 597 owner uid: ${uid}
8c1d25ff 598 condition: event rule matches
e45dd625 599 rule: some-event (type: tracepoint, domain: ust)
e45dd625 600 actions:
7f4d5b07 601 notify, rate policy: once after 5 occurrences
709fb83f
JG
602 errors: none
603 errors: none
1d4b59f2 604 - name: T1
481c5310 605 owner uid: ${uid}
8c1d25ff 606 condition: event rule matches
e45dd625 607 rule: some-event (type: tracepoint, domain: ust)
e45dd625 608 actions:
2f280aa0 609 notify, rate policy: every 10 occurrences
709fb83f
JG
610 errors: none
611 errors: none
0de2479d
SM
612 EOF
613
19904669 614 list_triggers_matches_ok "notify action" "${tmp_expected_stdout}"
0de2479d 615
be7f9dfc
FD
616 lttng_remove_trigger_ok "T0"
617 lttng_remove_trigger_ok "T1"
0de2479d
SM
618}
619
be7f9dfc
FD
620plan_tests $NUM_TESTS
621
622# shellcheck disable=SC2119
623start_lttng_sessiond_notap
624
0de2479d 625test_top_level_options
8dbb86b8
JR
626test_event_rule_matches_tracepoint
627skip $ist_root "non-root user: skipping kprobe tests" 9 || test_event_rule_matches_probe
628skip $ist_root "non-root user: skipping uprobe tests" 5 || test_event_rule_matches_userspace_probe_elf
629skip $(($ist_root && $hast_sdt_binary)) "skipping userspace probe SDT tests" 5 || test_event_rule_matches_userspace_probe_sdt
630skip $ist_root "non-root user: skipping syscall tests" 13 || test_event_rule_matches_syscall
19904669
SM
631test_session_consumed_size_condition
632test_buffer_usage_conditions
633test_session_rotation_conditions
0de2479d 634test_snapshot_action
e45dd625 635test_notify_action
0de2479d 636
be7f9dfc
FD
637stop_lttng_sessiond_notap
638
0de2479d
SM
639# Cleanup
640rm -f "${tmp_stdout}"
641rm -f "${tmp_stderr}"
642rm -f "${tmp_expected_stdout}"
This page took 0.05657 seconds and 4 git commands to generate.