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
-t test_list_triggers_cli_stdout.XXXXXX
)
31 tmp_stderr
=$
(mktemp
-t test_list_triggers_cli_stderr.XXXXXX
)
32 tmp_expected_stdout
=$
(mktemp
-t test_list_triggers_cli_expected_stdout.XXXXXX
)
33 tmp_expected_stdout_mi
=$
(mktemp
-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 [ -f "$uprobe_sdt_binary" ]; then
45 test_top_level_options
()
47 diag
"Listing top level options"
49 lttng_add_trigger_ok
"hello" --condition event-rule-matches
--type=user
--name=test-name
--action notify
51 cat > "${tmp_expected_stdout}" <<- EOF
54 condition: event rule matches
55 rule: test-name (type: user tracepoint)
63 cat > "${tmp_expected_stdout_mi}" <<- EOF
64 <?xml version="1.0" encoding="UTF-8"?>
65 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
66 <name>list-trigger</name>
71 <owner_uid>${uid}</owner_uid>
73 <condition_event_rule_matches>
75 <event_rule_user_tracepoint>
76 <name_pattern>test-name</name_pattern>
77 </event_rule_user_tracepoint>
79 <capture_descriptors/>
80 </condition_event_rule_matches>
83 <name>discarded tracer messages</name>
84 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
85 <error_query_result_counter>
87 </error_query_result_counter>
89 </error_query_results>
97 <interval>1</interval>
98 </rate_policy_every_n>
101 <error_query_results>
103 <name>total execution failures</name>
104 <description>Aggregated count of errors encountered when executing the action</description>
105 <error_query_result_counter>
107 </error_query_result_counter>
108 </error_query_result>
109 </error_query_results>
113 <error_query_results/>
120 list_triggers_matches_ok
"top level options" "${tmp_expected_stdout}"
121 list_triggers_matches_mi_ok
"MI top level options" "${tmp_expected_stdout_mi}"
123 lttng_remove_trigger_ok
"hello"
126 test_event_rule_matches_tracepoint
()
128 diag
"Listing event-rule-matches tracepoint"
130 lttng_add_trigger_ok
"C" --condition event-rule-matches
--type=user
--action notify
131 lttng_add_trigger_ok
"A" --condition event-rule-matches
--name=aaa
--type=user
--filter 'p == 2' --action notify
132 lttng_add_trigger_ok
"D" --condition event-rule-matches
--name='hello*' --type=user
-x hello2
--exclude-name hello3
-x hello4
--action notify
133 lttng_add_trigger_ok
"B" --condition event-rule-matches
--type=user
--name=gerboise
--log-level INFO..
--action notify
134 lttng_add_trigger_ok
"E" --condition event-rule-matches
--type=user
--name=lemming
--log-level WARNING
--action notify
135 lttng_add_trigger_ok
"J" --condition event-rule-matches
--type=user
--name=lemming
--log-level ..
--action notify
136 lttng_add_trigger_ok
"F" --condition event-rule-matches
--type=user
--name=capture-payload-field
--capture a
--action notify
137 lttng_add_trigger_ok
"G" --condition event-rule-matches
--type=user
--name=capture-array
--capture 'a[2]' --capture '$ctx.tourlou[18]' --action notify
138 lttng_add_trigger_ok
"H" --condition event-rule-matches
--type=user
--name=capture-chan-ctx
--capture '$ctx.vpid' --action notify
139 lttng_add_trigger_ok
"I" --condition event-rule-matches
--type=user
--name=capture-app-ctx
--capture '$app.iga:active_clients' --action notify
141 cat > "${tmp_expected_stdout}" <<- EOF
144 condition: event rule matches
145 rule: aaa (type: user tracepoint, filter: p == 2)
153 condition: event rule matches
154 rule: gerboise (type: user tracepoint, log level at least INFO)
162 condition: event rule matches
163 rule: * (type: user tracepoint)
171 condition: event rule matches
172 rule: hello* (type: user tracepoint, exclusions: hello2,hello3,hello4)
180 condition: event rule matches
181 rule: lemming (type: user tracepoint, log level is WARNING)
189 condition: event rule matches
190 rule: capture-payload-field (type: user tracepoint)
200 condition: event rule matches
201 rule: capture-array (type: user tracepoint)
212 condition: event rule matches
213 rule: capture-chan-ctx (type: user tracepoint)
223 condition: event rule matches
224 rule: capture-app-ctx (type: user tracepoint)
226 - \$app.iga:active_clients
234 condition: event rule matches
235 rule: lemming (type: user tracepoint)
243 cat > "${tmp_expected_stdout_mi}" <<- EOF
244 <?xml version="1.0" encoding="UTF-8"?>
245 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
246 <name>list-trigger</name>
251 <owner_uid>${uid}</owner_uid>
253 <condition_event_rule_matches>
255 <event_rule_user_tracepoint>
256 <name_pattern>aaa</name_pattern>
257 <filter_expression>p == 2</filter_expression>
258 </event_rule_user_tracepoint>
260 <capture_descriptors/>
261 </condition_event_rule_matches>
262 <error_query_results>
264 <name>discarded tracer messages</name>
265 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
266 <error_query_result_counter>
268 </error_query_result_counter>
269 </error_query_result>
270 </error_query_results>
277 <rate_policy_every_n>
278 <interval>1</interval>
279 </rate_policy_every_n>
282 <error_query_results>
284 <name>total execution failures</name>
285 <description>Aggregated count of errors encountered when executing the action</description>
286 <error_query_result_counter>
288 </error_query_result_counter>
289 </error_query_result>
290 </error_query_results>
294 <error_query_results/>
298 <owner_uid>${uid}</owner_uid>
300 <condition_event_rule_matches>
302 <event_rule_user_tracepoint>
303 <name_pattern>gerboise</name_pattern>
305 <log_level_rule_at_least_as_severe_as>
307 </log_level_rule_at_least_as_severe_as>
309 </event_rule_user_tracepoint>
311 <capture_descriptors/>
312 </condition_event_rule_matches>
313 <error_query_results>
315 <name>discarded tracer messages</name>
316 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
317 <error_query_result_counter>
319 </error_query_result_counter>
320 </error_query_result>
321 </error_query_results>
328 <rate_policy_every_n>
329 <interval>1</interval>
330 </rate_policy_every_n>
333 <error_query_results>
335 <name>total execution failures</name>
336 <description>Aggregated count of errors encountered when executing the action</description>
337 <error_query_result_counter>
339 </error_query_result_counter>
340 </error_query_result>
341 </error_query_results>
345 <error_query_results/>
349 <owner_uid>${uid}</owner_uid>
351 <condition_event_rule_matches>
353 <event_rule_user_tracepoint>
354 <name_pattern>*</name_pattern>
355 </event_rule_user_tracepoint>
357 <capture_descriptors/>
358 </condition_event_rule_matches>
359 <error_query_results>
361 <name>discarded tracer messages</name>
362 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
363 <error_query_result_counter>
365 </error_query_result_counter>
366 </error_query_result>
367 </error_query_results>
374 <rate_policy_every_n>
375 <interval>1</interval>
376 </rate_policy_every_n>
379 <error_query_results>
381 <name>total execution failures</name>
382 <description>Aggregated count of errors encountered when executing the action</description>
383 <error_query_result_counter>
385 </error_query_result_counter>
386 </error_query_result>
387 </error_query_results>
391 <error_query_results/>
395 <owner_uid>${uid}</owner_uid>
397 <condition_event_rule_matches>
399 <event_rule_user_tracepoint>
400 <name_pattern>hello*</name_pattern>
401 <name_pattern_exclusions>
402 <name_pattern_exclusion>hello2</name_pattern_exclusion>
403 <name_pattern_exclusion>hello3</name_pattern_exclusion>
404 <name_pattern_exclusion>hello4</name_pattern_exclusion>
405 </name_pattern_exclusions>
406 </event_rule_user_tracepoint>
408 <capture_descriptors/>
409 </condition_event_rule_matches>
410 <error_query_results>
412 <name>discarded tracer messages</name>
413 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
414 <error_query_result_counter>
416 </error_query_result_counter>
417 </error_query_result>
418 </error_query_results>
425 <rate_policy_every_n>
426 <interval>1</interval>
427 </rate_policy_every_n>
430 <error_query_results>
432 <name>total execution failures</name>
433 <description>Aggregated count of errors encountered when executing the action</description>
434 <error_query_result_counter>
436 </error_query_result_counter>
437 </error_query_result>
438 </error_query_results>
442 <error_query_results/>
446 <owner_uid>${uid}</owner_uid>
448 <condition_event_rule_matches>
450 <event_rule_user_tracepoint>
451 <name_pattern>lemming</name_pattern>
453 <log_level_rule_exactly>
455 </log_level_rule_exactly>
457 </event_rule_user_tracepoint>
459 <capture_descriptors/>
460 </condition_event_rule_matches>
461 <error_query_results>
463 <name>discarded tracer messages</name>
464 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
465 <error_query_result_counter>
467 </error_query_result_counter>
468 </error_query_result>
469 </error_query_results>
476 <rate_policy_every_n>
477 <interval>1</interval>
478 </rate_policy_every_n>
481 <error_query_results>
483 <name>total execution failures</name>
484 <description>Aggregated count of errors encountered when executing the action</description>
485 <error_query_result_counter>
487 </error_query_result_counter>
488 </error_query_result>
489 </error_query_results>
493 <error_query_results/>
497 <owner_uid>${uid}</owner_uid>
499 <condition_event_rule_matches>
501 <event_rule_user_tracepoint>
502 <name_pattern>capture-payload-field</name_pattern>
503 </event_rule_user_tracepoint>
505 <capture_descriptors>
507 <event_expr_payload_field>
509 </event_expr_payload_field>
511 </capture_descriptors>
512 </condition_event_rule_matches>
513 <error_query_results>
515 <name>discarded tracer messages</name>
516 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
517 <error_query_result_counter>
519 </error_query_result_counter>
520 </error_query_result>
521 </error_query_results>
528 <rate_policy_every_n>
529 <interval>1</interval>
530 </rate_policy_every_n>
533 <error_query_results>
535 <name>total execution failures</name>
536 <description>Aggregated count of errors encountered when executing the action</description>
537 <error_query_result_counter>
539 </error_query_result_counter>
540 </error_query_result>
541 </error_query_results>
545 <error_query_results/>
549 <owner_uid>${uid}</owner_uid>
551 <condition_event_rule_matches>
553 <event_rule_user_tracepoint>
554 <name_pattern>capture-array</name_pattern>
555 </event_rule_user_tracepoint>
557 <capture_descriptors>
559 <event_expr_array_field_element>
562 <event_expr_payload_field>
564 </event_expr_payload_field>
566 </event_expr_array_field_element>
569 <event_expr_array_field_element>
572 <event_expr_channel_context_field>
574 </event_expr_channel_context_field>
576 </event_expr_array_field_element>
578 </capture_descriptors>
579 </condition_event_rule_matches>
580 <error_query_results>
582 <name>discarded tracer messages</name>
583 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
584 <error_query_result_counter>
586 </error_query_result_counter>
587 </error_query_result>
588 </error_query_results>
595 <rate_policy_every_n>
596 <interval>1</interval>
597 </rate_policy_every_n>
600 <error_query_results>
602 <name>total execution failures</name>
603 <description>Aggregated count of errors encountered when executing the action</description>
604 <error_query_result_counter>
606 </error_query_result_counter>
607 </error_query_result>
608 </error_query_results>
612 <error_query_results/>
616 <owner_uid>${uid}</owner_uid>
618 <condition_event_rule_matches>
620 <event_rule_user_tracepoint>
621 <name_pattern>capture-chan-ctx</name_pattern>
622 </event_rule_user_tracepoint>
624 <capture_descriptors>
626 <event_expr_channel_context_field>
628 </event_expr_channel_context_field>
630 </capture_descriptors>
631 </condition_event_rule_matches>
632 <error_query_results>
634 <name>discarded tracer messages</name>
635 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
636 <error_query_result_counter>
638 </error_query_result_counter>
639 </error_query_result>
640 </error_query_results>
647 <rate_policy_every_n>
648 <interval>1</interval>
649 </rate_policy_every_n>
652 <error_query_results>
654 <name>total execution failures</name>
655 <description>Aggregated count of errors encountered when executing the action</description>
656 <error_query_result_counter>
658 </error_query_result_counter>
659 </error_query_result>
660 </error_query_results>
664 <error_query_results/>
668 <owner_uid>${uid}</owner_uid>
670 <condition_event_rule_matches>
672 <event_rule_user_tracepoint>
673 <name_pattern>capture-app-ctx</name_pattern>
674 </event_rule_user_tracepoint>
676 <capture_descriptors>
678 <event_expr_app_specific_context_field>
679 <provider_name>iga</provider_name>
680 <type_name>active_clients</type_name>
681 </event_expr_app_specific_context_field>
683 </capture_descriptors>
684 </condition_event_rule_matches>
685 <error_query_results>
687 <name>discarded tracer messages</name>
688 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
689 <error_query_result_counter>
691 </error_query_result_counter>
692 </error_query_result>
693 </error_query_results>
700 <rate_policy_every_n>
701 <interval>1</interval>
702 </rate_policy_every_n>
705 <error_query_results>
707 <name>total execution failures</name>
708 <description>Aggregated count of errors encountered when executing the action</description>
709 <error_query_result_counter>
711 </error_query_result_counter>
712 </error_query_result>
713 </error_query_results>
717 <error_query_results/>
721 <owner_uid>${uid}</owner_uid>
723 <condition_event_rule_matches>
725 <event_rule_user_tracepoint>
726 <name_pattern>lemming</name_pattern>
727 </event_rule_user_tracepoint>
729 <capture_descriptors/>
730 </condition_event_rule_matches>
731 <error_query_results>
733 <name>discarded tracer messages</name>
734 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
735 <error_query_result_counter>
737 </error_query_result_counter>
738 </error_query_result>
739 </error_query_results>
746 <rate_policy_every_n>
747 <interval>1</interval>
748 </rate_policy_every_n>
751 <error_query_results>
753 <name>total execution failures</name>
754 <description>Aggregated count of errors encountered when executing the action</description>
755 <error_query_result_counter>
757 </error_query_result_counter>
758 </error_query_result>
759 </error_query_results>
763 <error_query_results/>
770 list_triggers_matches_ok
"event-rule-matches, tracepoint event rule" "${tmp_expected_stdout}"
771 list_triggers_matches_mi_ok
"MI event-rule-matches, tracepoint event rule" "${tmp_expected_stdout_mi}"
773 lttng_remove_trigger_ok
"A"
774 lttng_remove_trigger_ok
"B"
775 lttng_remove_trigger_ok
"C"
776 lttng_remove_trigger_ok
"D"
777 lttng_remove_trigger_ok
"E"
778 lttng_remove_trigger_ok
"F"
779 lttng_remove_trigger_ok
"G"
780 lttng_remove_trigger_ok
"H"
781 lttng_remove_trigger_ok
"I"
782 lttng_remove_trigger_ok
"J"
785 test_event_rule_matches_probe
()
787 local channel_enable_addr
788 local channel_disable_addr
790 diag
"Listing event-rule-matches kernel probe"
792 channel_enable_addr
=$
(grep '\<lttng_channel_enable\>' /proc
/kallsyms | cut
-f 1 -d ' ')
793 channel_disable_addr
=$
(grep '\<lttng_channel_disable\>' /proc
/kallsyms | cut
-f 1 -d ' ')
795 # We need to find a valid offset.
798 if [[ 0x
$channel_enable_addr -lt 0x
$channel_disable_addr ]]; then
799 base_symbol
="lttng_channel_enable"
800 offset
=$
(( 0x
$channel_disable_addr - 0x
$channel_enable_addr ))
802 base_symbol
="lttng_channel_disable"
803 offset
=$
(( 0x
$channel_enable_addr - 0x
$channel_disable_addr ))
806 offset_hex
="0x$(printf '%x' $offset)"
807 channel_enable_addr_decimal
=$
(printf '%u' 0x
"${channel_enable_addr}")
809 lttng_add_trigger_ok
"T0" --condition event-rule-matches
--type=kprobe
--location=lttng_channel_enable
--event-name=my_channel_enable
--action notify
810 lttng_add_trigger_ok
"T1" --condition event-rule-matches
--type=kprobe
--location="${base_symbol}+${offset_hex}" --event-name=my_channel_enable
--action notify
811 lttng_add_trigger_ok
"T2" --condition event-rule-matches
--type=kprobe
--location="0x${channel_enable_addr}" --event-name=my_channel_enable
--action notify
813 cat > "${tmp_expected_stdout}" <<- EOF
816 condition: event rule matches
817 rule: my_channel_enable (type: kernel:kprobe, location: lttng_channel_enable)
825 condition: event rule matches
826 rule: my_channel_enable (type: kernel:kprobe, location: ${base_symbol}+${offset_hex})
834 condition: event rule matches
835 rule: my_channel_enable (type: kernel:kprobe, location: 0x${channel_enable_addr})
843 cat > "${tmp_expected_stdout_mi}" <<- EOF
844 <?xml version="1.0" encoding="UTF-8"?>
845 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
846 <name>list-trigger</name>
851 <owner_uid>${uid}</owner_uid>
853 <condition_event_rule_matches>
855 <event_rule_kernel_kprobe>
856 <event_name>my_channel_enable</event_name>
857 <kernel_probe_location>
858 <kernel_probe_location_symbol_offset>
859 <name>lttng_channel_enable</name>
861 </kernel_probe_location_symbol_offset>
862 </kernel_probe_location>
863 </event_rule_kernel_kprobe>
865 <capture_descriptors/>
866 </condition_event_rule_matches>
867 <error_query_results>
869 <name>discarded tracer messages</name>
870 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
871 <error_query_result_counter>
873 </error_query_result_counter>
874 </error_query_result>
875 </error_query_results>
882 <rate_policy_every_n>
883 <interval>1</interval>
884 </rate_policy_every_n>
887 <error_query_results>
889 <name>total execution failures</name>
890 <description>Aggregated count of errors encountered when executing the action</description>
891 <error_query_result_counter>
893 </error_query_result_counter>
894 </error_query_result>
895 </error_query_results>
899 <error_query_results/>
903 <owner_uid>${uid}</owner_uid>
905 <condition_event_rule_matches>
907 <event_rule_kernel_kprobe>
908 <event_name>my_channel_enable</event_name>
909 <kernel_probe_location>
910 <kernel_probe_location_symbol_offset>
911 <name>${base_symbol}</name>
912 <offset>${offset}</offset>
913 </kernel_probe_location_symbol_offset>
914 </kernel_probe_location>
915 </event_rule_kernel_kprobe>
917 <capture_descriptors/>
918 </condition_event_rule_matches>
919 <error_query_results>
921 <name>discarded tracer messages</name>
922 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
923 <error_query_result_counter>
925 </error_query_result_counter>
926 </error_query_result>
927 </error_query_results>
934 <rate_policy_every_n>
935 <interval>1</interval>
936 </rate_policy_every_n>
939 <error_query_results>
941 <name>total execution failures</name>
942 <description>Aggregated count of errors encountered when executing the action</description>
943 <error_query_result_counter>
945 </error_query_result_counter>
946 </error_query_result>
947 </error_query_results>
951 <error_query_results/>
955 <owner_uid>${uid}</owner_uid>
957 <condition_event_rule_matches>
959 <event_rule_kernel_kprobe>
960 <event_name>my_channel_enable</event_name>
961 <kernel_probe_location>
962 <kernel_probe_location_address>
963 <address>${channel_enable_addr_decimal}</address>
964 </kernel_probe_location_address>
965 </kernel_probe_location>
966 </event_rule_kernel_kprobe>
968 <capture_descriptors/>
969 </condition_event_rule_matches>
970 <error_query_results>
972 <name>discarded tracer messages</name>
973 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
974 <error_query_result_counter>
976 </error_query_result_counter>
977 </error_query_result>
978 </error_query_results>
985 <rate_policy_every_n>
986 <interval>1</interval>
987 </rate_policy_every_n>
990 <error_query_results>
992 <name>total execution failures</name>
993 <description>Aggregated count of errors encountered when executing the action</description>
994 <error_query_result_counter>
996 </error_query_result_counter>
997 </error_query_result>
998 </error_query_results>
1002 <error_query_results/>
1009 list_triggers_matches_ok
"event-rule-matches, probe event rule" "${tmp_expected_stdout}"
1010 list_triggers_matches_mi_ok
"MI event-rule-matches, probe event rule" "${tmp_expected_stdout_mi}"
1012 lttng_remove_trigger_ok
"T0"
1013 lttng_remove_trigger_ok
"T1"
1014 lttng_remove_trigger_ok
"T2"
1017 test_event_rule_matches_userspace_probe_elf
()
1019 local elf_function_name
="test_function"
1021 diag
"Listing event-rule-matches userspace-probe elf"
1023 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
1025 cat > "${tmp_expected_stdout}" <<- EOF
1028 condition: event rule matches
1029 rule: ma-probe-elf (type: kernel:uprobe, location type: ELF, location: ${uprobe_elf_binary}:${elf_function_name})
1037 cat > "${tmp_expected_stdout_mi}" <<- EOF
1038 <?xml version="1.0" encoding="UTF-8"?>
1039 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
1040 <name>list-trigger</name>
1045 <owner_uid>${uid}</owner_uid>
1047 <condition_event_rule_matches>
1049 <event_rule_kernel_uprobe>
1050 <event_name>ma-probe-elf</event_name>
1051 <userspace_probe_location>
1052 <userspace_probe_location_function>
1053 <name>${elf_function_name}</name>
1054 <binary_path>${uprobe_elf_binary}</binary_path>
1055 <instrumentation_type>ENTRY</instrumentation_type>
1056 <userspace_probe_location_lookup_method>
1057 <userspace_probe_location_lookup_method_function_elf/>
1058 </userspace_probe_location_lookup_method>
1059 </userspace_probe_location_function>
1060 </userspace_probe_location>
1061 </event_rule_kernel_uprobe>
1063 <capture_descriptors/>
1064 </condition_event_rule_matches>
1065 <error_query_results>
1066 <error_query_result>
1067 <name>discarded tracer messages</name>
1068 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1069 <error_query_result_counter>
1071 </error_query_result_counter>
1072 </error_query_result>
1073 </error_query_results>
1080 <rate_policy_every_n>
1081 <interval>1</interval>
1082 </rate_policy_every_n>
1085 <error_query_results>
1086 <error_query_result>
1087 <name>total execution failures</name>
1088 <description>Aggregated count of errors encountered when executing the action</description>
1089 <error_query_result_counter>
1091 </error_query_result_counter>
1092 </error_query_result>
1093 </error_query_results>
1097 <error_query_results/>
1104 list_triggers_matches_ok
"event-rule-matches, userspace-probe event rule" "${tmp_expected_stdout}"
1105 list_triggers_matches_mi_ok
"MI event-rule-matches, userspace-probe event rule" "${tmp_expected_stdout_mi}"
1107 lttng_remove_trigger_ok
"T0"
1110 test_event_rule_matches_userspace_probe_sdt
()
1112 local sdt_provider_name
="foobar"
1113 local sdt_probe_name
="tp1"
1115 diag
"Listing event-rule-matches userspace-probe sdt"
1117 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
1119 cat > "${tmp_expected_stdout}" <<- EOF
1122 condition: event rule matches
1123 rule: ma-probe-sdt (type: kernel:uprobe, location type: SDT, location: ${uprobe_sdt_binary}:${sdt_provider_name}:${sdt_probe_name})
1131 cat > "${tmp_expected_stdout_mi}" <<- EOF
1132 <?xml version="1.0" encoding="UTF-8"?>
1133 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
1134 <name>list-trigger</name>
1139 <owner_uid>${uid}</owner_uid>
1141 <condition_event_rule_matches>
1143 <event_rule_kernel_uprobe>
1144 <event_name>ma-probe-sdt</event_name>
1145 <userspace_probe_location>
1146 <userspace_probe_location_tracepoint>
1147 <probe_name>${sdt_probe_name}</probe_name>
1148 <provider_name>${sdt_provider_name}</provider_name>
1149 <binary_path>${uprobe_sdt_binary}</binary_path>
1150 <userspace_probe_location_lookup_method>
1151 <userspace_probe_location_lookup_method_tracepoint_sdt/>
1152 </userspace_probe_location_lookup_method>
1153 </userspace_probe_location_tracepoint>
1154 </userspace_probe_location>
1155 </event_rule_kernel_uprobe>
1157 <capture_descriptors/>
1158 </condition_event_rule_matches>
1159 <error_query_results>
1160 <error_query_result>
1161 <name>discarded tracer messages</name>
1162 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1163 <error_query_result_counter>
1165 </error_query_result_counter>
1166 </error_query_result>
1167 </error_query_results>
1174 <rate_policy_every_n>
1175 <interval>1</interval>
1176 </rate_policy_every_n>
1179 <error_query_results>
1180 <error_query_result>
1181 <name>total execution failures</name>
1182 <description>Aggregated count of errors encountered when executing the action</description>
1183 <error_query_result_counter>
1185 </error_query_result_counter>
1186 </error_query_result>
1187 </error_query_results>
1191 <error_query_results/>
1198 list_triggers_matches_ok
"event-rule-matches, userspace-probe event rule SDT" "${tmp_expected_stdout}"
1199 list_triggers_matches_mi_ok
"MI event-rule-matches, userspace-probe event rule SDT" "${tmp_expected_stdout_mi}"
1201 lttng_remove_trigger_ok
"T0"
1204 test_event_rule_matches_syscall
()
1206 diag
"Listing event-rule-matches syscall"
1208 lttng_add_trigger_ok
"T0" --condition event-rule-matches
--type=syscall
--name=open
--action notify
1209 lttng_add_trigger_ok
"T1" --condition event-rule-matches
--type=syscall
:entry
--name=open
--action notify
1210 lttng_add_trigger_ok
"T2" --condition event-rule-matches
--type=syscall
:exit --name=open
--action notify
1211 lttng_add_trigger_ok
"T3" --condition event-rule-matches
--type=syscall
:entry
+exit --name=open
--action notify
1212 lttng_add_trigger_ok
"T4" --condition event-rule-matches
--type=syscall
--name=ptrace
--filter 'a > 2' --action notify
1214 cat > "${tmp_expected_stdout}" <<- EOF
1217 condition: event rule matches
1218 rule: open (type: kernel:syscall:entry+exit)
1226 condition: event rule matches
1227 rule: open (type: kernel:syscall:entry)
1235 condition: event rule matches
1236 rule: open (type: kernel:syscall:exit)
1244 condition: event rule matches
1245 rule: open (type: kernel:syscall:entry+exit)
1253 condition: event rule matches
1254 rule: ptrace (type: kernel:syscall:entry+exit, filter: a > 2)
1262 cat > "${tmp_expected_stdout_mi}" <<- EOF
1263 <?xml version="1.0" encoding="UTF-8"?>
1264 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
1265 <name>list-trigger</name>
1270 <owner_uid>${uid}</owner_uid>
1272 <condition_event_rule_matches>
1274 <event_rule_kernel_syscall>
1275 <emission_site>entry+exit</emission_site>
1276 <name_pattern>open</name_pattern>
1277 </event_rule_kernel_syscall>
1279 <capture_descriptors/>
1280 </condition_event_rule_matches>
1281 <error_query_results>
1282 <error_query_result>
1283 <name>discarded tracer messages</name>
1284 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1285 <error_query_result_counter>
1287 </error_query_result_counter>
1288 </error_query_result>
1289 </error_query_results>
1296 <rate_policy_every_n>
1297 <interval>1</interval>
1298 </rate_policy_every_n>
1301 <error_query_results>
1302 <error_query_result>
1303 <name>total execution failures</name>
1304 <description>Aggregated count of errors encountered when executing the action</description>
1305 <error_query_result_counter>
1307 </error_query_result_counter>
1308 </error_query_result>
1309 </error_query_results>
1313 <error_query_results/>
1317 <owner_uid>${uid}</owner_uid>
1319 <condition_event_rule_matches>
1321 <event_rule_kernel_syscall>
1322 <emission_site>entry</emission_site>
1323 <name_pattern>open</name_pattern>
1324 </event_rule_kernel_syscall>
1326 <capture_descriptors/>
1327 </condition_event_rule_matches>
1328 <error_query_results>
1329 <error_query_result>
1330 <name>discarded tracer messages</name>
1331 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1332 <error_query_result_counter>
1334 </error_query_result_counter>
1335 </error_query_result>
1336 </error_query_results>
1343 <rate_policy_every_n>
1344 <interval>1</interval>
1345 </rate_policy_every_n>
1348 <error_query_results>
1349 <error_query_result>
1350 <name>total execution failures</name>
1351 <description>Aggregated count of errors encountered when executing the action</description>
1352 <error_query_result_counter>
1354 </error_query_result_counter>
1355 </error_query_result>
1356 </error_query_results>
1360 <error_query_results/>
1364 <owner_uid>${uid}</owner_uid>
1366 <condition_event_rule_matches>
1368 <event_rule_kernel_syscall>
1369 <emission_site>exit</emission_site>
1370 <name_pattern>open</name_pattern>
1371 </event_rule_kernel_syscall>
1373 <capture_descriptors/>
1374 </condition_event_rule_matches>
1375 <error_query_results>
1376 <error_query_result>
1377 <name>discarded tracer messages</name>
1378 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1379 <error_query_result_counter>
1381 </error_query_result_counter>
1382 </error_query_result>
1383 </error_query_results>
1390 <rate_policy_every_n>
1391 <interval>1</interval>
1392 </rate_policy_every_n>
1395 <error_query_results>
1396 <error_query_result>
1397 <name>total execution failures</name>
1398 <description>Aggregated count of errors encountered when executing the action</description>
1399 <error_query_result_counter>
1401 </error_query_result_counter>
1402 </error_query_result>
1403 </error_query_results>
1407 <error_query_results/>
1411 <owner_uid>${uid}</owner_uid>
1413 <condition_event_rule_matches>
1415 <event_rule_kernel_syscall>
1416 <emission_site>entry+exit</emission_site>
1417 <name_pattern>open</name_pattern>
1418 </event_rule_kernel_syscall>
1420 <capture_descriptors/>
1421 </condition_event_rule_matches>
1422 <error_query_results>
1423 <error_query_result>
1424 <name>discarded tracer messages</name>
1425 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1426 <error_query_result_counter>
1428 </error_query_result_counter>
1429 </error_query_result>
1430 </error_query_results>
1437 <rate_policy_every_n>
1438 <interval>1</interval>
1439 </rate_policy_every_n>
1442 <error_query_results>
1443 <error_query_result>
1444 <name>total execution failures</name>
1445 <description>Aggregated count of errors encountered when executing the action</description>
1446 <error_query_result_counter>
1448 </error_query_result_counter>
1449 </error_query_result>
1450 </error_query_results>
1454 <error_query_results/>
1458 <owner_uid>${uid}</owner_uid>
1460 <condition_event_rule_matches>
1462 <event_rule_kernel_syscall>
1463 <emission_site>entry+exit</emission_site>
1464 <name_pattern>ptrace</name_pattern>
1465 <filter_expression>a > 2</filter_expression>
1466 </event_rule_kernel_syscall>
1468 <capture_descriptors/>
1469 </condition_event_rule_matches>
1470 <error_query_results>
1471 <error_query_result>
1472 <name>discarded tracer messages</name>
1473 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
1474 <error_query_result_counter>
1476 </error_query_result_counter>
1477 </error_query_result>
1478 </error_query_results>
1485 <rate_policy_every_n>
1486 <interval>1</interval>
1487 </rate_policy_every_n>
1490 <error_query_results>
1491 <error_query_result>
1492 <name>total execution failures</name>
1493 <description>Aggregated count of errors encountered when executing the action</description>
1494 <error_query_result_counter>
1496 </error_query_result_counter>
1497 </error_query_result>
1498 </error_query_results>
1502 <error_query_results/>
1510 list_triggers_matches_ok
"event-rule-matches, syscall event rule" "${tmp_expected_stdout}"
1511 list_triggers_matches_mi_ok
"MI event-rule-matches, syscall event rule" "${tmp_expected_stdout_mi}"
1513 lttng_remove_trigger_ok
"T0"
1514 lttng_remove_trigger_ok
"T1"
1515 lttng_remove_trigger_ok
"T2"
1516 lttng_remove_trigger_ok
"T3"
1517 lttng_remove_trigger_ok
"T4"
1520 test_session_consumed_size_condition
()
1522 ${register_some_triggers_bin} test_session_consumed_size_condition
1524 cat > "${tmp_expected_stdout}" <<- EOF
1525 - name: trigger-with-session-consumed-size-condition
1527 condition: session consumed size
1528 session name: the-session-name
1529 threshold: 1234 bytes
1537 cat > "${tmp_expected_stdout_mi}" <<- EOF
1538 <?xml version="1.0" encoding="UTF-8"?>
1539 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
1540 <name>list-trigger</name>
1544 <name>trigger-with-session-consumed-size-condition</name>
1545 <owner_uid>${uid}</owner_uid>
1547 <condition_session_consumed_size>
1548 <session_name>the-session-name</session_name>
1549 <threshold_bytes>1234</threshold_bytes>
1550 </condition_session_consumed_size>
1551 <error_query_results/>
1558 <rate_policy_every_n>
1559 <interval>1</interval>
1560 </rate_policy_every_n>
1563 <error_query_results>
1564 <error_query_result>
1565 <name>total execution failures</name>
1566 <description>Aggregated count of errors encountered when executing the action</description>
1567 <error_query_result_counter>
1569 </error_query_result_counter>
1570 </error_query_result>
1571 </error_query_results>
1575 <error_query_results/>
1583 list_triggers_matches_ok
"session consumed size condition" "${tmp_expected_stdout}"
1584 list_triggers_matches_mi_ok
"MI session consumed size condition" "${tmp_expected_stdout_mi}"
1586 lttng_remove_trigger_ok
"trigger-with-session-consumed-size-condition"
1589 test_buffer_usage_conditions
()
1591 ${register_some_triggers_bin} test_buffer_usage_conditions
1593 cat > "${tmp_expected_stdout}" <<- EOF
1594 - name: trigger-with-buffer-usage-high-bytes-condition
1596 condition: buffer usage high
1597 session name: the-session-name
1598 channel name: the-channel-name
1600 threshold (bytes): 1234
1606 - name: trigger-with-buffer-usage-high-ratio-condition
1608 condition: buffer usage high
1609 session name: the-session-name
1610 channel name: the-channel-name
1612 threshold (ratio): 0.25
1618 - name: trigger-with-buffer-usage-low-bytes-condition
1620 condition: buffer usage low
1621 session name: the-session-name
1622 channel name: the-channel-name
1624 threshold (bytes): 2345
1630 - name: trigger-with-buffer-usage-low-ratio-condition
1632 condition: buffer usage low
1633 session name: the-session-name
1634 channel name: the-channel-name
1636 threshold (ratio): 0.40
1644 cat > "${tmp_expected_stdout_mi}" <<- EOF
1645 <?xml version="1.0" encoding="UTF-8"?>
1646 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
1647 <name>list-trigger</name>
1651 <name>trigger-with-buffer-usage-high-bytes-condition</name>
1652 <owner_uid>${uid}</owner_uid>
1654 <condition_buffer_usage_high>
1655 <session_name>the-session-name</session_name>
1656 <channel_name>the-channel-name</channel_name>
1657 <domain>UST</domain>
1658 <threshold_bytes>1234</threshold_bytes>
1659 </condition_buffer_usage_high>
1660 <error_query_results/>
1667 <rate_policy_every_n>
1668 <interval>1</interval>
1669 </rate_policy_every_n>
1672 <error_query_results>
1673 <error_query_result>
1674 <name>total execution failures</name>
1675 <description>Aggregated count of errors encountered when executing the action</description>
1676 <error_query_result_counter>
1678 </error_query_result_counter>
1679 </error_query_result>
1680 </error_query_results>
1684 <error_query_results/>
1687 <name>trigger-with-buffer-usage-high-ratio-condition</name>
1688 <owner_uid>${uid}</owner_uid>
1690 <condition_buffer_usage_high>
1691 <session_name>the-session-name</session_name>
1692 <channel_name>the-channel-name</channel_name>
1693 <domain>UST</domain>
1694 <threshold_ratio>0.250000</threshold_ratio>
1695 </condition_buffer_usage_high>
1696 <error_query_results/>
1703 <rate_policy_every_n>
1704 <interval>1</interval>
1705 </rate_policy_every_n>
1708 <error_query_results>
1709 <error_query_result>
1710 <name>total execution failures</name>
1711 <description>Aggregated count of errors encountered when executing the action</description>
1712 <error_query_result_counter>
1714 </error_query_result_counter>
1715 </error_query_result>
1716 </error_query_results>
1720 <error_query_results/>
1723 <name>trigger-with-buffer-usage-low-bytes-condition</name>
1724 <owner_uid>${uid}</owner_uid>
1726 <condition_buffer_usage_low>
1727 <session_name>the-session-name</session_name>
1728 <channel_name>the-channel-name</channel_name>
1729 <domain>UST</domain>
1730 <threshold_bytes>2345</threshold_bytes>
1731 </condition_buffer_usage_low>
1732 <error_query_results/>
1739 <rate_policy_every_n>
1740 <interval>1</interval>
1741 </rate_policy_every_n>
1744 <error_query_results>
1745 <error_query_result>
1746 <name>total execution failures</name>
1747 <description>Aggregated count of errors encountered when executing the action</description>
1748 <error_query_result_counter>
1750 </error_query_result_counter>
1751 </error_query_result>
1752 </error_query_results>
1756 <error_query_results/>
1759 <name>trigger-with-buffer-usage-low-ratio-condition</name>
1760 <owner_uid>${uid}</owner_uid>
1762 <condition_buffer_usage_low>
1763 <session_name>the-session-name</session_name>
1764 <channel_name>the-channel-name</channel_name>
1765 <domain>UST</domain>
1766 <threshold_ratio>0.400000</threshold_ratio>
1767 </condition_buffer_usage_low>
1768 <error_query_results/>
1775 <rate_policy_every_n>
1776 <interval>1</interval>
1777 </rate_policy_every_n>
1780 <error_query_results>
1781 <error_query_result>
1782 <name>total execution failures</name>
1783 <description>Aggregated count of errors encountered when executing the action</description>
1784 <error_query_result_counter>
1786 </error_query_result_counter>
1787 </error_query_result>
1788 </error_query_results>
1792 <error_query_results/>
1799 list_triggers_matches_ok
"buffer usage condition" "${tmp_expected_stdout}"
1800 list_triggers_matches_mi_ok
"MI buffer usage condition" "${tmp_expected_stdout_mi}"
1802 lttng_remove_trigger_ok
"trigger-with-buffer-usage-high-bytes-condition"
1803 lttng_remove_trigger_ok
"trigger-with-buffer-usage-high-ratio-condition"
1804 lttng_remove_trigger_ok
"trigger-with-buffer-usage-low-bytes-condition"
1805 lttng_remove_trigger_ok
"trigger-with-buffer-usage-low-ratio-condition"
1808 test_session_rotation_conditions
()
1810 ${register_some_triggers_bin} test_session_rotation_conditions
1812 cat > "${tmp_expected_stdout}" <<- EOF
1813 - name: trigger-with-session-rotation-completed-condition
1815 condition: session rotation completed
1816 session name: the-session-name
1822 - name: trigger-with-session-rotation-ongoing-condition
1824 condition: session rotation ongoing
1825 session name: the-session-name
1833 cat > "${tmp_expected_stdout_mi}" <<- EOF
1834 <?xml version="1.0" encoding="UTF-8"?>
1835 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
1836 <name>list-trigger</name>
1840 <name>trigger-with-session-rotation-completed-condition</name>
1841 <owner_uid>${uid}</owner_uid>
1843 <condition_session_rotation_completed>
1844 <session_name>the-session-name</session_name>
1845 </condition_session_rotation_completed>
1846 <error_query_results/>
1853 <rate_policy_every_n>
1854 <interval>1</interval>
1855 </rate_policy_every_n>
1858 <error_query_results>
1859 <error_query_result>
1860 <name>total execution failures</name>
1861 <description>Aggregated count of errors encountered when executing the action</description>
1862 <error_query_result_counter>
1864 </error_query_result_counter>
1865 </error_query_result>
1866 </error_query_results>
1870 <error_query_results/>
1873 <name>trigger-with-session-rotation-ongoing-condition</name>
1874 <owner_uid>${uid}</owner_uid>
1876 <condition_session_rotation_ongoing>
1877 <session_name>the-session-name</session_name>
1878 </condition_session_rotation_ongoing>
1879 <error_query_results/>
1886 <rate_policy_every_n>
1887 <interval>1</interval>
1888 </rate_policy_every_n>
1891 <error_query_results>
1892 <error_query_result>
1893 <name>total execution failures</name>
1894 <description>Aggregated count of errors encountered when executing the action</description>
1895 <error_query_result_counter>
1897 </error_query_result_counter>
1898 </error_query_result>
1899 </error_query_results>
1903 <error_query_results/>
1910 list_triggers_matches_ok
"session rotation conditions" "${tmp_expected_stdout}"
1911 list_triggers_matches_mi_ok
"MI session rotation conditions" "${tmp_expected_stdout_mi}"
1913 lttng_remove_trigger_ok
"trigger-with-session-rotation-completed-condition"
1914 lttng_remove_trigger_ok
"trigger-with-session-rotation-ongoing-condition"
1917 test_snapshot_action
()
1919 diag
"Listing snapshot actions"
1921 lttng_add_trigger_ok
"T0" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
1922 lttng_add_trigger_ok
"T1" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--path /some
/path
1923 lttng_add_trigger_ok
"T2" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--url file:///some
/other
/path
1924 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
1925 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
1926 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
1927 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
1928 lttng_add_trigger_ok
"T7" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--path /some
/path
--name=meh
1929 lttng_add_trigger_ok
"T8" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--rate-policy=every
:10
1930 lttng_add_trigger_ok
"T9" --condition event-rule-matches
--type=user
--name=some-event
--action snapshot-session ze-session
--rate-policy=once-after
:10
1932 cat > "${tmp_expected_stdout}" <<- EOF
1935 condition: event rule matches
1936 rule: some-event (type: user tracepoint)
1939 snapshot session \`ze-session\`
1944 condition: event rule matches
1945 rule: some-event (type: user tracepoint)
1948 snapshot session \`ze-session\`, path: /some/path
1953 condition: event rule matches
1954 rule: some-event (type: user tracepoint)
1957 snapshot session \`ze-session\`, path: /some/other/path
1962 condition: event rule matches
1963 rule: some-event (type: user tracepoint)
1966 snapshot session \`ze-session\`, url: net://1.2.3.4
1971 condition: event rule matches
1972 rule: some-event (type: user tracepoint)
1975 snapshot session \`ze-session\`, url: net://1.2.3.4:1234:1235
1980 condition: event rule matches
1981 rule: some-event (type: user tracepoint)
1984 snapshot session \`ze-session\`, control url: tcp://1.2.3.4:1111, data url: tcp://1.2.3.4:1112
1989 condition: event rule matches
1990 rule: some-event (type: user tracepoint)
1993 snapshot session \`ze-session\`, path: /some/path, max size: 1234
1998 condition: event rule matches
1999 rule: some-event (type: user tracepoint)
2002 snapshot session \`ze-session\`, path: /some/path, name: meh
2007 condition: event rule matches
2008 rule: some-event (type: user tracepoint)
2011 snapshot session \`ze-session\`, rate policy: every 10 occurrences
2016 condition: event rule matches
2017 rule: some-event (type: user tracepoint)
2020 snapshot session \`ze-session\`, rate policy: once after 10 occurrences
2025 cat > "${tmp_expected_stdout_mi}" <<- EOF
2026 <?xml version="1.0" encoding="UTF-8"?>
2027 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
2028 <name>list-trigger</name>
2033 <owner_uid>${uid}</owner_uid>
2035 <condition_event_rule_matches>
2037 <event_rule_user_tracepoint>
2038 <name_pattern>some-event</name_pattern>
2039 </event_rule_user_tracepoint>
2041 <capture_descriptors/>
2042 </condition_event_rule_matches>
2043 <error_query_results>
2044 <error_query_result>
2045 <name>discarded tracer messages</name>
2046 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2047 <error_query_result_counter>
2049 </error_query_result_counter>
2050 </error_query_result>
2051 </error_query_results>
2056 <action_snapshot_session>
2057 <session_name>ze-session</session_name>
2059 <rate_policy_every_n>
2060 <interval>1</interval>
2061 </rate_policy_every_n>
2063 </action_snapshot_session>
2064 <error_query_results>
2065 <error_query_result>
2066 <name>total execution failures</name>
2067 <description>Aggregated count of errors encountered when executing the action</description>
2068 <error_query_result_counter>
2070 </error_query_result_counter>
2071 </error_query_result>
2072 </error_query_results>
2076 <error_query_results/>
2080 <owner_uid>${uid}</owner_uid>
2082 <condition_event_rule_matches>
2084 <event_rule_user_tracepoint>
2085 <name_pattern>some-event</name_pattern>
2086 </event_rule_user_tracepoint>
2088 <capture_descriptors/>
2089 </condition_event_rule_matches>
2090 <error_query_results>
2091 <error_query_result>
2092 <name>discarded tracer messages</name>
2093 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2094 <error_query_result_counter>
2096 </error_query_result_counter>
2097 </error_query_result>
2098 </error_query_results>
2103 <action_snapshot_session>
2104 <session_name>ze-session</session_name>
2106 <ctrl_url>/some/path</ctrl_url>
2109 <rate_policy_every_n>
2110 <interval>1</interval>
2111 </rate_policy_every_n>
2113 </action_snapshot_session>
2114 <error_query_results>
2115 <error_query_result>
2116 <name>total execution failures</name>
2117 <description>Aggregated count of errors encountered when executing the action</description>
2118 <error_query_result_counter>
2120 </error_query_result_counter>
2121 </error_query_result>
2122 </error_query_results>
2126 <error_query_results/>
2130 <owner_uid>${uid}</owner_uid>
2132 <condition_event_rule_matches>
2134 <event_rule_user_tracepoint>
2135 <name_pattern>some-event</name_pattern>
2136 </event_rule_user_tracepoint>
2138 <capture_descriptors/>
2139 </condition_event_rule_matches>
2140 <error_query_results>
2141 <error_query_result>
2142 <name>discarded tracer messages</name>
2143 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2144 <error_query_result_counter>
2146 </error_query_result_counter>
2147 </error_query_result>
2148 </error_query_results>
2153 <action_snapshot_session>
2154 <session_name>ze-session</session_name>
2156 <ctrl_url>/some/other/path</ctrl_url>
2159 <rate_policy_every_n>
2160 <interval>1</interval>
2161 </rate_policy_every_n>
2163 </action_snapshot_session>
2164 <error_query_results>
2165 <error_query_result>
2166 <name>total execution failures</name>
2167 <description>Aggregated count of errors encountered when executing the action</description>
2168 <error_query_result_counter>
2170 </error_query_result_counter>
2171 </error_query_result>
2172 </error_query_results>
2176 <error_query_results/>
2180 <owner_uid>${uid}</owner_uid>
2182 <condition_event_rule_matches>
2184 <event_rule_user_tracepoint>
2185 <name_pattern>some-event</name_pattern>
2186 </event_rule_user_tracepoint>
2188 <capture_descriptors/>
2189 </condition_event_rule_matches>
2190 <error_query_results>
2191 <error_query_result>
2192 <name>discarded tracer messages</name>
2193 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2194 <error_query_result_counter>
2196 </error_query_result_counter>
2197 </error_query_result>
2198 </error_query_results>
2203 <action_snapshot_session>
2204 <session_name>ze-session</session_name>
2206 <ctrl_url>net://1.2.3.4</ctrl_url>
2209 <rate_policy_every_n>
2210 <interval>1</interval>
2211 </rate_policy_every_n>
2213 </action_snapshot_session>
2214 <error_query_results>
2215 <error_query_result>
2216 <name>total execution failures</name>
2217 <description>Aggregated count of errors encountered when executing the action</description>
2218 <error_query_result_counter>
2220 </error_query_result_counter>
2221 </error_query_result>
2222 </error_query_results>
2226 <error_query_results/>
2230 <owner_uid>${uid}</owner_uid>
2232 <condition_event_rule_matches>
2234 <event_rule_user_tracepoint>
2235 <name_pattern>some-event</name_pattern>
2236 </event_rule_user_tracepoint>
2238 <capture_descriptors/>
2239 </condition_event_rule_matches>
2240 <error_query_results>
2241 <error_query_result>
2242 <name>discarded tracer messages</name>
2243 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2244 <error_query_result_counter>
2246 </error_query_result_counter>
2247 </error_query_result>
2248 </error_query_results>
2253 <action_snapshot_session>
2254 <session_name>ze-session</session_name>
2256 <ctrl_url>net://1.2.3.4:1234:1235</ctrl_url>
2259 <rate_policy_every_n>
2260 <interval>1</interval>
2261 </rate_policy_every_n>
2263 </action_snapshot_session>
2264 <error_query_results>
2265 <error_query_result>
2266 <name>total execution failures</name>
2267 <description>Aggregated count of errors encountered when executing the action</description>
2268 <error_query_result_counter>
2270 </error_query_result_counter>
2271 </error_query_result>
2272 </error_query_results>
2276 <error_query_results/>
2280 <owner_uid>${uid}</owner_uid>
2282 <condition_event_rule_matches>
2284 <event_rule_user_tracepoint>
2285 <name_pattern>some-event</name_pattern>
2286 </event_rule_user_tracepoint>
2288 <capture_descriptors/>
2289 </condition_event_rule_matches>
2290 <error_query_results>
2291 <error_query_result>
2292 <name>discarded tracer messages</name>
2293 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2294 <error_query_result_counter>
2296 </error_query_result_counter>
2297 </error_query_result>
2298 </error_query_results>
2303 <action_snapshot_session>
2304 <session_name>ze-session</session_name>
2306 <ctrl_url>tcp://1.2.3.4:1111</ctrl_url>
2307 <data_url>tcp://1.2.3.4:1112</data_url>
2310 <rate_policy_every_n>
2311 <interval>1</interval>
2312 </rate_policy_every_n>
2314 </action_snapshot_session>
2315 <error_query_results>
2316 <error_query_result>
2317 <name>total execution failures</name>
2318 <description>Aggregated count of errors encountered when executing the action</description>
2319 <error_query_result_counter>
2321 </error_query_result_counter>
2322 </error_query_result>
2323 </error_query_results>
2327 <error_query_results/>
2331 <owner_uid>${uid}</owner_uid>
2333 <condition_event_rule_matches>
2335 <event_rule_user_tracepoint>
2336 <name_pattern>some-event</name_pattern>
2337 </event_rule_user_tracepoint>
2339 <capture_descriptors/>
2340 </condition_event_rule_matches>
2341 <error_query_results>
2342 <error_query_result>
2343 <name>discarded tracer messages</name>
2344 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2345 <error_query_result_counter>
2347 </error_query_result_counter>
2348 </error_query_result>
2349 </error_query_results>
2354 <action_snapshot_session>
2355 <session_name>ze-session</session_name>
2357 <ctrl_url>/some/path</ctrl_url>
2358 <max_size>1234</max_size>
2361 <rate_policy_every_n>
2362 <interval>1</interval>
2363 </rate_policy_every_n>
2365 </action_snapshot_session>
2366 <error_query_results>
2367 <error_query_result>
2368 <name>total execution failures</name>
2369 <description>Aggregated count of errors encountered when executing the action</description>
2370 <error_query_result_counter>
2372 </error_query_result_counter>
2373 </error_query_result>
2374 </error_query_results>
2378 <error_query_results/>
2382 <owner_uid>${uid}</owner_uid>
2384 <condition_event_rule_matches>
2386 <event_rule_user_tracepoint>
2387 <name_pattern>some-event</name_pattern>
2388 </event_rule_user_tracepoint>
2390 <capture_descriptors/>
2391 </condition_event_rule_matches>
2392 <error_query_results>
2393 <error_query_result>
2394 <name>discarded tracer messages</name>
2395 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2396 <error_query_result_counter>
2398 </error_query_result_counter>
2399 </error_query_result>
2400 </error_query_results>
2405 <action_snapshot_session>
2406 <session_name>ze-session</session_name>
2409 <ctrl_url>/some/path</ctrl_url>
2412 <rate_policy_every_n>
2413 <interval>1</interval>
2414 </rate_policy_every_n>
2416 </action_snapshot_session>
2417 <error_query_results>
2418 <error_query_result>
2419 <name>total execution failures</name>
2420 <description>Aggregated count of errors encountered when executing the action</description>
2421 <error_query_result_counter>
2423 </error_query_result_counter>
2424 </error_query_result>
2425 </error_query_results>
2429 <error_query_results/>
2433 <owner_uid>${uid}</owner_uid>
2435 <condition_event_rule_matches>
2437 <event_rule_user_tracepoint>
2438 <name_pattern>some-event</name_pattern>
2439 </event_rule_user_tracepoint>
2441 <capture_descriptors/>
2442 </condition_event_rule_matches>
2443 <error_query_results>
2444 <error_query_result>
2445 <name>discarded tracer messages</name>
2446 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2447 <error_query_result_counter>
2449 </error_query_result_counter>
2450 </error_query_result>
2451 </error_query_results>
2456 <action_snapshot_session>
2457 <session_name>ze-session</session_name>
2459 <rate_policy_every_n>
2460 <interval>10</interval>
2461 </rate_policy_every_n>
2463 </action_snapshot_session>
2464 <error_query_results>
2465 <error_query_result>
2466 <name>total execution failures</name>
2467 <description>Aggregated count of errors encountered when executing the action</description>
2468 <error_query_result_counter>
2470 </error_query_result_counter>
2471 </error_query_result>
2472 </error_query_results>
2476 <error_query_results/>
2480 <owner_uid>${uid}</owner_uid>
2482 <condition_event_rule_matches>
2484 <event_rule_user_tracepoint>
2485 <name_pattern>some-event</name_pattern>
2486 </event_rule_user_tracepoint>
2488 <capture_descriptors/>
2489 </condition_event_rule_matches>
2490 <error_query_results>
2491 <error_query_result>
2492 <name>discarded tracer messages</name>
2493 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2494 <error_query_result_counter>
2496 </error_query_result_counter>
2497 </error_query_result>
2498 </error_query_results>
2503 <action_snapshot_session>
2504 <session_name>ze-session</session_name>
2506 <rate_policy_once_after_n>
2507 <threshold>10</threshold>
2508 </rate_policy_once_after_n>
2510 </action_snapshot_session>
2511 <error_query_results>
2512 <error_query_result>
2513 <name>total execution failures</name>
2514 <description>Aggregated count of errors encountered when executing the action</description>
2515 <error_query_result_counter>
2517 </error_query_result_counter>
2518 </error_query_result>
2519 </error_query_results>
2523 <error_query_results/>
2530 list_triggers_matches_ok
"snapshot action" "${tmp_expected_stdout}"
2531 list_triggers_matches_mi_ok
"MI snapshot action" "${tmp_expected_stdout_mi}"
2533 lttng_remove_trigger_ok
"T0"
2534 lttng_remove_trigger_ok
"T1"
2535 lttng_remove_trigger_ok
"T2"
2536 lttng_remove_trigger_ok
"T3"
2537 lttng_remove_trigger_ok
"T4"
2538 lttng_remove_trigger_ok
"T5"
2539 lttng_remove_trigger_ok
"T6"
2540 lttng_remove_trigger_ok
"T7"
2541 lttng_remove_trigger_ok
"T8"
2542 lttng_remove_trigger_ok
"T9"
2545 test_notify_action
()
2547 lttng_add_trigger_ok
"T0" --condition event-rule-matches
--type=user
--name=some-event
--action notify
--rate-policy=once-after
:5
2548 lttng_add_trigger_ok
"T1" --condition event-rule-matches
--type=user
--name=some-event
--action notify
--rate-policy=every
:10
2550 cat > "${tmp_expected_stdout}" <<- EOF
2553 condition: event rule matches
2554 rule: some-event (type: user tracepoint)
2557 notify, rate policy: once after 5 occurrences
2562 condition: event rule matches
2563 rule: some-event (type: user tracepoint)
2566 notify, rate policy: every 10 occurrences
2571 cat > "${tmp_expected_stdout_mi}" <<- EOF
2572 <?xml version="1.0" encoding="UTF-8"?>
2573 <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/${MI_XSD_MAJOR_VERSION}/lttng-mi-${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}.xsd" schemaVersion="${MI_XSD_MAJOR_VERSION}.${MI_XSD_MINOR_VERSION}">
2574 <name>list-trigger</name>
2579 <owner_uid>${uid}</owner_uid>
2581 <condition_event_rule_matches>
2583 <event_rule_user_tracepoint>
2584 <name_pattern>some-event</name_pattern>
2585 </event_rule_user_tracepoint>
2587 <capture_descriptors/>
2588 </condition_event_rule_matches>
2589 <error_query_results>
2590 <error_query_result>
2591 <name>discarded tracer messages</name>
2592 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2593 <error_query_result_counter>
2595 </error_query_result_counter>
2596 </error_query_result>
2597 </error_query_results>
2604 <rate_policy_once_after_n>
2605 <threshold>5</threshold>
2606 </rate_policy_once_after_n>
2609 <error_query_results>
2610 <error_query_result>
2611 <name>total execution failures</name>
2612 <description>Aggregated count of errors encountered when executing the action</description>
2613 <error_query_result_counter>
2615 </error_query_result_counter>
2616 </error_query_result>
2617 </error_query_results>
2621 <error_query_results/>
2625 <owner_uid>${uid}</owner_uid>
2627 <condition_event_rule_matches>
2629 <event_rule_user_tracepoint>
2630 <name_pattern>some-event</name_pattern>
2631 </event_rule_user_tracepoint>
2633 <capture_descriptors/>
2634 </condition_event_rule_matches>
2635 <error_query_results>
2636 <error_query_result>
2637 <name>discarded tracer messages</name>
2638 <description>Count of messages discarded by the tracer due to a communication error with the session daemon</description>
2639 <error_query_result_counter>
2641 </error_query_result_counter>
2642 </error_query_result>
2643 </error_query_results>
2650 <rate_policy_every_n>
2651 <interval>10</interval>
2652 </rate_policy_every_n>
2655 <error_query_results>
2656 <error_query_result>
2657 <name>total execution failures</name>
2658 <description>Aggregated count of errors encountered when executing the action</description>
2659 <error_query_result_counter>
2661 </error_query_result_counter>
2662 </error_query_result>
2663 </error_query_results>
2667 <error_query_results/>
2674 list_triggers_matches_ok
"notify action" "${tmp_expected_stdout}"
2675 list_triggers_matches_mi_ok
"MI notify action" "${tmp_expected_stdout_mi}"
2677 lttng_remove_trigger_ok
"T0"
2678 lttng_remove_trigger_ok
"T1"
2681 plan_tests
$NUM_TESTS
2683 # shellcheck disable=SC2119
2684 start_lttng_sessiond_notap
2686 test_top_level_options
2687 test_event_rule_matches_tracepoint
2688 check_skip_kernel_test
48 "Skipping kprobe, uprobe, SDT and syscall tests." ||
{
2689 test_event_rule_matches_probe
2690 test_event_rule_matches_userspace_probe_elf
2691 skip
$sdt_binary_present "No SDT binary. Skipping userspace probe SDT tests" 9 || test_event_rule_matches_userspace_probe_sdt
2692 test_event_rule_matches_syscall
2694 test_session_consumed_size_condition
2695 test_buffer_usage_conditions
2696 test_session_rotation_conditions
2697 test_snapshot_action
2700 stop_lttng_sessiond_notap
2703 rm -f "${tmp_stdout}"
2704 rm -f "${tmp_stderr}"
2705 rm -f "${tmp_expected_stdout}"