X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=tests%2Fregression%2Ftools%2Ftrigger%2Ftest_list_triggers_cli;h=89c77eb54d41b20c1405441c96229a9b16dad21c;hb=19904669a9eb25cd4a0ccd3de82d3ac803dfe877;hp=e023f3fd919d2dfc975f24362c71240f4ece99af;hpb=50ad08620ff49e3c27e6eb3fea5151e744ae13ec;p=lttng-tools.git diff --git a/tests/regression/tools/trigger/test_list_triggers_cli b/tests/regression/tools/trigger/test_list_triggers_cli index e023f3fd9..89c77eb54 100755 --- a/tests/regression/tools/trigger/test_list_triggers_cli +++ b/tests/regression/tools/trigger/test_list_triggers_cli @@ -23,8 +23,7 @@ TESTDIR="$CURDIR/../../.." # shellcheck source=../../../utils/utils.sh source "$TESTDIR/utils/utils.sh" - -NUM_TESTS=82 +NUM_TESTS=100 FULL_LTTNG_BIN="${TESTDIR}/../src/bin/lttng/${LTTNG_BIN}" @@ -33,6 +32,7 @@ tmp_stderr=$(mktemp -t test_list_triggers_cli_stderr.XXXXXX) tmp_expected_stdout=$(mktemp -t test_list_triggers_cli_expected_stdout.XXXXXX) uprobe_elf_binary=$(realpath "${TESTDIR}/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary") uprobe_sdt_binary=$(realpath "${TESTDIR}/utils/testapp/userspace-probe-sdt-binary/.libs/userspace-probe-sdt-binary") +register_some_triggers_bin=$(realpath "${CURDIR}/utils/register-some-triggers") uid=$(id --user) gid=$(id --group) @@ -70,11 +70,11 @@ test_top_level_options () { diag "Listing top level options" - lttng_add_trigger_ok "hello" --condition event-rule-matches -u --name=test-name --action notify + lttng_add_trigger_ok "hello" --condition event-rule-matches --domain=user --name=test-name --action notify cat > "${tmp_expected_stdout}" <<- EOF - name: hello - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: test-name (type: tracepoint, domain: ust) actions: @@ -92,19 +92,20 @@ test_on_event_tracepoint () { diag "Listing on-event tracepoint" - lttng_add_trigger_ok "C" --condition event-rule-matches -u --action notify - lttng_add_trigger_ok "A" --condition event-rule-matches --name=aaa -u --filter 'p == 2' --action notify - lttng_add_trigger_ok "D" --condition event-rule-matches --name='hello*' -u -x 'hello2,hello3,hello4' --action notify - lttng_add_trigger_ok "B" --condition event-rule-matches -u --name=gerboise --loglevel INFO --action notify - lttng_add_trigger_ok "E" --condition event-rule-matches -u --name=lemming --loglevel-only WARNING --action notify - lttng_add_trigger_ok "F" --condition event-rule-matches -u --name=capture-payload-field --capture a --action notify - lttng_add_trigger_ok "G" --condition event-rule-matches -u --name=capture-array --capture 'a[2]' --capture '$ctx.tourlou[18]' --action notify - lttng_add_trigger_ok "H" --condition event-rule-matches -u --name=capture-chan-ctx --capture '$ctx.vpid' --action notify - lttng_add_trigger_ok "I" --condition event-rule-matches -u --name=capture-app-ctx --capture '$app.iga:active_clients' --action notify + lttng_add_trigger_ok "C" --condition event-rule-matches --domain=user --action notify + lttng_add_trigger_ok "A" --condition event-rule-matches --name=aaa --domain=user --filter 'p == 2' --action notify + lttng_add_trigger_ok "D" --condition event-rule-matches --name='hello*' --domain=user -x 'hello2,hello3,hello4' --action notify + lttng_add_trigger_ok "B" --condition event-rule-matches --domain=user --name=gerboise --log-level INFO.. --action notify + lttng_add_trigger_ok "E" --condition event-rule-matches --domain=user --name=lemming --log-level WARNING --action notify + lttng_add_trigger_ok "J" --condition event-rule-matches --domain=user --name=lemming --log-level .. --action notify + lttng_add_trigger_ok "F" --condition event-rule-matches --domain=user --name=capture-payload-field --capture a --action notify + lttng_add_trigger_ok "G" --condition event-rule-matches --domain=user --name=capture-array --capture 'a[2]' --capture '$ctx.tourlou[18]' --action notify + lttng_add_trigger_ok "H" --condition event-rule-matches --domain=user --name=capture-chan-ctx --capture '$ctx.vpid' --action notify + lttng_add_trigger_ok "I" --condition event-rule-matches --domain=user --name=capture-app-ctx --capture '$app.iga:active_clients' --action notify cat > "${tmp_expected_stdout}" <<- EOF - name: A - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: aaa (type: tracepoint, domain: ust, filter: p == 2) actions: @@ -112,7 +113,7 @@ test_on_event_tracepoint () errors: none errors: none - name: B - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: gerboise (type: tracepoint, domain: ust, log level at least INFO) actions: @@ -120,7 +121,7 @@ test_on_event_tracepoint () errors: none errors: none - name: C - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: * (type: tracepoint, domain: ust) actions: @@ -128,7 +129,7 @@ test_on_event_tracepoint () errors: none errors: none - name: D - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: hello* (type: tracepoint, domain: ust, exclusions: hello2,hello3,hello4) actions: @@ -136,7 +137,7 @@ test_on_event_tracepoint () errors: none errors: none - name: E - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: lemming (type: tracepoint, domain: ust, log level is WARNING) actions: @@ -144,7 +145,7 @@ test_on_event_tracepoint () errors: none errors: none - name: F - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: capture-payload-field (type: tracepoint, domain: ust) captures: @@ -154,7 +155,7 @@ test_on_event_tracepoint () errors: none errors: none - name: G - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: capture-array (type: tracepoint, domain: ust) captures: @@ -165,7 +166,7 @@ test_on_event_tracepoint () errors: none errors: none - name: H - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: capture-chan-ctx (type: tracepoint, domain: ust) captures: @@ -175,7 +176,7 @@ test_on_event_tracepoint () errors: none errors: none - name: I - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: capture-app-ctx (type: tracepoint, domain: ust) captures: @@ -184,6 +185,14 @@ test_on_event_tracepoint () notify errors: none errors: none + - name: J + owner uid: ${uid} + condition: event rule hit + rule: lemming (type: tracepoint, domain: ust) + actions: + notify + errors: none + errors: none EOF list_triggers_matches_ok "event-rule-matches, tracepoint event rule" "${tmp_expected_stdout}" @@ -197,6 +206,7 @@ test_on_event_tracepoint () lttng_remove_trigger_ok "G" lttng_remove_trigger_ok "H" lttng_remove_trigger_ok "I" + lttng_remove_trigger_ok "J" } test_on_event_probe () @@ -222,13 +232,13 @@ test_on_event_probe () offset_hex="0x$(printf '%x' $offset)" - lttng_add_trigger_ok "T0" --condition event-rule-matches -k --probe=lttng_channel_enable --event-name=my_channel_enable --action notify - lttng_add_trigger_ok "T1" --condition event-rule-matches -k --probe="${base_symbol}+${offset_hex}" --event-name=my_channel_enable --action notify - lttng_add_trigger_ok "T2" --condition event-rule-matches -k --probe="0x${channel_enable_addr}" --event-name=my_channel_enable --action notify + lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=kernel --type=kprobe --location=lttng_channel_enable --event-name=my_channel_enable --action notify + lttng_add_trigger_ok "T1" --condition event-rule-matches --domain=kernel --type=kprobe --location="${base_symbol}+${offset_hex}" --event-name=my_channel_enable --action notify + lttng_add_trigger_ok "T2" --condition event-rule-matches --domain=kernel --type=kprobe --location="0x${channel_enable_addr}" --event-name=my_channel_enable --action notify cat > "${tmp_expected_stdout}" <<- EOF - name: T0 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: my_channel_enable (type: probe, location: lttng_channel_enable) actions: @@ -236,7 +246,7 @@ test_on_event_probe () errors: none errors: none - name: T1 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: my_channel_enable (type: probe, location: ${base_symbol}+${offset_hex}) actions: @@ -244,7 +254,7 @@ test_on_event_probe () errors: none errors: none - name: T2 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: my_channel_enable (type: probe, location: 0x${channel_enable_addr}) actions: @@ -266,11 +276,11 @@ test_on_event_userspace_probe_elf () diag "Listing on-event userspace-probe elf" - lttng_add_trigger_ok "T0" --condition event-rule-matches -k --userspace-probe=${uprobe_elf_binary}:test_function --event-name=ma-probe-elf --action notify + lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=kernel --type=uprobe --location=${uprobe_elf_binary}:test_function --event-name=ma-probe-elf --action notify cat > "${tmp_expected_stdout}" <<- EOF - name: T0 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: ma-probe-elf (type: userspace probe, location type: ELF, location: ${uprobe_elf_binary}:${elf_function_name}) actions: @@ -313,12 +323,12 @@ test_on_event_syscall () { diag "Listing on-event syscall" - lttng_add_trigger_ok "T0" --condition event-rule-matches -k --syscall --name=open --action notify - lttng_add_trigger_ok "T1" --condition event-rule-matches -k --syscall --name=ptrace --filter 'a > 2' --action notify + lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=kernel --type=syscall --name=open --action notify + lttng_add_trigger_ok "T1" --condition event-rule-matches --domain=kernel --type=syscall --name=ptrace --filter 'a > 2' --action notify cat > "${tmp_expected_stdout}" <<- EOF - name: T0 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: open (type: syscall) actions: @@ -326,7 +336,7 @@ test_on_event_syscall () errors: none errors: none - name: T1 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: ptrace (type: syscall, filter: a > 2) actions: @@ -341,24 +351,133 @@ test_on_event_syscall () lttng_remove_trigger_ok "T1" } +test_session_consumed_size_condition () +{ + ${register_some_triggers_bin} test_session_consumed_size_condition + + cat > "${tmp_expected_stdout}" <<- EOF + - name: trigger-with-session-consumed-size-condition + owner uid: ${uid} + condition: session consumed size + session name: the-session-name + threshold: 1234 bytes + actions: + notify + errors: none + errors: none + EOF + + list_triggers_matches_ok "session consumed size condition" "${tmp_expected_stdout}" + + lttng_remove_trigger_ok "trigger-with-session-consumed-size-condition" +} + +test_buffer_usage_conditions () +{ + ${register_some_triggers_bin} test_buffer_usage_conditions + + cat > "${tmp_expected_stdout}" <<- EOF + - name: trigger-with-buffer-usage-high-bytes-condition + owner uid: ${uid} + condition: buffer usage high + session name: the-session-name + channel name: the-channel-name + domain: ust + threshold (bytes): 1234 + actions: + notify + errors: none + errors: none + - name: trigger-with-buffer-usage-high-ratio-condition + owner uid: ${uid} + condition: buffer usage high + session name: the-session-name + channel name: the-channel-name + domain: ust + threshold (ratio): 0.25 + actions: + notify + errors: none + errors: none + - name: trigger-with-buffer-usage-low-bytes-condition + owner uid: ${uid} + condition: buffer usage low + session name: the-session-name + channel name: the-channel-name + domain: ust + threshold (bytes): 2345 + actions: + notify + errors: none + errors: none + - name: trigger-with-buffer-usage-low-ratio-condition + owner uid: ${uid} + condition: buffer usage low + session name: the-session-name + channel name: the-channel-name + domain: ust + threshold (ratio): 0.40 + actions: + notify + errors: none + errors: none + EOF + + list_triggers_matches_ok "buffer usage condition" "${tmp_expected_stdout}" + + lttng_remove_trigger_ok "trigger-with-buffer-usage-high-bytes-condition" + lttng_remove_trigger_ok "trigger-with-buffer-usage-high-ratio-condition" + lttng_remove_trigger_ok "trigger-with-buffer-usage-low-bytes-condition" + lttng_remove_trigger_ok "trigger-with-buffer-usage-low-ratio-condition" +} + +test_session_rotation_conditions () +{ + ${register_some_triggers_bin} test_session_rotation_conditions + + cat > "${tmp_expected_stdout}" <<- EOF + - name: trigger-with-session-rotation-completed-condition + owner uid: ${uid} + condition: session rotation completed + session name: the-session-name + actions: + notify + errors: none + errors: none + - name: trigger-with-session-rotation-ongoing-condition + owner uid: ${uid} + condition: session rotation ongoing + session name: the-session-name + actions: + notify + errors: none + errors: none + EOF + + list_triggers_matches_ok "session rotation conditions" "${tmp_expected_stdout}" + + lttng_remove_trigger_ok "trigger-with-session-rotation-completed-condition" + lttng_remove_trigger_ok "trigger-with-session-rotation-ongoing-condition" +} + test_snapshot_action () { diag "Listing snapshot actions" - lttng_add_trigger_ok "T0" --condition event-rule-matches -u --name=some-event --action snapshot-session ze-session - lttng_add_trigger_ok "T1" --condition event-rule-matches -u --name=some-event --action snapshot-session ze-session --path /some/path - lttng_add_trigger_ok "T2" --condition event-rule-matches -u --name=some-event --action snapshot-session ze-session --url file:///some/other/path - lttng_add_trigger_ok "T3" --condition event-rule-matches -u --name=some-event --action snapshot-session ze-session --url net://1.2.3.4 - lttng_add_trigger_ok "T4" --condition event-rule-matches -u --name=some-event --action snapshot-session ze-session --url net://1.2.3.4:1234:1235 - lttng_add_trigger_ok "T5" --condition event-rule-matches -u --name=some-event --action snapshot-session ze-session --ctrl-url=tcp://1.2.3.4:1111 --data-url=tcp://1.2.3.4:1112 - lttng_add_trigger_ok "T6" --condition event-rule-matches -u --name=some-event --action snapshot-session ze-session --path /some/path --max-size=1234 - lttng_add_trigger_ok "T7" --condition event-rule-matches -u --name=some-event --action snapshot-session ze-session --path /some/path --name=meh - lttng_add_trigger_ok "T8" --condition event-rule-matches -u --name=some-event --action snapshot-session ze-session --rate-policy=every:10 - lttng_add_trigger_ok "T9" --condition event-rule-matches -u --name=some-event --action snapshot-session ze-session --rate-policy=once-after:10 + lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session + lttng_add_trigger_ok "T1" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --path /some/path + lttng_add_trigger_ok "T2" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --url file:///some/other/path + lttng_add_trigger_ok "T3" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --url net://1.2.3.4 + lttng_add_trigger_ok "T4" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --url net://1.2.3.4:1234:1235 + lttng_add_trigger_ok "T5" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --ctrl-url=tcp://1.2.3.4:1111 --data-url=tcp://1.2.3.4:1112 + lttng_add_trigger_ok "T6" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --path /some/path --max-size=1234 + lttng_add_trigger_ok "T7" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --path /some/path --name=meh + lttng_add_trigger_ok "T8" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --rate-policy=every:10 + lttng_add_trigger_ok "T9" --condition event-rule-matches --domain=user --name=some-event --action snapshot-session ze-session --rate-policy=once-after:10 cat > "${tmp_expected_stdout}" <<- EOF - name: T0 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -366,7 +485,7 @@ test_snapshot_action () errors: none errors: none - name: T1 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -374,7 +493,7 @@ test_snapshot_action () errors: none errors: none - name: T2 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -382,7 +501,7 @@ test_snapshot_action () errors: none errors: none - name: T3 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -390,7 +509,7 @@ test_snapshot_action () errors: none errors: none - name: T4 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -398,7 +517,7 @@ test_snapshot_action () errors: none errors: none - name: T5 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -406,7 +525,7 @@ test_snapshot_action () errors: none errors: none - name: T6 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -414,7 +533,7 @@ test_snapshot_action () errors: none errors: none - name: T7 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -422,7 +541,7 @@ test_snapshot_action () errors: none errors: none - name: T8 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -430,7 +549,7 @@ test_snapshot_action () errors: none errors: none - name: T9 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -455,12 +574,12 @@ test_snapshot_action () test_notify_action () { - lttng_add_trigger_ok "T0" --condition event-rule-matches -u --name=some-event --action notify --rate-policy=once-after:5 - lttng_add_trigger_ok "T1" --condition event-rule-matches -u --name=some-event --action notify --rate-policy=every:10 + lttng_add_trigger_ok "T0" --condition event-rule-matches --domain=user --name=some-event --action notify --rate-policy=once-after:5 + lttng_add_trigger_ok "T1" --condition event-rule-matches --domain=user --name=some-event --action notify --rate-policy=every:10 cat > "${tmp_expected_stdout}" <<- EOF - name: T0 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -468,7 +587,7 @@ test_notify_action () errors: none errors: none - name: T1 - user id: ${uid} + owner uid: ${uid} condition: event rule hit rule: some-event (type: tracepoint, domain: ust) actions: @@ -477,7 +596,7 @@ test_notify_action () errors: none EOF - list_triggers_matches_ok "snapshot action" "${tmp_expected_stdout}" + list_triggers_matches_ok "notify action" "${tmp_expected_stdout}" lttng_remove_trigger_ok "T0" lttng_remove_trigger_ok "T1" @@ -491,9 +610,12 @@ start_lttng_sessiond_notap test_top_level_options test_on_event_tracepoint skip $ist_root "non-root user: skipping kprobe tests" 9 || test_on_event_probe -skip $ist_root "non-root user: skipping userspace probe elf tests" 5 || test_on_event_userspace_probe_elf +skip $ist_root "non-root user: skipping uprobe tests" 5 || test_on_event_userspace_probe_elf skip $(($ist_root && $hast_sdt_binary)) "skipping userspace probe SDT tests" 5 || test_on_event_userspace_probe_sdt skip $ist_root "non-root user: skipping syscall tests" 7 || test_on_event_syscall +test_session_consumed_size_condition +test_buffer_usage_conditions +test_session_rotation_conditions test_snapshot_action test_notify_action