Introduce emission site for syscall event rule
[lttng-tools.git] / tests / regression / tools / trigger / test_list_triggers_cli
index 30b636969c6e2135a683be02852932868e101667..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)
@@ -74,7 +74,7 @@ test_top_level_options ()
 
        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:
@@ -95,8 +95,9 @@ test_on_event_tracepoint ()
        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 --loglevel INFO --action notify
-       lttng_add_trigger_ok "E" --condition event-rule-matches --domain=user --name=lemming --loglevel-only WARNING --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
@@ -104,7 +105,7 @@ test_on_event_tracepoint ()
 
        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 ()
@@ -228,7 +238,7 @@ test_on_event_probe ()
 
        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:
@@ -270,7 +280,7 @@ test_on_event_userspace_probe_elf ()
 
        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:
@@ -314,21 +324,48 @@ test_on_event_syscall ()
        diag "Listing on-event syscall"
 
        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
+       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,6 +376,118 @@ 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 ()
@@ -358,7 +507,7 @@ test_snapshot_action ()
 
        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:
@@ -460,7 +609,7 @@ test_notify_action ()
 
        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.030096 seconds and 4 git commands to generate.