3 # Copyright (C) - 2020 EfficiOS, inc
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.
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
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
18 # Test the `lttng list-trigger` command line interface.
20 CURDIR
="$(dirname "$0")"
21 TESTDIR
="$CURDIR/../../.."
23 # shellcheck source=../../../utils/utils.sh
24 source "$TESTDIR/utils/utils.sh"
28 FULL_LTTNG_BIN
="${TESTDIR}/../src/bin/lttng/${LTTNG_BIN}"
30 tmp_stdout
=$
(mktemp
--tmpdir -t test_list_triggers_cli_stdout.XXXXXX
)
31 tmp_stderr
=$
(mktemp
--tmpdir -t test_list_triggers_cli_stderr.XXXXXX
)
32 tmp_expected_stdout
=$
(mktemp
--tmpdir -t test_list_triggers_cli_expected_stdout.XXXXXX
)
33 tmp_expected_stdout_mi
=$
(mktemp
--tmpdir -t test_list_triggers_cli_expected_stdout.mi.XXXXXX
)
34 uprobe_elf_binary
=$
(realpath
"${TESTDIR}/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary")
35 uprobe_sdt_binary
=$
(realpath
"${TESTDIR}/utils/testapp/userspace-probe-sdt-binary/.libs/userspace-probe-sdt-binary")
36 register_some_triggers_bin
=$
(realpath
"${CURDIR}/utils/register-some-triggers")
41 if [ "$uid" == "0" ]; then
43 ls "$uprobe_sdt_binary" >/dev
/null
2>&1
55 test_top_level_options
()
57 diag
"Listing top level options"
59 lttng_add_trigger_ok
"hello" --condition event-rule-matches
--type=user
--name=test-name
--action notify
61 cat > "${tmp_expected_stdout}" <<- EOF
64 condition: event rule matches
65 rule: test-name (type: user tracepoint)
73 cat > "${tmp_expected_stdout_mi}" <<- EOF
74 <?xml version="1.0" encoding="UTF-8"?>
75 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
76 <name>list-trigger</name>
81 <owner_uid>${uid}</owner_uid>
83 <condition_event_rule_matches>
85 <event_rule_user_tracepoint>
86 <name_pattern>test-name</name_pattern>
87 </event_rule_user_tracepoint>
89 <capture_descriptors/>
90 </condition_event_rule_matches>
93 <name>discarded tracer messages</name>
94 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
95 <error_query_result_counter>
97 </error_query_result_counter>
99 </error_query_results>
106 <rate_policy_every_n>
107 <interval>1</interval>
108 </rate_policy_every_n>
111 <error_query_results>
113 <name>total execution failures</name>
114 <description>Aggregated count of errors encountered when executing the action</description>
115 <error_query_result_counter>
117 </error_query_result_counter>
118 </error_query_result>
119 </error_query_results>
123 <error_query_results/>
130 list_triggers_matches_ok
"top level options" "${tmp_expected_stdout}"
131 list_triggers_matches_mi_ok
"MI top level options" "${tmp_expected_stdout_mi}"
133 lttng_remove_trigger_ok
"hello"
136 test_event_rule_matches_tracepoint
()
138 diag
"Listing event-rule-matches tracepoint"
140 lttng_add_trigger_ok
"C" --condition event-rule-matches
--type=user
--action notify
141 lttng_add_trigger_ok
"A" --condition event-rule-matches
--name=aaa
--type=user
--filter 'p == 2' --action notify
142 lttng_add_trigger_ok
"D" --condition event-rule-matches
--name='hello*' --type=user
-x hello2
--exclude-name hello3
-x hello4
--action notify
143 lttng_add_trigger_ok
"B" --condition event-rule-matches
--type=user
--name=gerboise
--log-level INFO..
--action notify
144 lttng_add_trigger_ok
"E" --condition event-rule-matches
--type=user
--name=lemming
--log-level WARNING
--action notify
145 lttng_add_trigger_ok
"J" --condition event-rule-matches
--type=user
--name=lemming
--log-level ..
--action notify
146 lttng_add_trigger_ok
"F" --condition event-rule-matches
--type=user
--name=capture-payload-field
--capture a
--action notify
147 lttng_add_trigger_ok
"G" --condition event-rule-matches
--type=user
--name=capture-array
--capture 'a[2]' --capture '$ctx.tourlou[18]' --action notify
148 lttng_add_trigger_ok
"H" --condition event-rule-matches
--type=user
--name=capture-chan-ctx
--capture '$ctx.vpid' --action notify
149 lttng_add_trigger_ok
"I" --condition event-rule-matches
--type=user
--name=capture-app-ctx
--capture '$app.iga:active_clients' --action notify
151 cat > "${tmp_expected_stdout}" <<- EOF
154 condition: event rule matches
155 rule: aaa (type: user tracepoint, filter: p == 2)
163 condition: event rule matches
164 rule: gerboise (type: user tracepoint, log level at least INFO)
172 condition: event rule matches
173 rule: * (type: user tracepoint)
181 condition: event rule matches
182 rule: hello* (type: user tracepoint, exclusions: hello2,hello3,hello4)
190 condition: event rule matches
191 rule: lemming (type: user tracepoint, log level is WARNING)
199 condition: event rule matches
200 rule: capture-payload-field (type: user tracepoint)
210 condition: event rule matches
211 rule: capture-array (type: user tracepoint)
222 condition: event rule matches
223 rule: capture-chan-ctx (type: user tracepoint)
233 condition: event rule matches
234 rule: capture-app-ctx (type: user tracepoint)
236 - \$app.iga:active_clients
244 condition: event rule matches
245 rule: lemming (type: user tracepoint)
253 cat > "${tmp_expected_stdout_mi}" <<- EOF
254 <?xml version="1.0" encoding="UTF-8"?>
255 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
256 <name>list-trigger</name>
261 <owner_uid>${uid}</owner_uid>
263 <condition_event_rule_matches>
265 <event_rule_user_tracepoint>
266 <name_pattern>aaa</name_pattern>
267 <filter_expression>p == 2</filter_expression>
268 </event_rule_user_tracepoint>
270 <capture_descriptors/>
271 </condition_event_rule_matches>
272 <error_query_results>
274 <name>discarded tracer messages</name>
275 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
276 <error_query_result_counter>
278 </error_query_result_counter>
279 </error_query_result>
280 </error_query_results>
287 <rate_policy_every_n>
288 <interval>1</interval>
289 </rate_policy_every_n>
292 <error_query_results>
294 <name>total execution failures</name>
295 <description>Aggregated count of errors encountered when executing the action</description>
296 <error_query_result_counter>
298 </error_query_result_counter>
299 </error_query_result>
300 </error_query_results>
304 <error_query_results/>
308 <owner_uid>${uid}</owner_uid>
310 <condition_event_rule_matches>
312 <event_rule_user_tracepoint>
313 <name_pattern>gerboise</name_pattern>
315 <log_level_rule_at_least_as_severe_as>
317 </log_level_rule_at_least_as_severe_as>
319 </event_rule_user_tracepoint>
321 <capture_descriptors/>
322 </condition_event_rule_matches>
323 <error_query_results>
325 <name>discarded tracer messages</name>
326 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
327 <error_query_result_counter>
329 </error_query_result_counter>
330 </error_query_result>
331 </error_query_results>
338 <rate_policy_every_n>
339 <interval>1</interval>
340 </rate_policy_every_n>
343 <error_query_results>
345 <name>total execution failures</name>
346 <description>Aggregated count of errors encountered when executing the action</description>
347 <error_query_result_counter>
349 </error_query_result_counter>
350 </error_query_result>
351 </error_query_results>
355 <error_query_results/>
359 <owner_uid>${uid}</owner_uid>
361 <condition_event_rule_matches>
363 <event_rule_user_tracepoint>
364 <name_pattern>*</name_pattern>
365 </event_rule_user_tracepoint>
367 <capture_descriptors/>
368 </condition_event_rule_matches>
369 <error_query_results>
371 <name>discarded tracer messages</name>
372 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
373 <error_query_result_counter>
375 </error_query_result_counter>
376 </error_query_result>
377 </error_query_results>
384 <rate_policy_every_n>
385 <interval>1</interval>
386 </rate_policy_every_n>
389 <error_query_results>
391 <name>total execution failures</name>
392 <description>Aggregated count of errors encountered when executing the action</description>
393 <error_query_result_counter>
395 </error_query_result_counter>
396 </error_query_result>
397 </error_query_results>
401 <error_query_results/>
405 <owner_uid>${uid}</owner_uid>
407 <condition_event_rule_matches>
409 <event_rule_user_tracepoint>
410 <name_pattern>hello*</name_pattern>
411 <name_pattern_exclusions>
412 <name_pattern_exclusion>hello2</name_pattern_exclusion>
413 <name_pattern_exclusion>hello3</name_pattern_exclusion>
414 <name_pattern_exclusion>hello4</name_pattern_exclusion>
415 </name_pattern_exclusions>
416 </event_rule_user_tracepoint>
418 <capture_descriptors/>
419 </condition_event_rule_matches>
420 <error_query_results>
422 <name>discarded tracer messages</name>
423 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
424 <error_query_result_counter>
426 </error_query_result_counter>
427 </error_query_result>
428 </error_query_results>
435 <rate_policy_every_n>
436 <interval>1</interval>
437 </rate_policy_every_n>
440 <error_query_results>
442 <name>total execution failures</name>
443 <description>Aggregated count of errors encountered when executing the action</description>
444 <error_query_result_counter>
446 </error_query_result_counter>
447 </error_query_result>
448 </error_query_results>
452 <error_query_results/>
456 <owner_uid>${uid}</owner_uid>
458 <condition_event_rule_matches>
460 <event_rule_user_tracepoint>
461 <name_pattern>lemming</name_pattern>
463 <log_level_rule_exactly>
465 </log_level_rule_exactly>
467 </event_rule_user_tracepoint>
469 <capture_descriptors/>
470 </condition_event_rule_matches>
471 <error_query_results>
473 <name>discarded tracer messages</name>
474 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
475 <error_query_result_counter>
477 </error_query_result_counter>
478 </error_query_result>
479 </error_query_results>
486 <rate_policy_every_n>
487 <interval>1</interval>
488 </rate_policy_every_n>
491 <error_query_results>
493 <name>total execution failures</name>
494 <description>Aggregated count of errors encountered when executing the action</description>
495 <error_query_result_counter>
497 </error_query_result_counter>
498 </error_query_result>
499 </error_query_results>
503 <error_query_results/>
507 <owner_uid>${uid}</owner_uid>
509 <condition_event_rule_matches>
511 <event_rule_user_tracepoint>
512 <name_pattern>capture-payload-field</name_pattern>
513 </event_rule_user_tracepoint>
515 <capture_descriptors>
517 <event_expr_payload_field>
519 </event_expr_payload_field>
521 </capture_descriptors>
522 </condition_event_rule_matches>
523 <error_query_results>
525 <name>discarded tracer messages</name>
526 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
527 <error_query_result_counter>
529 </error_query_result_counter>
530 </error_query_result>
531 </error_query_results>
538 <rate_policy_every_n>
539 <interval>1</interval>
540 </rate_policy_every_n>
543 <error_query_results>
545 <name>total execution failures</name>
546 <description>Aggregated count of errors encountered when executing the action</description>
547 <error_query_result_counter>
549 </error_query_result_counter>
550 </error_query_result>
551 </error_query_results>
555 <error_query_results/>
559 <owner_uid>${uid}</owner_uid>
561 <condition_event_rule_matches>
563 <event_rule_user_tracepoint>
564 <name_pattern>capture-array</name_pattern>
565 </event_rule_user_tracepoint>
567 <capture_descriptors>
569 <event_expr_array_field_element>
572 <event_expr_payload_field>
574 </event_expr_payload_field>
576 </event_expr_array_field_element>
579 <event_expr_array_field_element>
582 <event_expr_channel_context_field>
584 </event_expr_channel_context_field>
586 </event_expr_array_field_element>
588 </capture_descriptors>
589 </condition_event_rule_matches>
590 <error_query_results>
592 <name>discarded tracer messages</name>
593 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
594 <error_query_result_counter>
596 </error_query_result_counter>
597 </error_query_result>
598 </error_query_results>
605 <rate_policy_every_n>
606 <interval>1</interval>
607 </rate_policy_every_n>
610 <error_query_results>
612 <name>total execution failures</name>
613 <description>Aggregated count of errors encountered when executing the action</description>
614 <error_query_result_counter>
616 </error_query_result_counter>
617 </error_query_result>
618 </error_query_results>
622 <error_query_results/>
626 <owner_uid>${uid}</owner_uid>
628 <condition_event_rule_matches>
630 <event_rule_user_tracepoint>
631 <name_pattern>capture-chan-ctx</name_pattern>
632 </event_rule_user_tracepoint>
634 <capture_descriptors>
636 <event_expr_channel_context_field>
638 </event_expr_channel_context_field>
640 </capture_descriptors>
641 </condition_event_rule_matches>
642 <error_query_results>
644 <name>discarded tracer messages</name>
645 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
646 <error_query_result_counter>
648 </error_query_result_counter>
649 </error_query_result>
650 </error_query_results>
657 <rate_policy_every_n>
658 <interval>1</interval>
659 </rate_policy_every_n>
662 <error_query_results>
664 <name>total execution failures</name>
665 <description>Aggregated count of errors encountered when executing the action</description>
666 <error_query_result_counter>
668 </error_query_result_counter>
669 </error_query_result>
670 </error_query_results>
674 <error_query_results/>
678 <owner_uid>${uid}</owner_uid>
680 <condition_event_rule_matches>
682 <event_rule_user_tracepoint>
683 <name_pattern>capture-app-ctx</name_pattern>
684 </event_rule_user_tracepoint>
686 <capture_descriptors>
688 <event_expr_app_specific_context_field>
689 <provider_name>iga</provider_name>
690 <type_name>active_clients</type_name>
691 </event_expr_app_specific_context_field>
693 </capture_descriptors>
694 </condition_event_rule_matches>
695 <error_query_results>
697 <name>discarded tracer messages</name>
698 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
699 <error_query_result_counter>
701 </error_query_result_counter>
702 </error_query_result>
703 </error_query_results>
710 <rate_policy_every_n>
711 <interval>1</interval>
712 </rate_policy_every_n>
715 <error_query_results>
717 <name>total execution failures</name>
718 <description>Aggregated count of errors encountered when executing the action</description>
719 <error_query_result_counter>
721 </error_query_result_counter>
722 </error_query_result>
723 </error_query_results>
727 <error_query_results/>
731 <owner_uid>${uid}</owner_uid>
733 <condition_event_rule_matches>
735 <event_rule_user_tracepoint>
736 <name_pattern>lemming</name_pattern>
737 </event_rule_user_tracepoint>
739 <capture_descriptors/>
740 </condition_event_rule_matches>
741 <error_query_results>
743 <name>discarded tracer messages</name>
744 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
745 <error_query_result_counter>
747 </error_query_result_counter>
748 </error_query_result>
749 </error_query_results>
756 <rate_policy_every_n>
757 <interval>1</interval>
758 </rate_policy_every_n>
761 <error_query_results>
763 <name>total execution failures</name>
764 <description>Aggregated count of errors encountered when executing the action</description>
765 <error_query_result_counter>
767 </error_query_result_counter>
768 </error_query_result>
769 </error_query_results>
773 <error_query_results/>
780 list_triggers_matches_ok
"event-rule-matches, tracepoint event rule" "${tmp_expected_stdout}"
781 list_triggers_matches_mi_ok
"MI event-rule-matches, tracepoint event rule" "${tmp_expected_stdout_mi}"
783 lttng_remove_trigger_ok
"A"
784 lttng_remove_trigger_ok
"B"
785 lttng_remove_trigger_ok
"C"
786 lttng_remove_trigger_ok
"D"
787 lttng_remove_trigger_ok
"E"
788 lttng_remove_trigger_ok
"F"
789 lttng_remove_trigger_ok
"G"
790 lttng_remove_trigger_ok
"H"
791 lttng_remove_trigger_ok
"I"
792 lttng_remove_trigger_ok
"J"
795 test_event_rule_matches_probe
()
797 local channel_enable_addr
798 local channel_disable_addr
800 diag
"Listing event-rule-matches kernel probe"
802 channel_enable_addr
=$
(grep ' t lttng_channel_enable\s\[lttng_tracer\]$' /proc
/kallsyms | cut
-f 1 -d ' ')
803 channel_disable_addr
=$
(grep ' t lttng_channel_disable\s\[lttng_tracer\]$' /proc
/kallsyms | cut
-f 1 -d ' ')
805 # We need to find a valid offset.
808 if [[ 0x
$channel_enable_addr -lt 0x
$channel_disable_addr ]]; then
809 base_symbol
="lttng_channel_enable"
810 offset
=$
(( 0x
$channel_disable_addr - 0x
$channel_enable_addr ))
812 base_symbol
="lttng_channel_disable"
813 offset
=$
(( 0x
$channel_enable_addr - 0x
$channel_disable_addr ))
816 offset_hex
="0x$(printf '%x' $offset)"
817 channel_enable_addr_decimal
=$
(echo "ibase=16; ${channel_enable_addr^^} " |
bc)
819 lttng_add_trigger_ok
"T0" --condition event-rule-matches
--type=kprobe
--location=lttng_channel_enable
--event-name=my_channel_enable
--action notify
820 lttng_add_trigger_ok
"T1" --condition event-rule-matches
--type=kprobe
--location="${base_symbol}+${offset_hex}" --event-name=my_channel_enable
--action notify
821 lttng_add_trigger_ok
"T2" --condition event-rule-matches
--type=kprobe
--location="0x${channel_enable_addr}" --event-name=my_channel_enable
--action notify
823 cat > "${tmp_expected_stdout}" <<- EOF
826 condition: event rule matches
827 rule: my_channel_enable (type: kernel:kprobe, location: lttng_channel_enable)
835 condition: event rule matches
836 rule: my_channel_enable (type: kernel:kprobe, location: ${base_symbol}+${offset_hex})
844 condition: event rule matches
845 rule: my_channel_enable (type: kernel:kprobe, location: 0x${channel_enable_addr})
853 cat > "${tmp_expected_stdout_mi}" <<- EOF
854 <?xml version="1.0" encoding="UTF-8"?>
855 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
856 <name>list-trigger</name>
861 <owner_uid>${uid}</owner_uid>
863 <condition_event_rule_matches>
865 <event_rule_kernel_kprobe>
866 <event_name>my_channel_enable</event_name>
867 <kernel_probe_location>
868 <kernel_probe_location_symbol_offset>
869 <name>lttng_channel_enable</name>
871 </kernel_probe_location_symbol_offset>
872 </kernel_probe_location>
873 </event_rule_kernel_kprobe>
875 <capture_descriptors/>
876 </condition_event_rule_matches>
877 <error_query_results>
879 <name>discarded tracer messages</name>
880 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
881 <error_query_result_counter>
883 </error_query_result_counter>
884 </error_query_result>
885 </error_query_results>
892 <rate_policy_every_n>
893 <interval>1</interval>
894 </rate_policy_every_n>
897 <error_query_results>
899 <name>total execution failures</name>
900 <description>Aggregated count of errors encountered when executing the action</description>
901 <error_query_result_counter>
903 </error_query_result_counter>
904 </error_query_result>
905 </error_query_results>
909 <error_query_results/>
913 <owner_uid>${uid}</owner_uid>
915 <condition_event_rule_matches>
917 <event_rule_kernel_kprobe>
918 <event_name>my_channel_enable</event_name>
919 <kernel_probe_location>
920 <kernel_probe_location_symbol_offset>
921 <name>${base_symbol}</name>
922 <offset>${offset}</offset>
923 </kernel_probe_location_symbol_offset>
924 </kernel_probe_location>
925 </event_rule_kernel_kprobe>
927 <capture_descriptors/>
928 </condition_event_rule_matches>
929 <error_query_results>
931 <name>discarded tracer messages</name>
932 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
933 <error_query_result_counter>
935 </error_query_result_counter>
936 </error_query_result>
937 </error_query_results>
944 <rate_policy_every_n>
945 <interval>1</interval>
946 </rate_policy_every_n>
949 <error_query_results>
951 <name>total execution failures</name>
952 <description>Aggregated count of errors encountered when executing the action</description>
953 <error_query_result_counter>
955 </error_query_result_counter>
956 </error_query_result>
957 </error_query_results>
961 <error_query_results/>
965 <owner_uid>${uid}</owner_uid>
967 <condition_event_rule_matches>
969 <event_rule_kernel_kprobe>
970 <event_name>my_channel_enable</event_name>
971 <kernel_probe_location>
972 <kernel_probe_location_address>
973 <address>${channel_enable_addr_decimal}</address>
974 </kernel_probe_location_address>
975 </kernel_probe_location>
976 </event_rule_kernel_kprobe>
978 <capture_descriptors/>
979 </condition_event_rule_matches>
980 <error_query_results>
982 <name>discarded tracer messages</name>
983 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
984 <error_query_result_counter>
986 </error_query_result_counter>
987 </error_query_result>
988 </error_query_results>
995 <rate_policy_every_n>
996 <interval>1</interval>
997 </rate_policy_every_n>
1000 <error_query_results>
1001 <error_query_result>
1002 <name>total execution failures</name>
1003 <description>Aggregated count of errors encountered when executing the action</description>
1004 <error_query_result_counter>
1006 </error_query_result_counter>
1007 </error_query_result>
1008 </error_query_results>
1012 <error_query_results/>
1019 list_triggers_matches_ok
"event-rule-matches, probe event rule" "${tmp_expected_stdout}"
1020 list_triggers_matches_mi_ok
"MI event-rule-matches, probe event rule" "${tmp_expected_stdout_mi}"
1022 lttng_remove_trigger_ok
"T0"
1023 lttng_remove_trigger_ok
"T1"
1024 lttng_remove_trigger_ok
"T2"
1027 test_event_rule_matches_userspace_probe_elf
()
1029 local elf_function_name
="test_function"
1031 diag
"Listing event-rule-matches userspace-probe elf"
1033 lttng_add_trigger_ok
"T0" --condition event-rule-matches
--type=kernel
:uprobe
--location=${uprobe_elf_binary}:test_function
--event-name=ma-probe-elf
--action notify
1035 cat > "${tmp_expected_stdout}" <<- EOF
1038 condition: event rule matches
1039 rule: ma-probe-elf (type: kernel:uprobe, location type: ELF, location: ${uprobe_elf_binary}:${elf_function_name})
1047 cat > "${tmp_expected_stdout_mi}" <<- EOF
1048 <?xml version="1.0" encoding="UTF-8"?>
1049 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
1050 <name>list-trigger</name>
1055 <owner_uid>${uid}</owner_uid>
1057 <condition_event_rule_matches>
1059 <event_rule_kernel_uprobe>
1060 <event_name>ma-probe-elf</event_name>
1061 <userspace_probe_location>
1062 <userspace_probe_location_function>
1063 <name>${elf_function_name}</name>
1064 <binary_path>${uprobe_elf_binary}</binary_path>
1065 <instrumentation_type>ENTRY</instrumentation_type>
1066 <userspace_probe_location_lookup_method>
1067 <userspace_probe_location_lookup_method_function_elf/>
1068 </userspace_probe_location_lookup_method>
1069 </userspace_probe_location_function>
1070 </userspace_probe_location>
1071 </event_rule_kernel_uprobe>
1073 <capture_descriptors/>
1074 </condition_event_rule_matches>
1075 <error_query_results>
1076 <error_query_result>
1077 <name>discarded tracer messages</name>
1078 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1079 <error_query_result_counter>
1081 </error_query_result_counter>
1082 </error_query_result>
1083 </error_query_results>
1090 <rate_policy_every_n>
1091 <interval>1</interval>
1092 </rate_policy_every_n>
1095 <error_query_results>
1096 <error_query_result>
1097 <name>total execution failures</name>
1098 <description>Aggregated count of errors encountered when executing the action</description>
1099 <error_query_result_counter>
1101 </error_query_result_counter>
1102 </error_query_result>
1103 </error_query_results>
1107 <error_query_results/>
1114 list_triggers_matches_ok
"event-rule-matches, userspace-probe event rule" "${tmp_expected_stdout}"
1115 list_triggers_matches_mi_ok
"MI event-rule-matches, userspace-probe event rule" "${tmp_expected_stdout_mi}"
1117 lttng_remove_trigger_ok
"T0"
1120 test_event_rule_matches_userspace_probe_sdt
()
1122 local sdt_provider_name
="foobar"
1123 local sdt_probe_name
="tp1"
1125 diag
"Listing event-rule-matches userspace-probe sdt"
1127 lttng_add_trigger_ok
"T0" --condition event-rule-matches
--type=kernel
:uprobe
--location=sdt
:${uprobe_sdt_binary}:${sdt_provider_name}:${sdt_probe_name} --event-name=ma-probe-sdt
--action notify
1129 cat > "${tmp_expected_stdout}" <<- EOF
1132 condition: event rule matches
1133 rule: ma-probe-sdt (type: kernel:uprobe, location type: SDT, location: ${uprobe_sdt_binary}:${sdt_provider_name}:${sdt_probe_name})
1141 cat > "${tmp_expected_stdout_mi}" <<- EOF
1142 <?xml version="1.0" encoding="UTF-8"?>
1143 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
1144 <name>list-trigger</name>
1149 <owner_uid>${uid}</owner_uid>
1151 <condition_event_rule_matches>
1153 <event_rule_kernel_uprobe>
1154 <event_name>ma-probe-sdt</event_name>
1155 <userspace_probe_location>
1156 <userspace_probe_location_tracepoint>
1157 <probe_name>${sdt_probe_name}</probe_name>
1158 <provider_name>${sdt_provider_name}</provider_name>
1159 <binary_path>${uprobe_sdt_binary}</binary_path>
1160 <userspace_probe_location_lookup_method>
1161 <userspace_probe_location_lookup_method_tracepoint_sdt/>
1162 </userspace_probe_location_lookup_method>
1163 </userspace_probe_location_tracepoint>
1164 </userspace_probe_location>
1165 </event_rule_kernel_uprobe>
1167 <capture_descriptors/>
1168 </condition_event_rule_matches>
1169 <error_query_results>
1170 <error_query_result>
1171 <name>discarded tracer messages</name>
1172 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1173 <error_query_result_counter>
1175 </error_query_result_counter>
1176 </error_query_result>
1177 </error_query_results>
1184 <rate_policy_every_n>
1185 <interval>1</interval>
1186 </rate_policy_every_n>
1189 <error_query_results>
1190 <error_query_result>
1191 <name>total execution failures</name>
1192 <description>Aggregated count of errors encountered when executing the action</description>
1193 <error_query_result_counter>
1195 </error_query_result_counter>
1196 </error_query_result>
1197 </error_query_results>
1201 <error_query_results/>
1208 list_triggers_matches_ok
"event-rule-matches, userspace-probe event rule SDT" "${tmp_expected_stdout}"
1209 list_triggers_matches_mi_ok
"MI event-rule-matches, userspace-probe event rule SDT" "${tmp_expected_stdout_mi}"
1211 lttng_remove_trigger_ok
"T0"
1214 test_event_rule_matches_syscall
()
1216 diag
"Listing event-rule-matches syscall"
1218 lttng_add_trigger_ok
"T0" --condition event-rule-matches
--type=syscall
--name=open
--action notify
1219 lttng_add_trigger_ok
"T1" --condition event-rule-matches
--type=syscall
:entry
--name=open
--action notify
1220 lttng_add_trigger_ok
"T2" --condition event-rule-matches
--type=syscall
:exit --name=open
--action notify
1221 lttng_add_trigger_ok
"T3" --condition event-rule-matches
--type=syscall
:entry
+exit --name=open
--action notify
1222 lttng_add_trigger_ok
"T4" --condition event-rule-matches
--type=syscall
--name=ptrace
--filter 'a > 2' --action notify
1224 cat > "${tmp_expected_stdout}" <<- EOF
1227 condition: event rule matches
1228 rule: open (type: kernel:syscall:entry+exit)
1236 condition: event rule matches
1237 rule: open (type: kernel:syscall:entry)
1245 condition: event rule matches
1246 rule: open (type: kernel:syscall:exit)
1254 condition: event rule matches
1255 rule: open (type: kernel:syscall:entry+exit)
1263 condition: event rule matches
1264 rule: ptrace (type: kernel:syscall:entry+exit, filter: a > 2)
1272 cat > "${tmp_expected_stdout_mi}" <<- EOF
1273 <?xml version="1.0" encoding="UTF-8"?>
1274 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
1275 <name>list-trigger</name>
1280 <owner_uid>${uid}</owner_uid>
1282 <condition_event_rule_matches>
1284 <event_rule_kernel_syscall>
1285 <emission_site>entry+exit</emission_site>
1286 <name_pattern>open</name_pattern>
1287 </event_rule_kernel_syscall>
1289 <capture_descriptors/>
1290 </condition_event_rule_matches>
1291 <error_query_results>
1292 <error_query_result>
1293 <name>discarded tracer messages</name>
1294 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1295 <error_query_result_counter>
1297 </error_query_result_counter>
1298 </error_query_result>
1299 </error_query_results>
1306 <rate_policy_every_n>
1307 <interval>1</interval>
1308 </rate_policy_every_n>
1311 <error_query_results>
1312 <error_query_result>
1313 <name>total execution failures</name>
1314 <description>Aggregated count of errors encountered when executing the action</description>
1315 <error_query_result_counter>
1317 </error_query_result_counter>
1318 </error_query_result>
1319 </error_query_results>
1323 <error_query_results/>
1327 <owner_uid>${uid}</owner_uid>
1329 <condition_event_rule_matches>
1331 <event_rule_kernel_syscall>
1332 <emission_site>entry</emission_site>
1333 <name_pattern>open</name_pattern>
1334 </event_rule_kernel_syscall>
1336 <capture_descriptors/>
1337 </condition_event_rule_matches>
1338 <error_query_results>
1339 <error_query_result>
1340 <name>discarded tracer messages</name>
1341 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1342 <error_query_result_counter>
1344 </error_query_result_counter>
1345 </error_query_result>
1346 </error_query_results>
1353 <rate_policy_every_n>
1354 <interval>1</interval>
1355 </rate_policy_every_n>
1358 <error_query_results>
1359 <error_query_result>
1360 <name>total execution failures</name>
1361 <description>Aggregated count of errors encountered when executing the action</description>
1362 <error_query_result_counter>
1364 </error_query_result_counter>
1365 </error_query_result>
1366 </error_query_results>
1370 <error_query_results/>
1374 <owner_uid>${uid}</owner_uid>
1376 <condition_event_rule_matches>
1378 <event_rule_kernel_syscall>
1379 <emission_site>exit</emission_site>
1380 <name_pattern>open</name_pattern>
1381 </event_rule_kernel_syscall>
1383 <capture_descriptors/>
1384 </condition_event_rule_matches>
1385 <error_query_results>
1386 <error_query_result>
1387 <name>discarded tracer messages</name>
1388 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1389 <error_query_result_counter>
1391 </error_query_result_counter>
1392 </error_query_result>
1393 </error_query_results>
1400 <rate_policy_every_n>
1401 <interval>1</interval>
1402 </rate_policy_every_n>
1405 <error_query_results>
1406 <error_query_result>
1407 <name>total execution failures</name>
1408 <description>Aggregated count of errors encountered when executing the action</description>
1409 <error_query_result_counter>
1411 </error_query_result_counter>
1412 </error_query_result>
1413 </error_query_results>
1417 <error_query_results/>
1421 <owner_uid>${uid}</owner_uid>
1423 <condition_event_rule_matches>
1425 <event_rule_kernel_syscall>
1426 <emission_site>entry+exit</emission_site>
1427 <name_pattern>open</name_pattern>
1428 </event_rule_kernel_syscall>
1430 <capture_descriptors/>
1431 </condition_event_rule_matches>
1432 <error_query_results>
1433 <error_query_result>
1434 <name>discarded tracer messages</name>
1435 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1436 <error_query_result_counter>
1438 </error_query_result_counter>
1439 </error_query_result>
1440 </error_query_results>
1447 <rate_policy_every_n>
1448 <interval>1</interval>
1449 </rate_policy_every_n>
1452 <error_query_results>
1453 <error_query_result>
1454 <name>total execution failures</name>
1455 <description>Aggregated count of errors encountered when executing the action</description>
1456 <error_query_result_counter>
1458 </error_query_result_counter>
1459 </error_query_result>
1460 </error_query_results>
1464 <error_query_results/>
1468 <owner_uid>${uid}</owner_uid>
1470 <condition_event_rule_matches>
1472 <event_rule_kernel_syscall>
1473 <emission_site>entry+exit</emission_site>
1474 <name_pattern>ptrace</name_pattern>
1475 <filter_expression>a > 2</filter_expression>
1476 </event_rule_kernel_syscall>
1478 <capture_descriptors/>
1479 </condition_event_rule_matches>
1480 <error_query_results>
1481 <error_query_result>
1482 <name>discarded tracer messages</name>
1483 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1484 <error_query_result_counter>
1486 </error_query_result_counter>
1487 </error_query_result>
1488 </error_query_results>
1495 <rate_policy_every_n>
1496 <interval>1</interval>
1497 </rate_policy_every_n>
1500 <error_query_results>
1501 <error_query_result>
1502 <name>total execution failures</name>
1503 <description>Aggregated count of errors encountered when executing the action</description>
1504 <error_query_result_counter>
1506 </error_query_result_counter>
1507 </error_query_result>
1508 </error_query_results>
1512 <error_query_results/>
1520 list_triggers_matches_ok
"event-rule-matches, syscall event rule" "${tmp_expected_stdout}"
1521 list_triggers_matches_mi_ok
"MI event-rule-matches, syscall event rule" "${tmp_expected_stdout_mi}"
1523 lttng_remove_trigger_ok
"T0"
1524 lttng_remove_trigger_ok
"T1"
1525 lttng_remove_trigger_ok
"T2"
1526 lttng_remove_trigger_ok
"T3"
1527 lttng_remove_trigger_ok
"T4"
1530 test_session_consumed_size_condition
()
1532 ${register_some_triggers_bin} test_session_consumed_size_condition
1534 cat > "${tmp_expected_stdout}" <<- EOF
1535 - name: trigger-with-session-consumed-size-condition
1537 condition: session consumed size
1538 session name: the-session-name
1539 threshold: 1234 bytes
1547 cat > "${tmp_expected_stdout_mi}" <<- EOF
1548 <?xml version="1.0" encoding="UTF-8"?>
1549 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
1550 <name>list-trigger</name>
1554 <name>trigger-with-session-consumed-size-condition</name>
1555 <owner_uid>${uid}</owner_uid>
1557 <condition_session_consumed_size>
1558 <session_name>the-session-name</session_name>
1559 <threshold_bytes>1234</threshold_bytes>
1560 </condition_session_consumed_size>
1561 <error_query_results/>
1568 <rate_policy_every_n>
1569 <interval>1</interval>
1570 </rate_policy_every_n>
1573 <error_query_results>
1574 <error_query_result>
1575 <name>total execution failures</name>
1576 <description>Aggregated count of errors encountered when executing the action</description>
1577 <error_query_result_counter>
1579 </error_query_result_counter>
1580 </error_query_result>
1581 </error_query_results>
1585 <error_query_results/>
1593 list_triggers_matches_ok
"session consumed size condition" "${tmp_expected_stdout}"
1594 list_triggers_matches_mi_ok
"MI session consumed size condition" "${tmp_expected_stdout_mi}"
1596 lttng_remove_trigger_ok
"trigger-with-session-consumed-size-condition"
1599 test_buffer_usage_conditions
()
1601 ${register_some_triggers_bin} test_buffer_usage_conditions
1603 cat > "${tmp_expected_stdout}" <<- EOF
1604 - name: trigger-with-buffer-usage-high-bytes-condition
1606 condition: buffer usage high
1607 session name: the-session-name
1608 channel name: the-channel-name
1610 threshold (bytes): 1234
1616 - name: trigger-with-buffer-usage-high-ratio-condition
1618 condition: buffer usage high
1619 session name: the-session-name
1620 channel name: the-channel-name
1622 threshold (ratio): 0.25
1628 - name: trigger-with-buffer-usage-low-bytes-condition
1630 condition: buffer usage low
1631 session name: the-session-name
1632 channel name: the-channel-name
1634 threshold (bytes): 2345
1640 - name: trigger-with-buffer-usage-low-ratio-condition
1642 condition: buffer usage low
1643 session name: the-session-name
1644 channel name: the-channel-name
1646 threshold (ratio): 0.40
1654 cat > "${tmp_expected_stdout_mi}" <<- EOF
1655 <?xml version="1.0" encoding="UTF-8"?>
1656 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
1657 <name>list-trigger</name>
1661 <name>trigger-with-buffer-usage-high-bytes-condition</name>
1662 <owner_uid>${uid}</owner_uid>
1664 <condition_buffer_usage_high>
1665 <session_name>the-session-name</session_name>
1666 <channel_name>the-channel-name</channel_name>
1667 <domain>UST</domain>
1668 <threshold_bytes>1234</threshold_bytes>
1669 </condition_buffer_usage_high>
1670 <error_query_results/>
1677 <rate_policy_every_n>
1678 <interval>1</interval>
1679 </rate_policy_every_n>
1682 <error_query_results>
1683 <error_query_result>
1684 <name>total execution failures</name>
1685 <description>Aggregated count of errors encountered when executing the action</description>
1686 <error_query_result_counter>
1688 </error_query_result_counter>
1689 </error_query_result>
1690 </error_query_results>
1694 <error_query_results/>
1697 <name>trigger-with-buffer-usage-high-ratio-condition</name>
1698 <owner_uid>${uid}</owner_uid>
1700 <condition_buffer_usage_high>
1701 <session_name>the-session-name</session_name>
1702 <channel_name>the-channel-name</channel_name>
1703 <domain>UST</domain>
1704 <threshold_ratio>0.250000</threshold_ratio>
1705 </condition_buffer_usage_high>
1706 <error_query_results/>
1713 <rate_policy_every_n>
1714 <interval>1</interval>
1715 </rate_policy_every_n>
1718 <error_query_results>
1719 <error_query_result>
1720 <name>total execution failures</name>
1721 <description>Aggregated count of errors encountered when executing the action</description>
1722 <error_query_result_counter>
1724 </error_query_result_counter>
1725 </error_query_result>
1726 </error_query_results>
1730 <error_query_results/>
1733 <name>trigger-with-buffer-usage-low-bytes-condition</name>
1734 <owner_uid>${uid}</owner_uid>
1736 <condition_buffer_usage_low>
1737 <session_name>the-session-name</session_name>
1738 <channel_name>the-channel-name</channel_name>
1739 <domain>UST</domain>
1740 <threshold_bytes>2345</threshold_bytes>
1741 </condition_buffer_usage_low>
1742 <error_query_results/>
1749 <rate_policy_every_n>
1750 <interval>1</interval>
1751 </rate_policy_every_n>
1754 <error_query_results>
1755 <error_query_result>
1756 <name>total execution failures</name>
1757 <description>Aggregated count of errors encountered when executing the action</description>
1758 <error_query_result_counter>
1760 </error_query_result_counter>
1761 </error_query_result>
1762 </error_query_results>
1766 <error_query_results/>
1769 <name>trigger-with-buffer-usage-low-ratio-condition</name>
1770 <owner_uid>${uid}</owner_uid>
1772 <condition_buffer_usage_low>
1773 <session_name>the-session-name</session_name>
1774 <channel_name>the-channel-name</channel_name>
1775 <domain>UST</domain>
1776 <threshold_ratio>0.400000</threshold_ratio>
1777 </condition_buffer_usage_low>
1778 <error_query_results/>
1785 <rate_policy_every_n>
1786 <interval>1</interval>
1787 </rate_policy_every_n>
1790 <error_query_results>
1791 <error_query_result>
1792 <name>total execution failures</name>
1793 <description>Aggregated count of errors encountered when executing the action</description>
1794 <error_query_result_counter>
1796 </error_query_result_counter>
1797 </error_query_result>
1798 </error_query_results>
1802 <error_query_results/>
1809 list_triggers_matches_ok
"buffer usage condition" "${tmp_expected_stdout}"
1810 list_triggers_matches_mi_ok
"MI buffer usage condition" "${tmp_expected_stdout_mi}"
1812 lttng_remove_trigger_ok
"trigger-with-buffer-usage-high-bytes-condition"
1813 lttng_remove_trigger_ok
"trigger-with-buffer-usage-high-ratio-condition"
1814 lttng_remove_trigger_ok
"trigger-with-buffer-usage-low-bytes-condition"
1815 lttng_remove_trigger_ok
"trigger-with-buffer-usage-low-ratio-condition"
1818 test_session_rotation_conditions
()
1820 ${register_some_triggers_bin} test_session_rotation_conditions
1822 cat > "${tmp_expected_stdout}" <<- EOF
1823 - name: trigger-with-session-rotation-completed-condition
1825 condition: session rotation completed
1826 session name: the-session-name
1832 - name: trigger-with-session-rotation-ongoing-condition
1834 condition: session rotation ongoing
1835 session name: the-session-name
1843 cat > "${tmp_expected_stdout_mi}" <<- EOF
1844 <?xml version="1.0" encoding="UTF-8"?>
1845 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
1846 <name>list-trigger</name>
1850 <name>trigger-with-session-rotation-completed-condition</name>
1851 <owner_uid>${uid}</owner_uid>
1853 <condition_session_rotation_completed>
1854 <session_name>the-session-name</session_name>
1855 </condition_session_rotation_completed>
1856 <error_query_results/>
1863 <rate_policy_every_n>
1864 <interval>1</interval>
1865 </rate_policy_every_n>
1868 <error_query_results>
1869 <error_query_result>
1870 <name>total execution failures</name>
1871 <description>Aggregated count of errors encountered when executing the action</description>
1872 <error_query_result_counter>
1874 </error_query_result_counter>
1875 </error_query_result>
1876 </error_query_results>
1880 <error_query_results/>
1883 <name>trigger-with-session-rotation-ongoing-condition</name>
1884 <owner_uid>${uid}</owner_uid>
1886 <condition_session_rotation_ongoing>
1887 <session_name>the-session-name</session_name>
1888 </condition_session_rotation_ongoing>
1889 <error_query_results/>
1896 <rate_policy_every_n>
1897 <interval>1</interval>
1898 </rate_policy_every_n>
1901 <error_query_results>
1902 <error_query_result>
1903 <name>total execution failures</name>
1904 <description>Aggregated count of errors encountered when executing the action</description>
1905 <error_query_result_counter>
1907 </error_query_result_counter>
1908 </error_query_result>
1909 </error_query_results>
1913 <error_query_results/>
1920 list_triggers_matches_ok
"session rotation conditions" "${tmp_expected_stdout}"
1921 list_triggers_matches_mi_ok
"MI session rotation conditions" "${tmp_expected_stdout_mi}"
1923 lttng_remove_trigger_ok
"trigger-with-session-rotation-completed-condition"
1924 lttng_remove_trigger_ok
"trigger-with-session-rotation-ongoing-condition"
1927 test_snapshot_action
()
1929 diag
"Listing snapshot actions"
1931 lttng_add_trigger_ok
"T0" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
1932 lttng_add_trigger_ok
"T1" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--path /some
/path
1933 lttng_add_trigger_ok
"T2" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--url file:///some
/other
/path
1934 lttng_add_trigger_ok
"T3" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--url net
://1.2.3.4
1935 lttng_add_trigger_ok
"T4" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--url net
://1.2.3.4:1234:1235
1936 lttng_add_trigger_ok
"T5" --condition event-rule-matches
--type=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
1937 lttng_add_trigger_ok
"T6" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--path /some
/path
--max-size=1234
1938 lttng_add_trigger_ok
"T7" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--path /some
/path
--name=meh
1939 lttng_add_trigger_ok
"T8" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--rate-policy=every
:10
1940 lttng_add_trigger_ok
"T9" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--rate-policy=once-after
:10
1942 cat > "${tmp_expected_stdout}" <<- EOF
1945 condition: event rule matches
1946 rule: some-event (type: user tracepoint)
1949 snapshot session \`ze-session\`
1954 condition: event rule matches
1955 rule: some-event (type: user tracepoint)
1958 snapshot session \`ze-session\`, path: /some/path
1963 condition: event rule matches
1964 rule: some-event (type: user tracepoint)
1967 snapshot session \`ze-session\`, path: /some/other/path
1972 condition: event rule matches
1973 rule: some-event (type: user tracepoint)
1976 snapshot session \`ze-session\`, url: net://1.2.3.4
1981 condition: event rule matches
1982 rule: some-event (type: user tracepoint)
1985 snapshot session \`ze-session\`, url: net://1.2.3.4:1234:1235
1990 condition: event rule matches
1991 rule: some-event (type: user tracepoint)
1994 snapshot session \`ze-session\`, control url: tcp://1.2.3.4:1111, data url: tcp://1.2.3.4:1112
1999 condition: event rule matches
2000 rule: some-event (type: user tracepoint)
2003 snapshot session \`ze-session\`, path: /some/path, max size: 1234
2008 condition: event rule matches
2009 rule: some-event (type: user tracepoint)
2012 snapshot session \`ze-session\`, path: /some/path, name: meh
2017 condition: event rule matches
2018 rule: some-event (type: user tracepoint)
2021 snapshot session \`ze-session\`, rate policy: every 10 occurrences
2026 condition: event rule matches
2027 rule: some-event (type: user tracepoint)
2030 snapshot session \`ze-session\`, rate policy: once after 10 occurrences
2035 cat > "${tmp_expected_stdout_mi}" <<- EOF
2036 <?xml version="1.0" encoding="UTF-8"?>
2037 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
2038 <name>list-trigger</name>
2043 <owner_uid>${uid}</owner_uid>
2045 <condition_event_rule_matches>
2047 <event_rule_user_tracepoint>
2048 <name_pattern>some-event</name_pattern>
2049 </event_rule_user_tracepoint>
2051 <capture_descriptors/>
2052 </condition_event_rule_matches>
2053 <error_query_results>
2054 <error_query_result>
2055 <name>discarded tracer messages</name>
2056 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2057 <error_query_result_counter>
2059 </error_query_result_counter>
2060 </error_query_result>
2061 </error_query_results>
2066 <action_snapshot_session>
2067 <session_name>ze-session</session_name>
2069 <rate_policy_every_n>
2070 <interval>1</interval>
2071 </rate_policy_every_n>
2073 </action_snapshot_session>
2074 <error_query_results>
2075 <error_query_result>
2076 <name>total execution failures</name>
2077 <description>Aggregated count of errors encountered when executing the action</description>
2078 <error_query_result_counter>
2080 </error_query_result_counter>
2081 </error_query_result>
2082 </error_query_results>
2086 <error_query_results/>
2090 <owner_uid>${uid}</owner_uid>
2092 <condition_event_rule_matches>
2094 <event_rule_user_tracepoint>
2095 <name_pattern>some-event</name_pattern>
2096 </event_rule_user_tracepoint>
2098 <capture_descriptors/>
2099 </condition_event_rule_matches>
2100 <error_query_results>
2101 <error_query_result>
2102 <name>discarded tracer messages</name>
2103 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2104 <error_query_result_counter>
2106 </error_query_result_counter>
2107 </error_query_result>
2108 </error_query_results>
2113 <action_snapshot_session>
2114 <session_name>ze-session</session_name>
2116 <ctrl_url>/some/path</ctrl_url>
2119 <rate_policy_every_n>
2120 <interval>1</interval>
2121 </rate_policy_every_n>
2123 </action_snapshot_session>
2124 <error_query_results>
2125 <error_query_result>
2126 <name>total execution failures</name>
2127 <description>Aggregated count of errors encountered when executing the action</description>
2128 <error_query_result_counter>
2130 </error_query_result_counter>
2131 </error_query_result>
2132 </error_query_results>
2136 <error_query_results/>
2140 <owner_uid>${uid}</owner_uid>
2142 <condition_event_rule_matches>
2144 <event_rule_user_tracepoint>
2145 <name_pattern>some-event</name_pattern>
2146 </event_rule_user_tracepoint>
2148 <capture_descriptors/>
2149 </condition_event_rule_matches>
2150 <error_query_results>
2151 <error_query_result>
2152 <name>discarded tracer messages</name>
2153 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2154 <error_query_result_counter>
2156 </error_query_result_counter>
2157 </error_query_result>
2158 </error_query_results>
2163 <action_snapshot_session>
2164 <session_name>ze-session</session_name>
2166 <ctrl_url>/some/other/path</ctrl_url>
2169 <rate_policy_every_n>
2170 <interval>1</interval>
2171 </rate_policy_every_n>
2173 </action_snapshot_session>
2174 <error_query_results>
2175 <error_query_result>
2176 <name>total execution failures</name>
2177 <description>Aggregated count of errors encountered when executing the action</description>
2178 <error_query_result_counter>
2180 </error_query_result_counter>
2181 </error_query_result>
2182 </error_query_results>
2186 <error_query_results/>
2190 <owner_uid>${uid}</owner_uid>
2192 <condition_event_rule_matches>
2194 <event_rule_user_tracepoint>
2195 <name_pattern>some-event</name_pattern>
2196 </event_rule_user_tracepoint>
2198 <capture_descriptors/>
2199 </condition_event_rule_matches>
2200 <error_query_results>
2201 <error_query_result>
2202 <name>discarded tracer messages</name>
2203 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2204 <error_query_result_counter>
2206 </error_query_result_counter>
2207 </error_query_result>
2208 </error_query_results>
2213 <action_snapshot_session>
2214 <session_name>ze-session</session_name>
2216 <ctrl_url>net://1.2.3.4</ctrl_url>
2219 <rate_policy_every_n>
2220 <interval>1</interval>
2221 </rate_policy_every_n>
2223 </action_snapshot_session>
2224 <error_query_results>
2225 <error_query_result>
2226 <name>total execution failures</name>
2227 <description>Aggregated count of errors encountered when executing the action</description>
2228 <error_query_result_counter>
2230 </error_query_result_counter>
2231 </error_query_result>
2232 </error_query_results>
2236 <error_query_results/>
2240 <owner_uid>${uid}</owner_uid>
2242 <condition_event_rule_matches>
2244 <event_rule_user_tracepoint>
2245 <name_pattern>some-event</name_pattern>
2246 </event_rule_user_tracepoint>
2248 <capture_descriptors/>
2249 </condition_event_rule_matches>
2250 <error_query_results>
2251 <error_query_result>
2252 <name>discarded tracer messages</name>
2253 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2254 <error_query_result_counter>
2256 </error_query_result_counter>
2257 </error_query_result>
2258 </error_query_results>
2263 <action_snapshot_session>
2264 <session_name>ze-session</session_name>
2266 <ctrl_url>net://1.2.3.4:1234:1235</ctrl_url>
2269 <rate_policy_every_n>
2270 <interval>1</interval>
2271 </rate_policy_every_n>
2273 </action_snapshot_session>
2274 <error_query_results>
2275 <error_query_result>
2276 <name>total execution failures</name>
2277 <description>Aggregated count of errors encountered when executing the action</description>
2278 <error_query_result_counter>
2280 </error_query_result_counter>
2281 </error_query_result>
2282 </error_query_results>
2286 <error_query_results/>
2290 <owner_uid>${uid}</owner_uid>
2292 <condition_event_rule_matches>
2294 <event_rule_user_tracepoint>
2295 <name_pattern>some-event</name_pattern>
2296 </event_rule_user_tracepoint>
2298 <capture_descriptors/>
2299 </condition_event_rule_matches>
2300 <error_query_results>
2301 <error_query_result>
2302 <name>discarded tracer messages</name>
2303 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2304 <error_query_result_counter>
2306 </error_query_result_counter>
2307 </error_query_result>
2308 </error_query_results>
2313 <action_snapshot_session>
2314 <session_name>ze-session</session_name>
2316 <ctrl_url>tcp://1.2.3.4:1111</ctrl_url>
2317 <data_url>tcp://1.2.3.4:1112</data_url>
2320 <rate_policy_every_n>
2321 <interval>1</interval>
2322 </rate_policy_every_n>
2324 </action_snapshot_session>
2325 <error_query_results>
2326 <error_query_result>
2327 <name>total execution failures</name>
2328 <description>Aggregated count of errors encountered when executing the action</description>
2329 <error_query_result_counter>
2331 </error_query_result_counter>
2332 </error_query_result>
2333 </error_query_results>
2337 <error_query_results/>
2341 <owner_uid>${uid}</owner_uid>
2343 <condition_event_rule_matches>
2345 <event_rule_user_tracepoint>
2346 <name_pattern>some-event</name_pattern>
2347 </event_rule_user_tracepoint>
2349 <capture_descriptors/>
2350 </condition_event_rule_matches>
2351 <error_query_results>
2352 <error_query_result>
2353 <name>discarded tracer messages</name>
2354 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2355 <error_query_result_counter>
2357 </error_query_result_counter>
2358 </error_query_result>
2359 </error_query_results>
2364 <action_snapshot_session>
2365 <session_name>ze-session</session_name>
2367 <ctrl_url>/some/path</ctrl_url>
2368 <max_size>1234</max_size>
2371 <rate_policy_every_n>
2372 <interval>1</interval>
2373 </rate_policy_every_n>
2375 </action_snapshot_session>
2376 <error_query_results>
2377 <error_query_result>
2378 <name>total execution failures</name>
2379 <description>Aggregated count of errors encountered when executing the action</description>
2380 <error_query_result_counter>
2382 </error_query_result_counter>
2383 </error_query_result>
2384 </error_query_results>
2388 <error_query_results/>
2392 <owner_uid>${uid}</owner_uid>
2394 <condition_event_rule_matches>
2396 <event_rule_user_tracepoint>
2397 <name_pattern>some-event</name_pattern>
2398 </event_rule_user_tracepoint>
2400 <capture_descriptors/>
2401 </condition_event_rule_matches>
2402 <error_query_results>
2403 <error_query_result>
2404 <name>discarded tracer messages</name>
2405 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2406 <error_query_result_counter>
2408 </error_query_result_counter>
2409 </error_query_result>
2410 </error_query_results>
2415 <action_snapshot_session>
2416 <session_name>ze-session</session_name>
2419 <ctrl_url>/some/path</ctrl_url>
2422 <rate_policy_every_n>
2423 <interval>1</interval>
2424 </rate_policy_every_n>
2426 </action_snapshot_session>
2427 <error_query_results>
2428 <error_query_result>
2429 <name>total execution failures</name>
2430 <description>Aggregated count of errors encountered when executing the action</description>
2431 <error_query_result_counter>
2433 </error_query_result_counter>
2434 </error_query_result>
2435 </error_query_results>
2439 <error_query_results/>
2443 <owner_uid>${uid}</owner_uid>
2445 <condition_event_rule_matches>
2447 <event_rule_user_tracepoint>
2448 <name_pattern>some-event</name_pattern>
2449 </event_rule_user_tracepoint>
2451 <capture_descriptors/>
2452 </condition_event_rule_matches>
2453 <error_query_results>
2454 <error_query_result>
2455 <name>discarded tracer messages</name>
2456 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2457 <error_query_result_counter>
2459 </error_query_result_counter>
2460 </error_query_result>
2461 </error_query_results>
2466 <action_snapshot_session>
2467 <session_name>ze-session</session_name>
2469 <rate_policy_every_n>
2470 <interval>10</interval>
2471 </rate_policy_every_n>
2473 </action_snapshot_session>
2474 <error_query_results>
2475 <error_query_result>
2476 <name>total execution failures</name>
2477 <description>Aggregated count of errors encountered when executing the action</description>
2478 <error_query_result_counter>
2480 </error_query_result_counter>
2481 </error_query_result>
2482 </error_query_results>
2486 <error_query_results/>
2490 <owner_uid>${uid}</owner_uid>
2492 <condition_event_rule_matches>
2494 <event_rule_user_tracepoint>
2495 <name_pattern>some-event</name_pattern>
2496 </event_rule_user_tracepoint>
2498 <capture_descriptors/>
2499 </condition_event_rule_matches>
2500 <error_query_results>
2501 <error_query_result>
2502 <name>discarded tracer messages</name>
2503 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2504 <error_query_result_counter>
2506 </error_query_result_counter>
2507 </error_query_result>
2508 </error_query_results>
2513 <action_snapshot_session>
2514 <session_name>ze-session</session_name>
2516 <rate_policy_once_after_n>
2517 <threshold>10</threshold>
2518 </rate_policy_once_after_n>
2520 </action_snapshot_session>
2521 <error_query_results>
2522 <error_query_result>
2523 <name>total execution failures</name>
2524 <description>Aggregated count of errors encountered when executing the action</description>
2525 <error_query_result_counter>
2527 </error_query_result_counter>
2528 </error_query_result>
2529 </error_query_results>
2533 <error_query_results/>
2540 list_triggers_matches_ok
"snapshot action" "${tmp_expected_stdout}"
2541 list_triggers_matches_mi_ok
"MI snapshot action" "${tmp_expected_stdout_mi}"
2543 lttng_remove_trigger_ok
"T0"
2544 lttng_remove_trigger_ok
"T1"
2545 lttng_remove_trigger_ok
"T2"
2546 lttng_remove_trigger_ok
"T3"
2547 lttng_remove_trigger_ok
"T4"
2548 lttng_remove_trigger_ok
"T5"
2549 lttng_remove_trigger_ok
"T6"
2550 lttng_remove_trigger_ok
"T7"
2551 lttng_remove_trigger_ok
"T8"
2552 lttng_remove_trigger_ok
"T9"
2555 test_notify_action
()
2557 lttng_add_trigger_ok
"T0" --condition event-rule-matches
--type=user
--name=some-event
--action notify
--rate-policy=once-after
:5
2558 lttng_add_trigger_ok
"T1" --condition event-rule-matches
--type=user
--name=some-event
--action notify
--rate-policy=every
:10
2560 cat > "${tmp_expected_stdout}" <<- EOF
2563 condition: event rule matches
2564 rule: some-event (type: user tracepoint)
2567 notify, rate policy: once after 5 occurrences
2572 condition: event rule matches
2573 rule: some-event (type: user tracepoint)
2576 notify, rate policy: every 10 occurrences
2581 cat > "${tmp_expected_stdout_mi}" <<- EOF
2582 <?xml version="1.0" encoding="UTF-8"?>
2583 <command xmlns="https://lttng.org/xml/ns/lttng-mi" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://lttng.org/xml/ns/lttng-mi https://lttng.org/xml/schemas/lttng-mi/4/lttng-mi-4.0.xsd" schemaVersion="4.0">
2584 <name>list-trigger</name>
2589 <owner_uid>${uid}</owner_uid>
2591 <condition_event_rule_matches>
2593 <event_rule_user_tracepoint>
2594 <name_pattern>some-event</name_pattern>
2595 </event_rule_user_tracepoint>
2597 <capture_descriptors/>
2598 </condition_event_rule_matches>
2599 <error_query_results>
2600 <error_query_result>
2601 <name>discarded tracer messages</name>
2602 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2603 <error_query_result_counter>
2605 </error_query_result_counter>
2606 </error_query_result>
2607 </error_query_results>
2614 <rate_policy_once_after_n>
2615 <threshold>5</threshold>
2616 </rate_policy_once_after_n>
2619 <error_query_results>
2620 <error_query_result>
2621 <name>total execution failures</name>
2622 <description>Aggregated count of errors encountered when executing the action</description>
2623 <error_query_result_counter>
2625 </error_query_result_counter>
2626 </error_query_result>
2627 </error_query_results>
2631 <error_query_results/>
2635 <owner_uid>${uid}</owner_uid>
2637 <condition_event_rule_matches>
2639 <event_rule_user_tracepoint>
2640 <name_pattern>some-event</name_pattern>
2641 </event_rule_user_tracepoint>
2643 <capture_descriptors/>
2644 </condition_event_rule_matches>
2645 <error_query_results>
2646 <error_query_result>
2647 <name>discarded tracer messages</name>
2648 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2649 <error_query_result_counter>
2651 </error_query_result_counter>
2652 </error_query_result>
2653 </error_query_results>
2660 <rate_policy_every_n>
2661 <interval>10</interval>
2662 </rate_policy_every_n>
2665 <error_query_results>
2666 <error_query_result>
2667 <name>total execution failures</name>
2668 <description>Aggregated count of errors encountered when executing the action</description>
2669 <error_query_result_counter>
2671 </error_query_result_counter>
2672 </error_query_result>
2673 </error_query_results>
2677 <error_query_results/>
2684 list_triggers_matches_ok
"notify action" "${tmp_expected_stdout}"
2685 list_triggers_matches_mi_ok
"MI notify action" "${tmp_expected_stdout_mi}"
2687 lttng_remove_trigger_ok
"T0"
2688 lttng_remove_trigger_ok
"T1"
2691 plan_tests
$NUM_TESTS
2693 # shellcheck disable=SC2119
2694 start_lttng_sessiond_notap
2696 test_top_level_options
2697 test_event_rule_matches_tracepoint
2698 skip
$ist_root "non-root user: skipping kprobe tests" 13 || test_event_rule_matches_probe
2699 skip
$ist_root "non-root user: skipping uprobe tests" 9 || test_event_rule_matches_userspace_probe_elf
2700 skip $
(($ist_root && $hast_sdt_binary)) "skipping userspace probe SDT tests" 9 || test_event_rule_matches_userspace_probe_sdt
2701 skip
$ist_root "non-root user: skipping syscall tests" 17 || test_event_rule_matches_syscall
2702 test_session_consumed_size_condition
2703 test_buffer_usage_conditions
2704 test_session_rotation_conditions
2705 test_snapshot_action
2708 stop_lttng_sessiond_notap
2711 rm -f "${tmp_stdout}"
2712 rm -f "${tmp_stderr}"
2713 rm -f "${tmp_expected_stdout}"