Introduce emission site for syscall event rule
[lttng-tools.git] / tests / regression / tools / trigger / test_list_triggers_cli
index 82a5d5a91142b20857c8f3f842c423d6e3f2bd8d..4b4b07c43ce6c4479555b1925298555349140b9a 100755 (executable)
@@ -23,8 +23,7 @@ TESTDIR="$CURDIR/../../.."
 # shellcheck source=../../../utils/utils.sh
 source "$TESTDIR/utils/utils.sh"
 
-
-NUM_TESTS=82
+NUM_TESTS=106
 
 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,13 +70,13 @@ test_top_level_options ()
 {
        diag "Listing top level options"
 
-       lttng_add_trigger_ok "hello" --condition event-rule-matches -u test-id --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-id (type: tracepoint, domain: ust)
+           rule: test-name (type: tracepoint, domain: ust)
          actions:
            notify
              errors: none
@@ -92,19 +92,20 @@ test_on_event_tracepoint ()
 {
        diag "Listing on-event tracepoint"
 
-       lttng_add_trigger_ok "C" --condition event-rule-matches -u -a --action notify
-       lttng_add_trigger_ok "A" --condition event-rule-matches aaa -u --filter 'p == 2' --action notify
-       lttng_add_trigger_ok "D" --condition event-rule-matches 'hello*' -u -x 'hello2,hello3,hello4' --action notify
-       lttng_add_trigger_ok "B" --condition event-rule-matches -u gerboise --loglevel INFO --action notify
-       lttng_add_trigger_ok "E" --condition event-rule-matches -u lemming --loglevel-only WARNING --action notify
-       lttng_add_trigger_ok "F" --condition event-rule-matches -u capture-payload-field --capture a --action notify
-       lttng_add_trigger_ok "G" --condition event-rule-matches -u capture-array --capture 'a[2]' --capture '$ctx.tourlou[18]' --action notify
-       lttng_add_trigger_ok "H" --condition event-rule-matches -u capture-chan-ctx --capture '$ctx.vpid' --action notify
-       lttng_add_trigger_ok "I" --condition event-rule-matches -u 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 my_channel_enable --action notify
-       lttng_add_trigger_ok "T1" --condition event-rule-matches -k --probe="${base_symbol}+${offset_hex}" my_channel_enable --action notify
-       lttng_add_trigger_ok "T2" --condition event-rule-matches -k --probe="0x${channel_enable_addr}" 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 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,22 +323,49 @@ test_on_event_syscall ()
 {
        diag "Listing on-event syscall"
 
-       lttng_add_trigger_ok "T0" --condition event-rule-matches -k --syscall open --action notify
-       lttng_add_trigger_ok "T1" --condition event-rule-matches -k --syscall 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:entry --name=open --action notify       
+       lttng_add_trigger_ok "T2" --condition event-rule-matches --domain=kernel --type=syscall:exit --name=open --action notify
+       lttng_add_trigger_ok "T3" --condition event-rule-matches --domain=kernel --type=syscall:entry+exit --name=open --action notify
+       lttng_add_trigger_ok "T4" --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)
+           rule: open (type: syscall:entry+exit)
          actions:
            notify
              errors: none
          errors: none
        - name: T1
-         user id: ${uid}
+         owner uid: ${uid}
+         condition: event rule hit
+           rule: open (type: syscall:entry)
+         actions:
+           notify
+             errors: none
+         errors: none
+       - name: T2
+         owner uid: ${uid}
+         condition: event rule hit
+           rule: open (type: syscall:exit)
+         actions:
+           notify
+             errors: none
+         errors: none
+       - name: T3
+         owner uid: ${uid}
+         condition: event rule hit
+           rule: open (type: syscall:entry+exit)
+         actions:
+           notify
+             errors: none
+         errors: none
+       - name: T4
+         owner uid: ${uid}
          condition: event rule hit
-           rule: ptrace (type: syscall, filter: a > 2)
+           rule: ptrace (type: syscall:entry+exit, filter: a > 2)
          actions:
            notify
              errors: none
@@ -339,26 +376,138 @@ test_on_event_syscall ()
 
        lttng_remove_trigger_ok "T0"
        lttng_remove_trigger_ok "T1"
+       lttng_remove_trigger_ok "T2"
+       lttng_remove_trigger_ok "T3"
+       lttng_remove_trigger_ok "T4"
+}
+
+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 -some-event --action snapshot-session ze-session
-       lttng_add_trigger_ok "T1" --condition event-rule-matches -some-event --action snapshot-session ze-session --path /some/path
-       lttng_add_trigger_ok "T2" --condition event-rule-matches -some-event --action snapshot-session ze-session --url file:///some/other/path
-       lttng_add_trigger_ok "T3" --condition event-rule-matches -some-event --action snapshot-session ze-session --url net://1.2.3.4
-       lttng_add_trigger_ok "T4" --condition event-rule-matches -some-event --action snapshot-session ze-session --url net://1.2.3.4:1234:1235
-       lttng_add_trigger_ok "T5" --condition event-rule-matches -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 -some-event --action snapshot-session ze-session --path /some/path --max-size=1234
-       lttng_add_trigger_ok "T7" --condition event-rule-matches -some-event --action snapshot-session ze-session --path /some/path --name=meh
-       lttng_add_trigger_ok "T8" --condition event-rule-matches -some-event --action snapshot-session ze-session --rate-policy=every:10
-       lttng_add_trigger_ok "T9" --condition event-rule-matches -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 +515,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 +523,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 +531,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 +539,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 +547,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 +555,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 +563,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 +571,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 +579,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 +604,12 @@ test_snapshot_action ()
 
 test_notify_action ()
 {
-       lttng_add_trigger_ok "T0" --condition event-rule-matches -some-event --action notify --rate-policy=once-after:5
-       lttng_add_trigger_ok "T1" --condition event-rule-matches -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 +617,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 +626,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 +640,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
+skip $ist_root "non-root user: skipping syscall tests" 13 || test_on_event_syscall
+test_session_consumed_size_condition
+test_buffer_usage_conditions
+test_session_rotation_conditions
 test_snapshot_action
 test_notify_action
 
This page took 0.032861 seconds and 4 git commands to generate.