Commit | Line | Data |
---|---|---|
0de2479d SM |
1 | #!/bin/bash |
2 | # | |
3 | # Copyright (C) - 2020 EfficiOS, inc | |
4 | # | |
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. | |
8 | # | |
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 | |
12 | # details. | |
13 | # | |
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 | |
17 | ||
18 | # Test the `lttng list-trigger` command line interface. | |
19 | ||
20 | CURDIR="$(dirname "$0")" | |
21 | TESTDIR="$CURDIR/../../.." | |
22 | ||
23 | # shellcheck source=../../../utils/utils.sh | |
24 | source "$TESTDIR/utils/utils.sh" | |
25 | ||
dceffc9e | 26 | NUM_TESTS=150 |
0de2479d SM |
27 | |
28 | FULL_LTTNG_BIN="${TESTDIR}/../src/bin/lttng/${LTTNG_BIN}" | |
29 | ||
8d5a3312 MJ |
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) | |
0de2479d | 34 | uprobe_elf_binary=$(realpath "${TESTDIR}/utils/testapp/userspace-probe-elf-binary/.libs/userspace-probe-elf-binary") |
8a917ae8 | 35 | uprobe_sdt_binary=$(realpath "${TESTDIR}/utils/testapp/userspace-probe-sdt-binary/.libs/userspace-probe-sdt-binary") |
19904669 | 36 | register_some_triggers_bin=$(realpath "${CURDIR}/utils/register-some-triggers") |
0de2479d SM |
37 | |
38 | uid=$(id --user) | |
0de2479d | 39 | |
3a174400 XC |
40 | sdt_binary_present=0 |
41 | if [ -f "$uprobe_sdt_binary" ]; then | |
42 | sdt_binary_present=1 | |
0de2479d SM |
43 | fi |
44 | ||
0de2479d SM |
45 | test_top_level_options () |
46 | { | |
be7f9dfc | 47 | diag "Listing top level options" |
0de2479d | 48 | |
695f7044 | 49 | lttng_add_trigger_ok "hello" --condition event-rule-matches --type=user --name=test-name --action notify |
0de2479d SM |
50 | |
51 | cat > "${tmp_expected_stdout}" <<- EOF | |
1d4b59f2 | 52 | - name: hello |
481c5310 | 53 | owner uid: ${uid} |
8c1d25ff | 54 | condition: event rule matches |
695f7044 | 55 | rule: test-name (type: user tracepoint) |
63dd3d7b | 56 | errors: none |
0de2479d SM |
57 | actions: |
58 | notify | |
709fb83f JG |
59 | errors: none |
60 | errors: none | |
0de2479d SM |
61 | EOF |
62 | ||
dceffc9e JR |
63 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
64 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
66 | <name>list-trigger</name> |
67 | <output> | |
68 | <triggers> | |
69 | <trigger> | |
70 | <name>hello</name> | |
71 | <owner_uid>${uid}</owner_uid> | |
72 | <condition> | |
73 | <condition_event_rule_matches> | |
74 | <event_rule> | |
75 | <event_rule_user_tracepoint> | |
76 | <name_pattern>test-name</name_pattern> | |
77 | </event_rule_user_tracepoint> | |
78 | </event_rule> | |
79 | <capture_descriptors/> | |
80 | </condition_event_rule_matches> | |
81 | <error_query_results> | |
82 | <error_query_result> | |
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> | |
86 | <value>0</value> | |
87 | </error_query_result_counter> | |
88 | </error_query_result> | |
89 | </error_query_results> | |
90 | </condition> | |
91 | <action> | |
92 | <action_list> | |
93 | <action> | |
94 | <action_notify> | |
95 | <rate_policy> | |
96 | <rate_policy_every_n> | |
97 | <interval>1</interval> | |
98 | </rate_policy_every_n> | |
99 | </rate_policy> | |
100 | </action_notify> | |
101 | <error_query_results> | |
102 | <error_query_result> | |
103 | <name>total execution failures</name> | |
104 | <description>Aggregated count of errors encountered when executing the action</description> | |
105 | <error_query_result_counter> | |
106 | <value>0</value> | |
107 | </error_query_result_counter> | |
108 | </error_query_result> | |
109 | </error_query_results> | |
110 | </action> | |
111 | </action_list> | |
112 | </action> | |
113 | <error_query_results/> | |
114 | </trigger> | |
115 | </triggers> | |
116 | </output> | |
117 | </command> | |
118 | EOF | |
119 | ||
be7f9dfc | 120 | list_triggers_matches_ok "top level options" "${tmp_expected_stdout}" |
dceffc9e | 121 | list_triggers_matches_mi_ok "MI top level options" "${tmp_expected_stdout_mi}" |
0de2479d | 122 | |
be7f9dfc | 123 | lttng_remove_trigger_ok "hello" |
0de2479d SM |
124 | } |
125 | ||
8dbb86b8 | 126 | test_event_rule_matches_tracepoint () |
0de2479d | 127 | { |
040a195f | 128 | diag "Listing event-rule-matches tracepoint" |
0de2479d | 129 | |
695f7044 JR |
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 | |
0de2479d SM |
140 | |
141 | cat > "${tmp_expected_stdout}" <<- EOF | |
1d4b59f2 | 142 | - name: A |
481c5310 | 143 | owner uid: ${uid} |
8c1d25ff | 144 | condition: event rule matches |
695f7044 | 145 | rule: aaa (type: user tracepoint, filter: p == 2) |
63dd3d7b | 146 | errors: none |
0de2479d SM |
147 | actions: |
148 | notify | |
709fb83f JG |
149 | errors: none |
150 | errors: none | |
1d4b59f2 | 151 | - name: B |
481c5310 | 152 | owner uid: ${uid} |
8c1d25ff | 153 | condition: event rule matches |
695f7044 | 154 | rule: gerboise (type: user tracepoint, log level at least INFO) |
63dd3d7b | 155 | errors: none |
0de2479d SM |
156 | actions: |
157 | notify | |
709fb83f JG |
158 | errors: none |
159 | errors: none | |
1d4b59f2 | 160 | - name: C |
481c5310 | 161 | owner uid: ${uid} |
8c1d25ff | 162 | condition: event rule matches |
695f7044 | 163 | rule: * (type: user tracepoint) |
63dd3d7b | 164 | errors: none |
0de2479d SM |
165 | actions: |
166 | notify | |
709fb83f JG |
167 | errors: none |
168 | errors: none | |
1d4b59f2 | 169 | - name: D |
481c5310 | 170 | owner uid: ${uid} |
8c1d25ff | 171 | condition: event rule matches |
695f7044 | 172 | rule: hello* (type: user tracepoint, exclusions: hello2,hello3,hello4) |
63dd3d7b | 173 | errors: none |
0de2479d SM |
174 | actions: |
175 | notify | |
709fb83f JG |
176 | errors: none |
177 | errors: none | |
1d4b59f2 | 178 | - name: E |
481c5310 | 179 | owner uid: ${uid} |
8c1d25ff | 180 | condition: event rule matches |
695f7044 | 181 | rule: lemming (type: user tracepoint, log level is WARNING) |
63dd3d7b | 182 | errors: none |
0de2479d SM |
183 | actions: |
184 | notify | |
709fb83f JG |
185 | errors: none |
186 | errors: none | |
1d4b59f2 | 187 | - name: F |
481c5310 | 188 | owner uid: ${uid} |
8c1d25ff | 189 | condition: event rule matches |
695f7044 | 190 | rule: capture-payload-field (type: user tracepoint) |
b203b4b0 SM |
191 | captures: |
192 | - a | |
63dd3d7b | 193 | errors: none |
b203b4b0 SM |
194 | actions: |
195 | notify | |
709fb83f JG |
196 | errors: none |
197 | errors: none | |
1d4b59f2 | 198 | - name: G |
481c5310 | 199 | owner uid: ${uid} |
8c1d25ff | 200 | condition: event rule matches |
695f7044 | 201 | rule: capture-array (type: user tracepoint) |
b203b4b0 SM |
202 | captures: |
203 | - a[2] | |
204 | - \$ctx.tourlou[18] | |
63dd3d7b | 205 | errors: none |
b203b4b0 SM |
206 | actions: |
207 | notify | |
709fb83f JG |
208 | errors: none |
209 | errors: none | |
1d4b59f2 | 210 | - name: H |
481c5310 | 211 | owner uid: ${uid} |
8c1d25ff | 212 | condition: event rule matches |
695f7044 | 213 | rule: capture-chan-ctx (type: user tracepoint) |
b203b4b0 SM |
214 | captures: |
215 | - \$ctx.vpid | |
63dd3d7b | 216 | errors: none |
b203b4b0 SM |
217 | actions: |
218 | notify | |
709fb83f JG |
219 | errors: none |
220 | errors: none | |
1d4b59f2 | 221 | - name: I |
481c5310 | 222 | owner uid: ${uid} |
8c1d25ff | 223 | condition: event rule matches |
695f7044 | 224 | rule: capture-app-ctx (type: user tracepoint) |
b203b4b0 SM |
225 | captures: |
226 | - \$app.iga:active_clients | |
63dd3d7b | 227 | errors: none |
b203b4b0 SM |
228 | actions: |
229 | notify | |
709fb83f JG |
230 | errors: none |
231 | errors: none | |
949f049b | 232 | - name: J |
481c5310 | 233 | owner uid: ${uid} |
8c1d25ff | 234 | condition: event rule matches |
695f7044 | 235 | rule: lemming (type: user tracepoint) |
63dd3d7b | 236 | errors: none |
949f049b SM |
237 | actions: |
238 | notify | |
239 | errors: none | |
240 | errors: none | |
0de2479d SM |
241 | EOF |
242 | ||
dceffc9e JR |
243 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
244 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
246 | <name>list-trigger</name> |
247 | <output> | |
248 | <triggers> | |
249 | <trigger> | |
250 | <name>A</name> | |
251 | <owner_uid>${uid}</owner_uid> | |
252 | <condition> | |
253 | <condition_event_rule_matches> | |
254 | <event_rule> | |
255 | <event_rule_user_tracepoint> | |
256 | <name_pattern>aaa</name_pattern> | |
257 | <filter_expression>p == 2</filter_expression> | |
258 | </event_rule_user_tracepoint> | |
259 | </event_rule> | |
260 | <capture_descriptors/> | |
261 | </condition_event_rule_matches> | |
262 | <error_query_results> | |
263 | <error_query_result> | |
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> | |
267 | <value>0</value> | |
268 | </error_query_result_counter> | |
269 | </error_query_result> | |
270 | </error_query_results> | |
271 | </condition> | |
272 | <action> | |
273 | <action_list> | |
274 | <action> | |
275 | <action_notify> | |
276 | <rate_policy> | |
277 | <rate_policy_every_n> | |
278 | <interval>1</interval> | |
279 | </rate_policy_every_n> | |
280 | </rate_policy> | |
281 | </action_notify> | |
282 | <error_query_results> | |
283 | <error_query_result> | |
284 | <name>total execution failures</name> | |
285 | <description>Aggregated count of errors encountered when executing the action</description> | |
286 | <error_query_result_counter> | |
287 | <value>0</value> | |
288 | </error_query_result_counter> | |
289 | </error_query_result> | |
290 | </error_query_results> | |
291 | </action> | |
292 | </action_list> | |
293 | </action> | |
294 | <error_query_results/> | |
295 | </trigger> | |
296 | <trigger> | |
297 | <name>B</name> | |
298 | <owner_uid>${uid}</owner_uid> | |
299 | <condition> | |
300 | <condition_event_rule_matches> | |
301 | <event_rule> | |
302 | <event_rule_user_tracepoint> | |
303 | <name_pattern>gerboise</name_pattern> | |
304 | <log_level_rule> | |
305 | <log_level_rule_at_least_as_severe_as> | |
306 | <level>6</level> | |
307 | </log_level_rule_at_least_as_severe_as> | |
308 | </log_level_rule> | |
309 | </event_rule_user_tracepoint> | |
310 | </event_rule> | |
311 | <capture_descriptors/> | |
312 | </condition_event_rule_matches> | |
313 | <error_query_results> | |
314 | <error_query_result> | |
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> | |
318 | <value>0</value> | |
319 | </error_query_result_counter> | |
320 | </error_query_result> | |
321 | </error_query_results> | |
322 | </condition> | |
323 | <action> | |
324 | <action_list> | |
325 | <action> | |
326 | <action_notify> | |
327 | <rate_policy> | |
328 | <rate_policy_every_n> | |
329 | <interval>1</interval> | |
330 | </rate_policy_every_n> | |
331 | </rate_policy> | |
332 | </action_notify> | |
333 | <error_query_results> | |
334 | <error_query_result> | |
335 | <name>total execution failures</name> | |
336 | <description>Aggregated count of errors encountered when executing the action</description> | |
337 | <error_query_result_counter> | |
338 | <value>0</value> | |
339 | </error_query_result_counter> | |
340 | </error_query_result> | |
341 | </error_query_results> | |
342 | </action> | |
343 | </action_list> | |
344 | </action> | |
345 | <error_query_results/> | |
346 | </trigger> | |
347 | <trigger> | |
348 | <name>C</name> | |
349 | <owner_uid>${uid}</owner_uid> | |
350 | <condition> | |
351 | <condition_event_rule_matches> | |
352 | <event_rule> | |
353 | <event_rule_user_tracepoint> | |
354 | <name_pattern>*</name_pattern> | |
355 | </event_rule_user_tracepoint> | |
356 | </event_rule> | |
357 | <capture_descriptors/> | |
358 | </condition_event_rule_matches> | |
359 | <error_query_results> | |
360 | <error_query_result> | |
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> | |
364 | <value>0</value> | |
365 | </error_query_result_counter> | |
366 | </error_query_result> | |
367 | </error_query_results> | |
368 | </condition> | |
369 | <action> | |
370 | <action_list> | |
371 | <action> | |
372 | <action_notify> | |
373 | <rate_policy> | |
374 | <rate_policy_every_n> | |
375 | <interval>1</interval> | |
376 | </rate_policy_every_n> | |
377 | </rate_policy> | |
378 | </action_notify> | |
379 | <error_query_results> | |
380 | <error_query_result> | |
381 | <name>total execution failures</name> | |
382 | <description>Aggregated count of errors encountered when executing the action</description> | |
383 | <error_query_result_counter> | |
384 | <value>0</value> | |
385 | </error_query_result_counter> | |
386 | </error_query_result> | |
387 | </error_query_results> | |
388 | </action> | |
389 | </action_list> | |
390 | </action> | |
391 | <error_query_results/> | |
392 | </trigger> | |
393 | <trigger> | |
394 | <name>D</name> | |
395 | <owner_uid>${uid}</owner_uid> | |
396 | <condition> | |
397 | <condition_event_rule_matches> | |
398 | <event_rule> | |
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> | |
407 | </event_rule> | |
408 | <capture_descriptors/> | |
409 | </condition_event_rule_matches> | |
410 | <error_query_results> | |
411 | <error_query_result> | |
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> | |
415 | <value>0</value> | |
416 | </error_query_result_counter> | |
417 | </error_query_result> | |
418 | </error_query_results> | |
419 | </condition> | |
420 | <action> | |
421 | <action_list> | |
422 | <action> | |
423 | <action_notify> | |
424 | <rate_policy> | |
425 | <rate_policy_every_n> | |
426 | <interval>1</interval> | |
427 | </rate_policy_every_n> | |
428 | </rate_policy> | |
429 | </action_notify> | |
430 | <error_query_results> | |
431 | <error_query_result> | |
432 | <name>total execution failures</name> | |
433 | <description>Aggregated count of errors encountered when executing the action</description> | |
434 | <error_query_result_counter> | |
435 | <value>0</value> | |
436 | </error_query_result_counter> | |
437 | </error_query_result> | |
438 | </error_query_results> | |
439 | </action> | |
440 | </action_list> | |
441 | </action> | |
442 | <error_query_results/> | |
443 | </trigger> | |
444 | <trigger> | |
445 | <name>E</name> | |
446 | <owner_uid>${uid}</owner_uid> | |
447 | <condition> | |
448 | <condition_event_rule_matches> | |
449 | <event_rule> | |
450 | <event_rule_user_tracepoint> | |
451 | <name_pattern>lemming</name_pattern> | |
452 | <log_level_rule> | |
453 | <log_level_rule_exactly> | |
454 | <level>4</level> | |
455 | </log_level_rule_exactly> | |
456 | </log_level_rule> | |
457 | </event_rule_user_tracepoint> | |
458 | </event_rule> | |
459 | <capture_descriptors/> | |
460 | </condition_event_rule_matches> | |
461 | <error_query_results> | |
462 | <error_query_result> | |
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> | |
466 | <value>0</value> | |
467 | </error_query_result_counter> | |
468 | </error_query_result> | |
469 | </error_query_results> | |
470 | </condition> | |
471 | <action> | |
472 | <action_list> | |
473 | <action> | |
474 | <action_notify> | |
475 | <rate_policy> | |
476 | <rate_policy_every_n> | |
477 | <interval>1</interval> | |
478 | </rate_policy_every_n> | |
479 | </rate_policy> | |
480 | </action_notify> | |
481 | <error_query_results> | |
482 | <error_query_result> | |
483 | <name>total execution failures</name> | |
484 | <description>Aggregated count of errors encountered when executing the action</description> | |
485 | <error_query_result_counter> | |
486 | <value>0</value> | |
487 | </error_query_result_counter> | |
488 | </error_query_result> | |
489 | </error_query_results> | |
490 | </action> | |
491 | </action_list> | |
492 | </action> | |
493 | <error_query_results/> | |
494 | </trigger> | |
495 | <trigger> | |
496 | <name>F</name> | |
497 | <owner_uid>${uid}</owner_uid> | |
498 | <condition> | |
499 | <condition_event_rule_matches> | |
500 | <event_rule> | |
501 | <event_rule_user_tracepoint> | |
502 | <name_pattern>capture-payload-field</name_pattern> | |
503 | </event_rule_user_tracepoint> | |
504 | </event_rule> | |
505 | <capture_descriptors> | |
506 | <event_expr> | |
507 | <event_expr_payload_field> | |
508 | <name>a</name> | |
509 | </event_expr_payload_field> | |
510 | </event_expr> | |
511 | </capture_descriptors> | |
512 | </condition_event_rule_matches> | |
513 | <error_query_results> | |
514 | <error_query_result> | |
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> | |
518 | <value>0</value> | |
519 | </error_query_result_counter> | |
520 | </error_query_result> | |
521 | </error_query_results> | |
522 | </condition> | |
523 | <action> | |
524 | <action_list> | |
525 | <action> | |
526 | <action_notify> | |
527 | <rate_policy> | |
528 | <rate_policy_every_n> | |
529 | <interval>1</interval> | |
530 | </rate_policy_every_n> | |
531 | </rate_policy> | |
532 | </action_notify> | |
533 | <error_query_results> | |
534 | <error_query_result> | |
535 | <name>total execution failures</name> | |
536 | <description>Aggregated count of errors encountered when executing the action</description> | |
537 | <error_query_result_counter> | |
538 | <value>0</value> | |
539 | </error_query_result_counter> | |
540 | </error_query_result> | |
541 | </error_query_results> | |
542 | </action> | |
543 | </action_list> | |
544 | </action> | |
545 | <error_query_results/> | |
546 | </trigger> | |
547 | <trigger> | |
548 | <name>G</name> | |
549 | <owner_uid>${uid}</owner_uid> | |
550 | <condition> | |
551 | <condition_event_rule_matches> | |
552 | <event_rule> | |
553 | <event_rule_user_tracepoint> | |
554 | <name_pattern>capture-array</name_pattern> | |
555 | </event_rule_user_tracepoint> | |
556 | </event_rule> | |
557 | <capture_descriptors> | |
558 | <event_expr> | |
559 | <event_expr_array_field_element> | |
560 | <index>2</index> | |
561 | <event_expr> | |
562 | <event_expr_payload_field> | |
563 | <name>a</name> | |
564 | </event_expr_payload_field> | |
565 | </event_expr> | |
566 | </event_expr_array_field_element> | |
567 | </event_expr> | |
568 | <event_expr> | |
569 | <event_expr_array_field_element> | |
570 | <index>18</index> | |
571 | <event_expr> | |
572 | <event_expr_channel_context_field> | |
573 | <name>tourlou</name> | |
574 | </event_expr_channel_context_field> | |
575 | </event_expr> | |
576 | </event_expr_array_field_element> | |
577 | </event_expr> | |
578 | </capture_descriptors> | |
579 | </condition_event_rule_matches> | |
580 | <error_query_results> | |
581 | <error_query_result> | |
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> | |
585 | <value>0</value> | |
586 | </error_query_result_counter> | |
587 | </error_query_result> | |
588 | </error_query_results> | |
589 | </condition> | |
590 | <action> | |
591 | <action_list> | |
592 | <action> | |
593 | <action_notify> | |
594 | <rate_policy> | |
595 | <rate_policy_every_n> | |
596 | <interval>1</interval> | |
597 | </rate_policy_every_n> | |
598 | </rate_policy> | |
599 | </action_notify> | |
600 | <error_query_results> | |
601 | <error_query_result> | |
602 | <name>total execution failures</name> | |
603 | <description>Aggregated count of errors encountered when executing the action</description> | |
604 | <error_query_result_counter> | |
605 | <value>0</value> | |
606 | </error_query_result_counter> | |
607 | </error_query_result> | |
608 | </error_query_results> | |
609 | </action> | |
610 | </action_list> | |
611 | </action> | |
612 | <error_query_results/> | |
613 | </trigger> | |
614 | <trigger> | |
615 | <name>H</name> | |
616 | <owner_uid>${uid}</owner_uid> | |
617 | <condition> | |
618 | <condition_event_rule_matches> | |
619 | <event_rule> | |
620 | <event_rule_user_tracepoint> | |
621 | <name_pattern>capture-chan-ctx</name_pattern> | |
622 | </event_rule_user_tracepoint> | |
623 | </event_rule> | |
624 | <capture_descriptors> | |
625 | <event_expr> | |
626 | <event_expr_channel_context_field> | |
627 | <name>vpid</name> | |
628 | </event_expr_channel_context_field> | |
629 | </event_expr> | |
630 | </capture_descriptors> | |
631 | </condition_event_rule_matches> | |
632 | <error_query_results> | |
633 | <error_query_result> | |
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> | |
637 | <value>0</value> | |
638 | </error_query_result_counter> | |
639 | </error_query_result> | |
640 | </error_query_results> | |
641 | </condition> | |
642 | <action> | |
643 | <action_list> | |
644 | <action> | |
645 | <action_notify> | |
646 | <rate_policy> | |
647 | <rate_policy_every_n> | |
648 | <interval>1</interval> | |
649 | </rate_policy_every_n> | |
650 | </rate_policy> | |
651 | </action_notify> | |
652 | <error_query_results> | |
653 | <error_query_result> | |
654 | <name>total execution failures</name> | |
655 | <description>Aggregated count of errors encountered when executing the action</description> | |
656 | <error_query_result_counter> | |
657 | <value>0</value> | |
658 | </error_query_result_counter> | |
659 | </error_query_result> | |
660 | </error_query_results> | |
661 | </action> | |
662 | </action_list> | |
663 | </action> | |
664 | <error_query_results/> | |
665 | </trigger> | |
666 | <trigger> | |
667 | <name>I</name> | |
668 | <owner_uid>${uid}</owner_uid> | |
669 | <condition> | |
670 | <condition_event_rule_matches> | |
671 | <event_rule> | |
672 | <event_rule_user_tracepoint> | |
673 | <name_pattern>capture-app-ctx</name_pattern> | |
674 | </event_rule_user_tracepoint> | |
675 | </event_rule> | |
676 | <capture_descriptors> | |
677 | <event_expr> | |
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> | |
682 | </event_expr> | |
683 | </capture_descriptors> | |
684 | </condition_event_rule_matches> | |
685 | <error_query_results> | |
686 | <error_query_result> | |
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> | |
690 | <value>0</value> | |
691 | </error_query_result_counter> | |
692 | </error_query_result> | |
693 | </error_query_results> | |
694 | </condition> | |
695 | <action> | |
696 | <action_list> | |
697 | <action> | |
698 | <action_notify> | |
699 | <rate_policy> | |
700 | <rate_policy_every_n> | |
701 | <interval>1</interval> | |
702 | </rate_policy_every_n> | |
703 | </rate_policy> | |
704 | </action_notify> | |
705 | <error_query_results> | |
706 | <error_query_result> | |
707 | <name>total execution failures</name> | |
708 | <description>Aggregated count of errors encountered when executing the action</description> | |
709 | <error_query_result_counter> | |
710 | <value>0</value> | |
711 | </error_query_result_counter> | |
712 | </error_query_result> | |
713 | </error_query_results> | |
714 | </action> | |
715 | </action_list> | |
716 | </action> | |
717 | <error_query_results/> | |
718 | </trigger> | |
719 | <trigger> | |
720 | <name>J</name> | |
721 | <owner_uid>${uid}</owner_uid> | |
722 | <condition> | |
723 | <condition_event_rule_matches> | |
724 | <event_rule> | |
725 | <event_rule_user_tracepoint> | |
726 | <name_pattern>lemming</name_pattern> | |
727 | </event_rule_user_tracepoint> | |
728 | </event_rule> | |
729 | <capture_descriptors/> | |
730 | </condition_event_rule_matches> | |
731 | <error_query_results> | |
732 | <error_query_result> | |
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> | |
736 | <value>0</value> | |
737 | </error_query_result_counter> | |
738 | </error_query_result> | |
739 | </error_query_results> | |
740 | </condition> | |
741 | <action> | |
742 | <action_list> | |
743 | <action> | |
744 | <action_notify> | |
745 | <rate_policy> | |
746 | <rate_policy_every_n> | |
747 | <interval>1</interval> | |
748 | </rate_policy_every_n> | |
749 | </rate_policy> | |
750 | </action_notify> | |
751 | <error_query_results> | |
752 | <error_query_result> | |
753 | <name>total execution failures</name> | |
754 | <description>Aggregated count of errors encountered when executing the action</description> | |
755 | <error_query_result_counter> | |
756 | <value>0</value> | |
757 | </error_query_result_counter> | |
758 | </error_query_result> | |
759 | </error_query_results> | |
760 | </action> | |
761 | </action_list> | |
762 | </action> | |
763 | <error_query_results/> | |
764 | </trigger> | |
765 | </triggers> | |
766 | </output> | |
767 | </command> | |
768 | EOF | |
769 | ||
665db063 | 770 | list_triggers_matches_ok "event-rule-matches, tracepoint event rule" "${tmp_expected_stdout}" |
dceffc9e | 771 | list_triggers_matches_mi_ok "MI event-rule-matches, tracepoint event rule" "${tmp_expected_stdout_mi}" |
be7f9dfc FD |
772 | |
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" | |
949f049b | 782 | lttng_remove_trigger_ok "J" |
0de2479d SM |
783 | } |
784 | ||
8dbb86b8 | 785 | test_event_rule_matches_probe () |
0de2479d SM |
786 | { |
787 | local channel_enable_addr | |
788 | local channel_disable_addr | |
789 | ||
040a195f | 790 | diag "Listing event-rule-matches kernel probe" |
0de2479d | 791 | |
907f5c48 JG |
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 ' ') | |
0de2479d SM |
794 | |
795 | # We need to find a valid offset. | |
796 | base_symbol="" | |
797 | offset=0 | |
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 )) | |
801 | else | |
802 | base_symbol="lttng_channel_disable" | |
803 | offset=$(( 0x$channel_enable_addr - 0x$channel_disable_addr )) | |
804 | fi | |
805 | ||
806 | offset_hex="0x$(printf '%x' $offset)" | |
2c8657f6 | 807 | channel_enable_addr_decimal=$(printf '%u' 0x"${channel_enable_addr}") |
0de2479d | 808 | |
695f7044 JR |
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 | |
0de2479d SM |
812 | |
813 | cat > "${tmp_expected_stdout}" <<- EOF | |
1d4b59f2 | 814 | - name: T0 |
481c5310 | 815 | owner uid: ${uid} |
8c1d25ff | 816 | condition: event rule matches |
85522de5 | 817 | rule: my_channel_enable (type: kernel:kprobe, location: lttng_channel_enable) |
63dd3d7b | 818 | errors: none |
0de2479d SM |
819 | actions: |
820 | notify | |
709fb83f JG |
821 | errors: none |
822 | errors: none | |
1d4b59f2 | 823 | - name: T1 |
481c5310 | 824 | owner uid: ${uid} |
8c1d25ff | 825 | condition: event rule matches |
85522de5 | 826 | rule: my_channel_enable (type: kernel:kprobe, location: ${base_symbol}+${offset_hex}) |
63dd3d7b | 827 | errors: none |
0de2479d SM |
828 | actions: |
829 | notify | |
709fb83f JG |
830 | errors: none |
831 | errors: none | |
1d4b59f2 | 832 | - name: T2 |
481c5310 | 833 | owner uid: ${uid} |
8c1d25ff | 834 | condition: event rule matches |
85522de5 | 835 | rule: my_channel_enable (type: kernel:kprobe, location: 0x${channel_enable_addr}) |
63dd3d7b | 836 | errors: none |
0de2479d SM |
837 | actions: |
838 | notify | |
709fb83f JG |
839 | errors: none |
840 | errors: none | |
0de2479d SM |
841 | EOF |
842 | ||
dceffc9e JR |
843 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
844 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
846 | <name>list-trigger</name> |
847 | <output> | |
848 | <triggers> | |
849 | <trigger> | |
850 | <name>T0</name> | |
851 | <owner_uid>${uid}</owner_uid> | |
852 | <condition> | |
853 | <condition_event_rule_matches> | |
854 | <event_rule> | |
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> | |
860 | <offset>0</offset> | |
861 | </kernel_probe_location_symbol_offset> | |
862 | </kernel_probe_location> | |
863 | </event_rule_kernel_kprobe> | |
864 | </event_rule> | |
865 | <capture_descriptors/> | |
866 | </condition_event_rule_matches> | |
867 | <error_query_results> | |
868 | <error_query_result> | |
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> | |
872 | <value>0</value> | |
873 | </error_query_result_counter> | |
874 | </error_query_result> | |
875 | </error_query_results> | |
876 | </condition> | |
877 | <action> | |
878 | <action_list> | |
879 | <action> | |
880 | <action_notify> | |
881 | <rate_policy> | |
882 | <rate_policy_every_n> | |
883 | <interval>1</interval> | |
884 | </rate_policy_every_n> | |
885 | </rate_policy> | |
886 | </action_notify> | |
887 | <error_query_results> | |
888 | <error_query_result> | |
889 | <name>total execution failures</name> | |
890 | <description>Aggregated count of errors encountered when executing the action</description> | |
891 | <error_query_result_counter> | |
892 | <value>0</value> | |
893 | </error_query_result_counter> | |
894 | </error_query_result> | |
895 | </error_query_results> | |
896 | </action> | |
897 | </action_list> | |
898 | </action> | |
899 | <error_query_results/> | |
900 | </trigger> | |
901 | <trigger> | |
902 | <name>T1</name> | |
903 | <owner_uid>${uid}</owner_uid> | |
904 | <condition> | |
905 | <condition_event_rule_matches> | |
906 | <event_rule> | |
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> | |
916 | </event_rule> | |
917 | <capture_descriptors/> | |
918 | </condition_event_rule_matches> | |
919 | <error_query_results> | |
920 | <error_query_result> | |
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> | |
924 | <value>0</value> | |
925 | </error_query_result_counter> | |
926 | </error_query_result> | |
927 | </error_query_results> | |
928 | </condition> | |
929 | <action> | |
930 | <action_list> | |
931 | <action> | |
932 | <action_notify> | |
933 | <rate_policy> | |
934 | <rate_policy_every_n> | |
935 | <interval>1</interval> | |
936 | </rate_policy_every_n> | |
937 | </rate_policy> | |
938 | </action_notify> | |
939 | <error_query_results> | |
940 | <error_query_result> | |
941 | <name>total execution failures</name> | |
942 | <description>Aggregated count of errors encountered when executing the action</description> | |
943 | <error_query_result_counter> | |
944 | <value>0</value> | |
945 | </error_query_result_counter> | |
946 | </error_query_result> | |
947 | </error_query_results> | |
948 | </action> | |
949 | </action_list> | |
950 | </action> | |
951 | <error_query_results/> | |
952 | </trigger> | |
953 | <trigger> | |
954 | <name>T2</name> | |
955 | <owner_uid>${uid}</owner_uid> | |
956 | <condition> | |
957 | <condition_event_rule_matches> | |
958 | <event_rule> | |
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> | |
967 | </event_rule> | |
968 | <capture_descriptors/> | |
969 | </condition_event_rule_matches> | |
970 | <error_query_results> | |
971 | <error_query_result> | |
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> | |
975 | <value>0</value> | |
976 | </error_query_result_counter> | |
977 | </error_query_result> | |
978 | </error_query_results> | |
979 | </condition> | |
980 | <action> | |
981 | <action_list> | |
982 | <action> | |
983 | <action_notify> | |
984 | <rate_policy> | |
985 | <rate_policy_every_n> | |
986 | <interval>1</interval> | |
987 | </rate_policy_every_n> | |
988 | </rate_policy> | |
989 | </action_notify> | |
990 | <error_query_results> | |
991 | <error_query_result> | |
992 | <name>total execution failures</name> | |
993 | <description>Aggregated count of errors encountered when executing the action</description> | |
994 | <error_query_result_counter> | |
995 | <value>0</value> | |
996 | </error_query_result_counter> | |
997 | </error_query_result> | |
998 | </error_query_results> | |
999 | </action> | |
1000 | </action_list> | |
1001 | </action> | |
1002 | <error_query_results/> | |
1003 | </trigger> | |
1004 | </triggers> | |
1005 | </output> | |
1006 | </command> | |
1007 | EOF | |
1008 | ||
665db063 | 1009 | list_triggers_matches_ok "event-rule-matches, probe event rule" "${tmp_expected_stdout}" |
dceffc9e | 1010 | list_triggers_matches_mi_ok "MI event-rule-matches, probe event rule" "${tmp_expected_stdout_mi}" |
0de2479d | 1011 | |
be7f9dfc FD |
1012 | lttng_remove_trigger_ok "T0" |
1013 | lttng_remove_trigger_ok "T1" | |
1014 | lttng_remove_trigger_ok "T2" | |
0de2479d SM |
1015 | } |
1016 | ||
8dbb86b8 | 1017 | test_event_rule_matches_userspace_probe_elf () |
0de2479d | 1018 | { |
be7f9dfc FD |
1019 | local elf_function_name="test_function" |
1020 | ||
040a195f | 1021 | diag "Listing event-rule-matches userspace-probe elf" |
0de2479d | 1022 | |
695f7044 | 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 |
0de2479d SM |
1024 | |
1025 | cat > "${tmp_expected_stdout}" <<- EOF | |
1d4b59f2 | 1026 | - name: T0 |
481c5310 | 1027 | owner uid: ${uid} |
8c1d25ff | 1028 | condition: event rule matches |
46fd07ac | 1029 | rule: ma-probe-elf (type: kernel:uprobe, location type: ELF, location: ${uprobe_elf_binary}:${elf_function_name}) |
63dd3d7b | 1030 | errors: none |
0de2479d SM |
1031 | actions: |
1032 | notify | |
709fb83f JG |
1033 | errors: none |
1034 | errors: none | |
0de2479d SM |
1035 | EOF |
1036 | ||
dceffc9e JR |
1037 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
1038 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
1040 | <name>list-trigger</name> |
1041 | <output> | |
1042 | <triggers> | |
1043 | <trigger> | |
1044 | <name>T0</name> | |
1045 | <owner_uid>${uid}</owner_uid> | |
1046 | <condition> | |
1047 | <condition_event_rule_matches> | |
1048 | <event_rule> | |
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> | |
1062 | </event_rule> | |
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> | |
1070 | <value>0</value> | |
1071 | </error_query_result_counter> | |
1072 | </error_query_result> | |
1073 | </error_query_results> | |
1074 | </condition> | |
1075 | <action> | |
1076 | <action_list> | |
1077 | <action> | |
1078 | <action_notify> | |
1079 | <rate_policy> | |
1080 | <rate_policy_every_n> | |
1081 | <interval>1</interval> | |
1082 | </rate_policy_every_n> | |
1083 | </rate_policy> | |
1084 | </action_notify> | |
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> | |
1090 | <value>0</value> | |
1091 | </error_query_result_counter> | |
1092 | </error_query_result> | |
1093 | </error_query_results> | |
1094 | </action> | |
1095 | </action_list> | |
1096 | </action> | |
1097 | <error_query_results/> | |
1098 | </trigger> | |
1099 | </triggers> | |
1100 | </output> | |
1101 | </command> | |
1102 | EOF | |
1103 | ||
665db063 | 1104 | list_triggers_matches_ok "event-rule-matches, userspace-probe event rule" "${tmp_expected_stdout}" |
dceffc9e | 1105 | list_triggers_matches_mi_ok "MI event-rule-matches, userspace-probe event rule" "${tmp_expected_stdout_mi}" |
0de2479d | 1106 | |
be7f9dfc | 1107 | lttng_remove_trigger_ok "T0" |
0de2479d SM |
1108 | } |
1109 | ||
8dbb86b8 | 1110 | test_event_rule_matches_userspace_probe_sdt () |
8a917ae8 | 1111 | { |
8a917ae8 FD |
1112 | local sdt_provider_name="foobar" |
1113 | local sdt_probe_name="tp1" | |
1114 | ||
040a195f | 1115 | diag "Listing event-rule-matches userspace-probe sdt" |
8a917ae8 | 1116 | |
695f7044 | 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 |
8a917ae8 FD |
1118 | |
1119 | cat > "${tmp_expected_stdout}" <<- EOF | |
040a195f FD |
1120 | - name: T0 |
1121 | owner uid: 0 | |
8c1d25ff | 1122 | condition: event rule matches |
46fd07ac | 1123 | rule: ma-probe-sdt (type: kernel:uprobe, location type: SDT, location: ${uprobe_sdt_binary}:${sdt_provider_name}:${sdt_probe_name}) |
63dd3d7b | 1124 | errors: none |
8a917ae8 FD |
1125 | actions: |
1126 | notify | |
1127 | errors: none | |
1128 | errors: none | |
1129 | EOF | |
1130 | ||
dceffc9e JR |
1131 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
1132 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
1134 | <name>list-trigger</name> |
1135 | <output> | |
1136 | <triggers> | |
1137 | <trigger> | |
1138 | <name>T0</name> | |
1139 | <owner_uid>${uid}</owner_uid> | |
1140 | <condition> | |
1141 | <condition_event_rule_matches> | |
1142 | <event_rule> | |
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> | |
1156 | </event_rule> | |
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> | |
1164 | <value>0</value> | |
1165 | </error_query_result_counter> | |
1166 | </error_query_result> | |
1167 | </error_query_results> | |
1168 | </condition> | |
1169 | <action> | |
1170 | <action_list> | |
1171 | <action> | |
1172 | <action_notify> | |
1173 | <rate_policy> | |
1174 | <rate_policy_every_n> | |
1175 | <interval>1</interval> | |
1176 | </rate_policy_every_n> | |
1177 | </rate_policy> | |
1178 | </action_notify> | |
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> | |
1184 | <value>0</value> | |
1185 | </error_query_result_counter> | |
1186 | </error_query_result> | |
1187 | </error_query_results> | |
1188 | </action> | |
1189 | </action_list> | |
1190 | </action> | |
1191 | <error_query_results/> | |
1192 | </trigger> | |
1193 | </triggers> | |
1194 | </output> | |
1195 | </command> | |
1196 | EOF | |
1197 | ||
040a195f | 1198 | list_triggers_matches_ok "event-rule-matches, userspace-probe event rule SDT" "${tmp_expected_stdout}" |
dceffc9e | 1199 | list_triggers_matches_mi_ok "MI event-rule-matches, userspace-probe event rule SDT" "${tmp_expected_stdout_mi}" |
8a917ae8 FD |
1200 | |
1201 | lttng_remove_trigger_ok "T0" | |
1202 | } | |
1203 | ||
8dbb86b8 | 1204 | test_event_rule_matches_syscall () |
0de2479d | 1205 | { |
040a195f | 1206 | diag "Listing event-rule-matches syscall" |
0de2479d | 1207 | |
695f7044 JR |
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 | |
0de2479d SM |
1213 | |
1214 | cat > "${tmp_expected_stdout}" <<- EOF | |
1d4b59f2 | 1215 | - name: T0 |
481c5310 | 1216 | owner uid: ${uid} |
8c1d25ff | 1217 | condition: event rule matches |
4f7da553 | 1218 | rule: open (type: kernel:syscall:entry+exit) |
63dd3d7b | 1219 | errors: none |
0de2479d SM |
1220 | actions: |
1221 | notify | |
709fb83f JG |
1222 | errors: none |
1223 | errors: none | |
1d4b59f2 | 1224 | - name: T1 |
481c5310 | 1225 | owner uid: ${uid} |
8c1d25ff | 1226 | condition: event rule matches |
4f7da553 | 1227 | rule: open (type: kernel:syscall:entry) |
63dd3d7b | 1228 | errors: none |
57739a6b JR |
1229 | actions: |
1230 | notify | |
1231 | errors: none | |
1232 | errors: none | |
1233 | - name: T2 | |
1234 | owner uid: ${uid} | |
8c1d25ff | 1235 | condition: event rule matches |
4f7da553 | 1236 | rule: open (type: kernel:syscall:exit) |
63dd3d7b | 1237 | errors: none |
57739a6b JR |
1238 | actions: |
1239 | notify | |
1240 | errors: none | |
1241 | errors: none | |
1242 | - name: T3 | |
1243 | owner uid: ${uid} | |
8c1d25ff | 1244 | condition: event rule matches |
4f7da553 | 1245 | rule: open (type: kernel:syscall:entry+exit) |
63dd3d7b | 1246 | errors: none |
57739a6b JR |
1247 | actions: |
1248 | notify | |
1249 | errors: none | |
1250 | errors: none | |
1251 | - name: T4 | |
1252 | owner uid: ${uid} | |
8c1d25ff | 1253 | condition: event rule matches |
4f7da553 | 1254 | rule: ptrace (type: kernel:syscall:entry+exit, filter: a > 2) |
63dd3d7b | 1255 | errors: none |
0de2479d SM |
1256 | actions: |
1257 | notify | |
709fb83f JG |
1258 | errors: none |
1259 | errors: none | |
0de2479d SM |
1260 | EOF |
1261 | ||
dceffc9e JR |
1262 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
1263 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
1265 | <name>list-trigger</name> |
1266 | <output> | |
1267 | <triggers> | |
1268 | <trigger> | |
1269 | <name>T0</name> | |
1270 | <owner_uid>${uid}</owner_uid> | |
1271 | <condition> | |
1272 | <condition_event_rule_matches> | |
1273 | <event_rule> | |
1274 | <event_rule_kernel_syscall> | |
1275 | <emission_site>entry+exit</emission_site> | |
1276 | <name_pattern>open</name_pattern> | |
1277 | </event_rule_kernel_syscall> | |
1278 | </event_rule> | |
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> | |
1286 | <value>0</value> | |
1287 | </error_query_result_counter> | |
1288 | </error_query_result> | |
1289 | </error_query_results> | |
1290 | </condition> | |
1291 | <action> | |
1292 | <action_list> | |
1293 | <action> | |
1294 | <action_notify> | |
1295 | <rate_policy> | |
1296 | <rate_policy_every_n> | |
1297 | <interval>1</interval> | |
1298 | </rate_policy_every_n> | |
1299 | </rate_policy> | |
1300 | </action_notify> | |
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> | |
1306 | <value>0</value> | |
1307 | </error_query_result_counter> | |
1308 | </error_query_result> | |
1309 | </error_query_results> | |
1310 | </action> | |
1311 | </action_list> | |
1312 | </action> | |
1313 | <error_query_results/> | |
1314 | </trigger> | |
1315 | <trigger> | |
1316 | <name>T1</name> | |
1317 | <owner_uid>${uid}</owner_uid> | |
1318 | <condition> | |
1319 | <condition_event_rule_matches> | |
1320 | <event_rule> | |
1321 | <event_rule_kernel_syscall> | |
1322 | <emission_site>entry</emission_site> | |
1323 | <name_pattern>open</name_pattern> | |
1324 | </event_rule_kernel_syscall> | |
1325 | </event_rule> | |
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> | |
1333 | <value>0</value> | |
1334 | </error_query_result_counter> | |
1335 | </error_query_result> | |
1336 | </error_query_results> | |
1337 | </condition> | |
1338 | <action> | |
1339 | <action_list> | |
1340 | <action> | |
1341 | <action_notify> | |
1342 | <rate_policy> | |
1343 | <rate_policy_every_n> | |
1344 | <interval>1</interval> | |
1345 | </rate_policy_every_n> | |
1346 | </rate_policy> | |
1347 | </action_notify> | |
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> | |
1353 | <value>0</value> | |
1354 | </error_query_result_counter> | |
1355 | </error_query_result> | |
1356 | </error_query_results> | |
1357 | </action> | |
1358 | </action_list> | |
1359 | </action> | |
1360 | <error_query_results/> | |
1361 | </trigger> | |
1362 | <trigger> | |
1363 | <name>T2</name> | |
1364 | <owner_uid>${uid}</owner_uid> | |
1365 | <condition> | |
1366 | <condition_event_rule_matches> | |
1367 | <event_rule> | |
1368 | <event_rule_kernel_syscall> | |
1369 | <emission_site>exit</emission_site> | |
1370 | <name_pattern>open</name_pattern> | |
1371 | </event_rule_kernel_syscall> | |
1372 | </event_rule> | |
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> | |
1380 | <value>0</value> | |
1381 | </error_query_result_counter> | |
1382 | </error_query_result> | |
1383 | </error_query_results> | |
1384 | </condition> | |
1385 | <action> | |
1386 | <action_list> | |
1387 | <action> | |
1388 | <action_notify> | |
1389 | <rate_policy> | |
1390 | <rate_policy_every_n> | |
1391 | <interval>1</interval> | |
1392 | </rate_policy_every_n> | |
1393 | </rate_policy> | |
1394 | </action_notify> | |
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> | |
1400 | <value>0</value> | |
1401 | </error_query_result_counter> | |
1402 | </error_query_result> | |
1403 | </error_query_results> | |
1404 | </action> | |
1405 | </action_list> | |
1406 | </action> | |
1407 | <error_query_results/> | |
1408 | </trigger> | |
1409 | <trigger> | |
1410 | <name>T3</name> | |
1411 | <owner_uid>${uid}</owner_uid> | |
1412 | <condition> | |
1413 | <condition_event_rule_matches> | |
1414 | <event_rule> | |
1415 | <event_rule_kernel_syscall> | |
1416 | <emission_site>entry+exit</emission_site> | |
1417 | <name_pattern>open</name_pattern> | |
1418 | </event_rule_kernel_syscall> | |
1419 | </event_rule> | |
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> | |
1427 | <value>0</value> | |
1428 | </error_query_result_counter> | |
1429 | </error_query_result> | |
1430 | </error_query_results> | |
1431 | </condition> | |
1432 | <action> | |
1433 | <action_list> | |
1434 | <action> | |
1435 | <action_notify> | |
1436 | <rate_policy> | |
1437 | <rate_policy_every_n> | |
1438 | <interval>1</interval> | |
1439 | </rate_policy_every_n> | |
1440 | </rate_policy> | |
1441 | </action_notify> | |
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> | |
1447 | <value>0</value> | |
1448 | </error_query_result_counter> | |
1449 | </error_query_result> | |
1450 | </error_query_results> | |
1451 | </action> | |
1452 | </action_list> | |
1453 | </action> | |
1454 | <error_query_results/> | |
1455 | </trigger> | |
1456 | <trigger> | |
1457 | <name>T4</name> | |
1458 | <owner_uid>${uid}</owner_uid> | |
1459 | <condition> | |
1460 | <condition_event_rule_matches> | |
1461 | <event_rule> | |
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> | |
1467 | </event_rule> | |
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> | |
1475 | <value>0</value> | |
1476 | </error_query_result_counter> | |
1477 | </error_query_result> | |
1478 | </error_query_results> | |
1479 | </condition> | |
1480 | <action> | |
1481 | <action_list> | |
1482 | <action> | |
1483 | <action_notify> | |
1484 | <rate_policy> | |
1485 | <rate_policy_every_n> | |
1486 | <interval>1</interval> | |
1487 | </rate_policy_every_n> | |
1488 | </rate_policy> | |
1489 | </action_notify> | |
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> | |
1495 | <value>0</value> | |
1496 | </error_query_result_counter> | |
1497 | </error_query_result> | |
1498 | </error_query_results> | |
1499 | </action> | |
1500 | </action_list> | |
1501 | </action> | |
1502 | <error_query_results/> | |
1503 | </trigger> | |
1504 | </triggers> | |
1505 | </output> | |
1506 | </command> | |
1507 | EOF | |
1508 | ||
1509 | ||
665db063 | 1510 | list_triggers_matches_ok "event-rule-matches, syscall event rule" "${tmp_expected_stdout}" |
dceffc9e | 1511 | list_triggers_matches_mi_ok "MI event-rule-matches, syscall event rule" "${tmp_expected_stdout_mi}" |
0de2479d | 1512 | |
be7f9dfc FD |
1513 | lttng_remove_trigger_ok "T0" |
1514 | lttng_remove_trigger_ok "T1" | |
57739a6b JR |
1515 | lttng_remove_trigger_ok "T2" |
1516 | lttng_remove_trigger_ok "T3" | |
1517 | lttng_remove_trigger_ok "T4" | |
0de2479d SM |
1518 | } |
1519 | ||
19904669 SM |
1520 | test_session_consumed_size_condition () |
1521 | { | |
1522 | ${register_some_triggers_bin} test_session_consumed_size_condition | |
1523 | ||
1524 | cat > "${tmp_expected_stdout}" <<- EOF | |
1525 | - name: trigger-with-session-consumed-size-condition | |
1526 | owner uid: ${uid} | |
1527 | condition: session consumed size | |
1528 | session name: the-session-name | |
1529 | threshold: 1234 bytes | |
63dd3d7b | 1530 | errors: none |
19904669 SM |
1531 | actions: |
1532 | notify | |
1533 | errors: none | |
1534 | errors: none | |
1535 | EOF | |
1536 | ||
dceffc9e JR |
1537 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
1538 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
1540 | <name>list-trigger</name> |
1541 | <output> | |
1542 | <triggers> | |
1543 | <trigger> | |
1544 | <name>trigger-with-session-consumed-size-condition</name> | |
1545 | <owner_uid>${uid}</owner_uid> | |
1546 | <condition> | |
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/> | |
1552 | </condition> | |
1553 | <action> | |
1554 | <action_list> | |
1555 | <action> | |
1556 | <action_notify> | |
1557 | <rate_policy> | |
1558 | <rate_policy_every_n> | |
1559 | <interval>1</interval> | |
1560 | </rate_policy_every_n> | |
1561 | </rate_policy> | |
1562 | </action_notify> | |
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> | |
1568 | <value>0</value> | |
1569 | </error_query_result_counter> | |
1570 | </error_query_result> | |
1571 | </error_query_results> | |
1572 | </action> | |
1573 | </action_list> | |
1574 | </action> | |
1575 | <error_query_results/> | |
1576 | </trigger> | |
1577 | </triggers> | |
1578 | </output> | |
1579 | </command> | |
1580 | EOF | |
1581 | ||
1582 | ||
19904669 | 1583 | list_triggers_matches_ok "session consumed size condition" "${tmp_expected_stdout}" |
dceffc9e | 1584 | list_triggers_matches_mi_ok "MI session consumed size condition" "${tmp_expected_stdout_mi}" |
19904669 SM |
1585 | |
1586 | lttng_remove_trigger_ok "trigger-with-session-consumed-size-condition" | |
1587 | } | |
1588 | ||
1589 | test_buffer_usage_conditions () | |
1590 | { | |
1591 | ${register_some_triggers_bin} test_buffer_usage_conditions | |
1592 | ||
1593 | cat > "${tmp_expected_stdout}" <<- EOF | |
1594 | - name: trigger-with-buffer-usage-high-bytes-condition | |
1595 | owner uid: ${uid} | |
1596 | condition: buffer usage high | |
1597 | session name: the-session-name | |
1598 | channel name: the-channel-name | |
13c25a5c | 1599 | domain: user space |
19904669 | 1600 | threshold (bytes): 1234 |
63dd3d7b | 1601 | errors: none |
19904669 SM |
1602 | actions: |
1603 | notify | |
1604 | errors: none | |
1605 | errors: none | |
1606 | - name: trigger-with-buffer-usage-high-ratio-condition | |
1607 | owner uid: ${uid} | |
1608 | condition: buffer usage high | |
1609 | session name: the-session-name | |
1610 | channel name: the-channel-name | |
13c25a5c | 1611 | domain: user space |
19904669 | 1612 | threshold (ratio): 0.25 |
63dd3d7b | 1613 | errors: none |
19904669 SM |
1614 | actions: |
1615 | notify | |
1616 | errors: none | |
1617 | errors: none | |
1618 | - name: trigger-with-buffer-usage-low-bytes-condition | |
1619 | owner uid: ${uid} | |
1620 | condition: buffer usage low | |
1621 | session name: the-session-name | |
1622 | channel name: the-channel-name | |
13c25a5c | 1623 | domain: user space |
19904669 | 1624 | threshold (bytes): 2345 |
63dd3d7b | 1625 | errors: none |
19904669 SM |
1626 | actions: |
1627 | notify | |
1628 | errors: none | |
1629 | errors: none | |
1630 | - name: trigger-with-buffer-usage-low-ratio-condition | |
1631 | owner uid: ${uid} | |
1632 | condition: buffer usage low | |
1633 | session name: the-session-name | |
1634 | channel name: the-channel-name | |
13c25a5c | 1635 | domain: user space |
19904669 | 1636 | threshold (ratio): 0.40 |
63dd3d7b | 1637 | errors: none |
19904669 SM |
1638 | actions: |
1639 | notify | |
1640 | errors: none | |
1641 | errors: none | |
1642 | EOF | |
1643 | ||
dceffc9e JR |
1644 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
1645 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
1647 | <name>list-trigger</name> |
1648 | <output> | |
1649 | <triggers> | |
1650 | <trigger> | |
1651 | <name>trigger-with-buffer-usage-high-bytes-condition</name> | |
1652 | <owner_uid>${uid}</owner_uid> | |
1653 | <condition> | |
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/> | |
1661 | </condition> | |
1662 | <action> | |
1663 | <action_list> | |
1664 | <action> | |
1665 | <action_notify> | |
1666 | <rate_policy> | |
1667 | <rate_policy_every_n> | |
1668 | <interval>1</interval> | |
1669 | </rate_policy_every_n> | |
1670 | </rate_policy> | |
1671 | </action_notify> | |
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> | |
1677 | <value>0</value> | |
1678 | </error_query_result_counter> | |
1679 | </error_query_result> | |
1680 | </error_query_results> | |
1681 | </action> | |
1682 | </action_list> | |
1683 | </action> | |
1684 | <error_query_results/> | |
1685 | </trigger> | |
1686 | <trigger> | |
1687 | <name>trigger-with-buffer-usage-high-ratio-condition</name> | |
1688 | <owner_uid>${uid}</owner_uid> | |
1689 | <condition> | |
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/> | |
1697 | </condition> | |
1698 | <action> | |
1699 | <action_list> | |
1700 | <action> | |
1701 | <action_notify> | |
1702 | <rate_policy> | |
1703 | <rate_policy_every_n> | |
1704 | <interval>1</interval> | |
1705 | </rate_policy_every_n> | |
1706 | </rate_policy> | |
1707 | </action_notify> | |
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> | |
1713 | <value>0</value> | |
1714 | </error_query_result_counter> | |
1715 | </error_query_result> | |
1716 | </error_query_results> | |
1717 | </action> | |
1718 | </action_list> | |
1719 | </action> | |
1720 | <error_query_results/> | |
1721 | </trigger> | |
1722 | <trigger> | |
1723 | <name>trigger-with-buffer-usage-low-bytes-condition</name> | |
1724 | <owner_uid>${uid}</owner_uid> | |
1725 | <condition> | |
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/> | |
1733 | </condition> | |
1734 | <action> | |
1735 | <action_list> | |
1736 | <action> | |
1737 | <action_notify> | |
1738 | <rate_policy> | |
1739 | <rate_policy_every_n> | |
1740 | <interval>1</interval> | |
1741 | </rate_policy_every_n> | |
1742 | </rate_policy> | |
1743 | </action_notify> | |
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> | |
1749 | <value>0</value> | |
1750 | </error_query_result_counter> | |
1751 | </error_query_result> | |
1752 | </error_query_results> | |
1753 | </action> | |
1754 | </action_list> | |
1755 | </action> | |
1756 | <error_query_results/> | |
1757 | </trigger> | |
1758 | <trigger> | |
1759 | <name>trigger-with-buffer-usage-low-ratio-condition</name> | |
1760 | <owner_uid>${uid}</owner_uid> | |
1761 | <condition> | |
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/> | |
1769 | </condition> | |
1770 | <action> | |
1771 | <action_list> | |
1772 | <action> | |
1773 | <action_notify> | |
1774 | <rate_policy> | |
1775 | <rate_policy_every_n> | |
1776 | <interval>1</interval> | |
1777 | </rate_policy_every_n> | |
1778 | </rate_policy> | |
1779 | </action_notify> | |
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> | |
1785 | <value>0</value> | |
1786 | </error_query_result_counter> | |
1787 | </error_query_result> | |
1788 | </error_query_results> | |
1789 | </action> | |
1790 | </action_list> | |
1791 | </action> | |
1792 | <error_query_results/> | |
1793 | </trigger> | |
1794 | </triggers> | |
1795 | </output> | |
1796 | </command> | |
1797 | EOF | |
1798 | ||
19904669 | 1799 | list_triggers_matches_ok "buffer usage condition" "${tmp_expected_stdout}" |
dceffc9e | 1800 | list_triggers_matches_mi_ok "MI buffer usage condition" "${tmp_expected_stdout_mi}" |
19904669 SM |
1801 | |
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" | |
1806 | } | |
1807 | ||
1808 | test_session_rotation_conditions () | |
1809 | { | |
1810 | ${register_some_triggers_bin} test_session_rotation_conditions | |
1811 | ||
1812 | cat > "${tmp_expected_stdout}" <<- EOF | |
1813 | - name: trigger-with-session-rotation-completed-condition | |
1814 | owner uid: ${uid} | |
1815 | condition: session rotation completed | |
1816 | session name: the-session-name | |
63dd3d7b | 1817 | errors: none |
19904669 SM |
1818 | actions: |
1819 | notify | |
1820 | errors: none | |
1821 | errors: none | |
1822 | - name: trigger-with-session-rotation-ongoing-condition | |
1823 | owner uid: ${uid} | |
1824 | condition: session rotation ongoing | |
1825 | session name: the-session-name | |
63dd3d7b | 1826 | errors: none |
19904669 SM |
1827 | actions: |
1828 | notify | |
1829 | errors: none | |
1830 | errors: none | |
1831 | EOF | |
1832 | ||
dceffc9e JR |
1833 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
1834 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
1836 | <name>list-trigger</name> |
1837 | <output> | |
1838 | <triggers> | |
1839 | <trigger> | |
1840 | <name>trigger-with-session-rotation-completed-condition</name> | |
1841 | <owner_uid>${uid}</owner_uid> | |
1842 | <condition> | |
1843 | <condition_session_rotation_completed> | |
1844 | <session_name>the-session-name</session_name> | |
1845 | </condition_session_rotation_completed> | |
1846 | <error_query_results/> | |
1847 | </condition> | |
1848 | <action> | |
1849 | <action_list> | |
1850 | <action> | |
1851 | <action_notify> | |
1852 | <rate_policy> | |
1853 | <rate_policy_every_n> | |
1854 | <interval>1</interval> | |
1855 | </rate_policy_every_n> | |
1856 | </rate_policy> | |
1857 | </action_notify> | |
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> | |
1863 | <value>0</value> | |
1864 | </error_query_result_counter> | |
1865 | </error_query_result> | |
1866 | </error_query_results> | |
1867 | </action> | |
1868 | </action_list> | |
1869 | </action> | |
1870 | <error_query_results/> | |
1871 | </trigger> | |
1872 | <trigger> | |
1873 | <name>trigger-with-session-rotation-ongoing-condition</name> | |
1874 | <owner_uid>${uid}</owner_uid> | |
1875 | <condition> | |
1876 | <condition_session_rotation_ongoing> | |
1877 | <session_name>the-session-name</session_name> | |
1878 | </condition_session_rotation_ongoing> | |
1879 | <error_query_results/> | |
1880 | </condition> | |
1881 | <action> | |
1882 | <action_list> | |
1883 | <action> | |
1884 | <action_notify> | |
1885 | <rate_policy> | |
1886 | <rate_policy_every_n> | |
1887 | <interval>1</interval> | |
1888 | </rate_policy_every_n> | |
1889 | </rate_policy> | |
1890 | </action_notify> | |
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> | |
1896 | <value>0</value> | |
1897 | </error_query_result_counter> | |
1898 | </error_query_result> | |
1899 | </error_query_results> | |
1900 | </action> | |
1901 | </action_list> | |
1902 | </action> | |
1903 | <error_query_results/> | |
1904 | </trigger> | |
1905 | </triggers> | |
1906 | </output> | |
1907 | </command> | |
1908 | EOF | |
1909 | ||
19904669 | 1910 | list_triggers_matches_ok "session rotation conditions" "${tmp_expected_stdout}" |
dceffc9e | 1911 | list_triggers_matches_mi_ok "MI session rotation conditions" "${tmp_expected_stdout_mi}" |
19904669 SM |
1912 | |
1913 | lttng_remove_trigger_ok "trigger-with-session-rotation-completed-condition" | |
1914 | lttng_remove_trigger_ok "trigger-with-session-rotation-ongoing-condition" | |
1915 | } | |
1916 | ||
0de2479d SM |
1917 | test_snapshot_action () |
1918 | { | |
be7f9dfc | 1919 | diag "Listing snapshot actions" |
0de2479d | 1920 | |
695f7044 JR |
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 | |
0de2479d SM |
1931 | |
1932 | cat > "${tmp_expected_stdout}" <<- EOF | |
1d4b59f2 | 1933 | - name: T0 |
481c5310 | 1934 | owner uid: ${uid} |
8c1d25ff | 1935 | condition: event rule matches |
695f7044 | 1936 | rule: some-event (type: user tracepoint) |
63dd3d7b | 1937 | errors: none |
0de2479d SM |
1938 | actions: |
1939 | snapshot session \`ze-session\` | |
709fb83f JG |
1940 | errors: none |
1941 | errors: none | |
1d4b59f2 | 1942 | - name: T1 |
481c5310 | 1943 | owner uid: ${uid} |
8c1d25ff | 1944 | condition: event rule matches |
695f7044 | 1945 | rule: some-event (type: user tracepoint) |
63dd3d7b | 1946 | errors: none |
0de2479d SM |
1947 | actions: |
1948 | snapshot session \`ze-session\`, path: /some/path | |
709fb83f JG |
1949 | errors: none |
1950 | errors: none | |
1d4b59f2 | 1951 | - name: T2 |
481c5310 | 1952 | owner uid: ${uid} |
8c1d25ff | 1953 | condition: event rule matches |
695f7044 | 1954 | rule: some-event (type: user tracepoint) |
63dd3d7b | 1955 | errors: none |
0de2479d SM |
1956 | actions: |
1957 | snapshot session \`ze-session\`, path: /some/other/path | |
709fb83f JG |
1958 | errors: none |
1959 | errors: none | |
1d4b59f2 | 1960 | - name: T3 |
481c5310 | 1961 | owner uid: ${uid} |
8c1d25ff | 1962 | condition: event rule matches |
695f7044 | 1963 | rule: some-event (type: user tracepoint) |
63dd3d7b | 1964 | errors: none |
0de2479d SM |
1965 | actions: |
1966 | snapshot session \`ze-session\`, url: net://1.2.3.4 | |
709fb83f JG |
1967 | errors: none |
1968 | errors: none | |
1d4b59f2 | 1969 | - name: T4 |
481c5310 | 1970 | owner uid: ${uid} |
8c1d25ff | 1971 | condition: event rule matches |
695f7044 | 1972 | rule: some-event (type: user tracepoint) |
63dd3d7b | 1973 | errors: none |
0de2479d SM |
1974 | actions: |
1975 | snapshot session \`ze-session\`, url: net://1.2.3.4:1234:1235 | |
709fb83f JG |
1976 | errors: none |
1977 | errors: none | |
1d4b59f2 | 1978 | - name: T5 |
481c5310 | 1979 | owner uid: ${uid} |
8c1d25ff | 1980 | condition: event rule matches |
695f7044 | 1981 | rule: some-event (type: user tracepoint) |
63dd3d7b | 1982 | errors: none |
0de2479d SM |
1983 | actions: |
1984 | snapshot session \`ze-session\`, control url: tcp://1.2.3.4:1111, data url: tcp://1.2.3.4:1112 | |
709fb83f JG |
1985 | errors: none |
1986 | errors: none | |
1d4b59f2 | 1987 | - name: T6 |
481c5310 | 1988 | owner uid: ${uid} |
8c1d25ff | 1989 | condition: event rule matches |
695f7044 | 1990 | rule: some-event (type: user tracepoint) |
63dd3d7b | 1991 | errors: none |
0de2479d SM |
1992 | actions: |
1993 | snapshot session \`ze-session\`, path: /some/path, max size: 1234 | |
709fb83f JG |
1994 | errors: none |
1995 | errors: none | |
1d4b59f2 | 1996 | - name: T7 |
481c5310 | 1997 | owner uid: ${uid} |
8c1d25ff | 1998 | condition: event rule matches |
695f7044 | 1999 | rule: some-event (type: user tracepoint) |
63dd3d7b | 2000 | errors: none |
0de2479d SM |
2001 | actions: |
2002 | snapshot session \`ze-session\`, path: /some/path, name: meh | |
709fb83f JG |
2003 | errors: none |
2004 | errors: none | |
1d4b59f2 | 2005 | - name: T8 |
481c5310 | 2006 | owner uid: ${uid} |
8c1d25ff | 2007 | condition: event rule matches |
695f7044 | 2008 | rule: some-event (type: user tracepoint) |
63dd3d7b | 2009 | errors: none |
e45dd625 | 2010 | actions: |
2f280aa0 | 2011 | snapshot session \`ze-session\`, rate policy: every 10 occurrences |
709fb83f JG |
2012 | errors: none |
2013 | errors: none | |
1d4b59f2 | 2014 | - name: T9 |
481c5310 | 2015 | owner uid: ${uid} |
8c1d25ff | 2016 | condition: event rule matches |
695f7044 | 2017 | rule: some-event (type: user tracepoint) |
63dd3d7b | 2018 | errors: none |
e45dd625 | 2019 | actions: |
7f4d5b07 | 2020 | snapshot session \`ze-session\`, rate policy: once after 10 occurrences |
709fb83f JG |
2021 | errors: none |
2022 | errors: none | |
e45dd625 JR |
2023 | EOF |
2024 | ||
dceffc9e JR |
2025 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
2026 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
2028 | <name>list-trigger</name> |
2029 | <output> | |
2030 | <triggers> | |
2031 | <trigger> | |
2032 | <name>T0</name> | |
2033 | <owner_uid>${uid}</owner_uid> | |
2034 | <condition> | |
2035 | <condition_event_rule_matches> | |
2036 | <event_rule> | |
2037 | <event_rule_user_tracepoint> | |
2038 | <name_pattern>some-event</name_pattern> | |
2039 | </event_rule_user_tracepoint> | |
2040 | </event_rule> | |
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> | |
2048 | <value>0</value> | |
2049 | </error_query_result_counter> | |
2050 | </error_query_result> | |
2051 | </error_query_results> | |
2052 | </condition> | |
2053 | <action> | |
2054 | <action_list> | |
2055 | <action> | |
2056 | <action_snapshot_session> | |
2057 | <session_name>ze-session</session_name> | |
2058 | <rate_policy> | |
2059 | <rate_policy_every_n> | |
2060 | <interval>1</interval> | |
2061 | </rate_policy_every_n> | |
2062 | </rate_policy> | |
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> | |
2069 | <value>0</value> | |
2070 | </error_query_result_counter> | |
2071 | </error_query_result> | |
2072 | </error_query_results> | |
2073 | </action> | |
2074 | </action_list> | |
2075 | </action> | |
2076 | <error_query_results/> | |
2077 | </trigger> | |
2078 | <trigger> | |
2079 | <name>T1</name> | |
2080 | <owner_uid>${uid}</owner_uid> | |
2081 | <condition> | |
2082 | <condition_event_rule_matches> | |
2083 | <event_rule> | |
2084 | <event_rule_user_tracepoint> | |
2085 | <name_pattern>some-event</name_pattern> | |
2086 | </event_rule_user_tracepoint> | |
2087 | </event_rule> | |
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> | |
2095 | <value>0</value> | |
2096 | </error_query_result_counter> | |
2097 | </error_query_result> | |
2098 | </error_query_results> | |
2099 | </condition> | |
2100 | <action> | |
2101 | <action_list> | |
2102 | <action> | |
2103 | <action_snapshot_session> | |
2104 | <session_name>ze-session</session_name> | |
2105 | <output> | |
2106 | <ctrl_url>/some/path</ctrl_url> | |
2107 | </output> | |
2108 | <rate_policy> | |
2109 | <rate_policy_every_n> | |
2110 | <interval>1</interval> | |
2111 | </rate_policy_every_n> | |
2112 | </rate_policy> | |
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> | |
2119 | <value>0</value> | |
2120 | </error_query_result_counter> | |
2121 | </error_query_result> | |
2122 | </error_query_results> | |
2123 | </action> | |
2124 | </action_list> | |
2125 | </action> | |
2126 | <error_query_results/> | |
2127 | </trigger> | |
2128 | <trigger> | |
2129 | <name>T2</name> | |
2130 | <owner_uid>${uid}</owner_uid> | |
2131 | <condition> | |
2132 | <condition_event_rule_matches> | |
2133 | <event_rule> | |
2134 | <event_rule_user_tracepoint> | |
2135 | <name_pattern>some-event</name_pattern> | |
2136 | </event_rule_user_tracepoint> | |
2137 | </event_rule> | |
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> | |
2145 | <value>0</value> | |
2146 | </error_query_result_counter> | |
2147 | </error_query_result> | |
2148 | </error_query_results> | |
2149 | </condition> | |
2150 | <action> | |
2151 | <action_list> | |
2152 | <action> | |
2153 | <action_snapshot_session> | |
2154 | <session_name>ze-session</session_name> | |
2155 | <output> | |
2156 | <ctrl_url>/some/other/path</ctrl_url> | |
2157 | </output> | |
2158 | <rate_policy> | |
2159 | <rate_policy_every_n> | |
2160 | <interval>1</interval> | |
2161 | </rate_policy_every_n> | |
2162 | </rate_policy> | |
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> | |
2169 | <value>0</value> | |
2170 | </error_query_result_counter> | |
2171 | </error_query_result> | |
2172 | </error_query_results> | |
2173 | </action> | |
2174 | </action_list> | |
2175 | </action> | |
2176 | <error_query_results/> | |
2177 | </trigger> | |
2178 | <trigger> | |
2179 | <name>T3</name> | |
2180 | <owner_uid>${uid}</owner_uid> | |
2181 | <condition> | |
2182 | <condition_event_rule_matches> | |
2183 | <event_rule> | |
2184 | <event_rule_user_tracepoint> | |
2185 | <name_pattern>some-event</name_pattern> | |
2186 | </event_rule_user_tracepoint> | |
2187 | </event_rule> | |
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> | |
2195 | <value>0</value> | |
2196 | </error_query_result_counter> | |
2197 | </error_query_result> | |
2198 | </error_query_results> | |
2199 | </condition> | |
2200 | <action> | |
2201 | <action_list> | |
2202 | <action> | |
2203 | <action_snapshot_session> | |
2204 | <session_name>ze-session</session_name> | |
2205 | <output> | |
2206 | <ctrl_url>net://1.2.3.4</ctrl_url> | |
2207 | </output> | |
2208 | <rate_policy> | |
2209 | <rate_policy_every_n> | |
2210 | <interval>1</interval> | |
2211 | </rate_policy_every_n> | |
2212 | </rate_policy> | |
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> | |
2219 | <value>0</value> | |
2220 | </error_query_result_counter> | |
2221 | </error_query_result> | |
2222 | </error_query_results> | |
2223 | </action> | |
2224 | </action_list> | |
2225 | </action> | |
2226 | <error_query_results/> | |
2227 | </trigger> | |
2228 | <trigger> | |
2229 | <name>T4</name> | |
2230 | <owner_uid>${uid}</owner_uid> | |
2231 | <condition> | |
2232 | <condition_event_rule_matches> | |
2233 | <event_rule> | |
2234 | <event_rule_user_tracepoint> | |
2235 | <name_pattern>some-event</name_pattern> | |
2236 | </event_rule_user_tracepoint> | |
2237 | </event_rule> | |
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> | |
2245 | <value>0</value> | |
2246 | </error_query_result_counter> | |
2247 | </error_query_result> | |
2248 | </error_query_results> | |
2249 | </condition> | |
2250 | <action> | |
2251 | <action_list> | |
2252 | <action> | |
2253 | <action_snapshot_session> | |
2254 | <session_name>ze-session</session_name> | |
2255 | <output> | |
2256 | <ctrl_url>net://1.2.3.4:1234:1235</ctrl_url> | |
2257 | </output> | |
2258 | <rate_policy> | |
2259 | <rate_policy_every_n> | |
2260 | <interval>1</interval> | |
2261 | </rate_policy_every_n> | |
2262 | </rate_policy> | |
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> | |
2269 | <value>0</value> | |
2270 | </error_query_result_counter> | |
2271 | </error_query_result> | |
2272 | </error_query_results> | |
2273 | </action> | |
2274 | </action_list> | |
2275 | </action> | |
2276 | <error_query_results/> | |
2277 | </trigger> | |
2278 | <trigger> | |
2279 | <name>T5</name> | |
2280 | <owner_uid>${uid}</owner_uid> | |
2281 | <condition> | |
2282 | <condition_event_rule_matches> | |
2283 | <event_rule> | |
2284 | <event_rule_user_tracepoint> | |
2285 | <name_pattern>some-event</name_pattern> | |
2286 | </event_rule_user_tracepoint> | |
2287 | </event_rule> | |
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> | |
2295 | <value>0</value> | |
2296 | </error_query_result_counter> | |
2297 | </error_query_result> | |
2298 | </error_query_results> | |
2299 | </condition> | |
2300 | <action> | |
2301 | <action_list> | |
2302 | <action> | |
2303 | <action_snapshot_session> | |
2304 | <session_name>ze-session</session_name> | |
2305 | <output> | |
2306 | <ctrl_url>tcp://1.2.3.4:1111</ctrl_url> | |
2307 | <data_url>tcp://1.2.3.4:1112</data_url> | |
2308 | </output> | |
2309 | <rate_policy> | |
2310 | <rate_policy_every_n> | |
2311 | <interval>1</interval> | |
2312 | </rate_policy_every_n> | |
2313 | </rate_policy> | |
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> | |
2320 | <value>0</value> | |
2321 | </error_query_result_counter> | |
2322 | </error_query_result> | |
2323 | </error_query_results> | |
2324 | </action> | |
2325 | </action_list> | |
2326 | </action> | |
2327 | <error_query_results/> | |
2328 | </trigger> | |
2329 | <trigger> | |
2330 | <name>T6</name> | |
2331 | <owner_uid>${uid}</owner_uid> | |
2332 | <condition> | |
2333 | <condition_event_rule_matches> | |
2334 | <event_rule> | |
2335 | <event_rule_user_tracepoint> | |
2336 | <name_pattern>some-event</name_pattern> | |
2337 | </event_rule_user_tracepoint> | |
2338 | </event_rule> | |
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> | |
2346 | <value>0</value> | |
2347 | </error_query_result_counter> | |
2348 | </error_query_result> | |
2349 | </error_query_results> | |
2350 | </condition> | |
2351 | <action> | |
2352 | <action_list> | |
2353 | <action> | |
2354 | <action_snapshot_session> | |
2355 | <session_name>ze-session</session_name> | |
2356 | <output> | |
2357 | <ctrl_url>/some/path</ctrl_url> | |
2358 | <max_size>1234</max_size> | |
2359 | </output> | |
2360 | <rate_policy> | |
2361 | <rate_policy_every_n> | |
2362 | <interval>1</interval> | |
2363 | </rate_policy_every_n> | |
2364 | </rate_policy> | |
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> | |
2371 | <value>0</value> | |
2372 | </error_query_result_counter> | |
2373 | </error_query_result> | |
2374 | </error_query_results> | |
2375 | </action> | |
2376 | </action_list> | |
2377 | </action> | |
2378 | <error_query_results/> | |
2379 | </trigger> | |
2380 | <trigger> | |
2381 | <name>T7</name> | |
2382 | <owner_uid>${uid}</owner_uid> | |
2383 | <condition> | |
2384 | <condition_event_rule_matches> | |
2385 | <event_rule> | |
2386 | <event_rule_user_tracepoint> | |
2387 | <name_pattern>some-event</name_pattern> | |
2388 | </event_rule_user_tracepoint> | |
2389 | </event_rule> | |
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> | |
2397 | <value>0</value> | |
2398 | </error_query_result_counter> | |
2399 | </error_query_result> | |
2400 | </error_query_results> | |
2401 | </condition> | |
2402 | <action> | |
2403 | <action_list> | |
2404 | <action> | |
2405 | <action_snapshot_session> | |
2406 | <session_name>ze-session</session_name> | |
2407 | <output> | |
2408 | <name>meh</name> | |
2409 | <ctrl_url>/some/path</ctrl_url> | |
2410 | </output> | |
2411 | <rate_policy> | |
2412 | <rate_policy_every_n> | |
2413 | <interval>1</interval> | |
2414 | </rate_policy_every_n> | |
2415 | </rate_policy> | |
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> | |
2422 | <value>0</value> | |
2423 | </error_query_result_counter> | |
2424 | </error_query_result> | |
2425 | </error_query_results> | |
2426 | </action> | |
2427 | </action_list> | |
2428 | </action> | |
2429 | <error_query_results/> | |
2430 | </trigger> | |
2431 | <trigger> | |
2432 | <name>T8</name> | |
2433 | <owner_uid>${uid}</owner_uid> | |
2434 | <condition> | |
2435 | <condition_event_rule_matches> | |
2436 | <event_rule> | |
2437 | <event_rule_user_tracepoint> | |
2438 | <name_pattern>some-event</name_pattern> | |
2439 | </event_rule_user_tracepoint> | |
2440 | </event_rule> | |
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> | |
2448 | <value>0</value> | |
2449 | </error_query_result_counter> | |
2450 | </error_query_result> | |
2451 | </error_query_results> | |
2452 | </condition> | |
2453 | <action> | |
2454 | <action_list> | |
2455 | <action> | |
2456 | <action_snapshot_session> | |
2457 | <session_name>ze-session</session_name> | |
2458 | <rate_policy> | |
2459 | <rate_policy_every_n> | |
2460 | <interval>10</interval> | |
2461 | </rate_policy_every_n> | |
2462 | </rate_policy> | |
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> | |
2469 | <value>0</value> | |
2470 | </error_query_result_counter> | |
2471 | </error_query_result> | |
2472 | </error_query_results> | |
2473 | </action> | |
2474 | </action_list> | |
2475 | </action> | |
2476 | <error_query_results/> | |
2477 | </trigger> | |
2478 | <trigger> | |
2479 | <name>T9</name> | |
2480 | <owner_uid>${uid}</owner_uid> | |
2481 | <condition> | |
2482 | <condition_event_rule_matches> | |
2483 | <event_rule> | |
2484 | <event_rule_user_tracepoint> | |
2485 | <name_pattern>some-event</name_pattern> | |
2486 | </event_rule_user_tracepoint> | |
2487 | </event_rule> | |
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> | |
2495 | <value>0</value> | |
2496 | </error_query_result_counter> | |
2497 | </error_query_result> | |
2498 | </error_query_results> | |
2499 | </condition> | |
2500 | <action> | |
2501 | <action_list> | |
2502 | <action> | |
2503 | <action_snapshot_session> | |
2504 | <session_name>ze-session</session_name> | |
2505 | <rate_policy> | |
2506 | <rate_policy_once_after_n> | |
2507 | <threshold>10</threshold> | |
2508 | </rate_policy_once_after_n> | |
2509 | </rate_policy> | |
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> | |
2516 | <value>0</value> | |
2517 | </error_query_result_counter> | |
2518 | </error_query_result> | |
2519 | </error_query_results> | |
2520 | </action> | |
2521 | </action_list> | |
2522 | </action> | |
2523 | <error_query_results/> | |
2524 | </trigger> | |
2525 | </triggers> | |
2526 | </output> | |
2527 | </command> | |
2528 | EOF | |
2529 | ||
be7f9dfc | 2530 | list_triggers_matches_ok "snapshot action" "${tmp_expected_stdout}" |
dceffc9e | 2531 | list_triggers_matches_mi_ok "MI snapshot action" "${tmp_expected_stdout_mi}" |
e45dd625 | 2532 | |
665db063 SM |
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" | |
e45dd625 JR |
2543 | } |
2544 | ||
2545 | test_notify_action () | |
2546 | { | |
695f7044 JR |
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 | |
e45dd625 JR |
2549 | |
2550 | cat > "${tmp_expected_stdout}" <<- EOF | |
1d4b59f2 | 2551 | - name: T0 |
481c5310 | 2552 | owner uid: ${uid} |
8c1d25ff | 2553 | condition: event rule matches |
695f7044 | 2554 | rule: some-event (type: user tracepoint) |
63dd3d7b | 2555 | errors: none |
e45dd625 | 2556 | actions: |
7f4d5b07 | 2557 | notify, rate policy: once after 5 occurrences |
709fb83f JG |
2558 | errors: none |
2559 | errors: none | |
1d4b59f2 | 2560 | - name: T1 |
481c5310 | 2561 | owner uid: ${uid} |
8c1d25ff | 2562 | condition: event rule matches |
695f7044 | 2563 | rule: some-event (type: user tracepoint) |
63dd3d7b | 2564 | errors: none |
e45dd625 | 2565 | actions: |
2f280aa0 | 2566 | notify, rate policy: every 10 occurrences |
709fb83f JG |
2567 | errors: none |
2568 | errors: none | |
0de2479d SM |
2569 | EOF |
2570 | ||
dceffc9e JR |
2571 | cat > "${tmp_expected_stdout_mi}" <<- EOF |
2572 | <?xml version="1.0" encoding="UTF-8"?> | |
dcd975d1 | 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}"> |
dceffc9e JR |
2574 | <name>list-trigger</name> |
2575 | <output> | |
2576 | <triggers> | |
2577 | <trigger> | |
2578 | <name>T0</name> | |
2579 | <owner_uid>${uid}</owner_uid> | |
2580 | <condition> | |
2581 | <condition_event_rule_matches> | |
2582 | <event_rule> | |
2583 | <event_rule_user_tracepoint> | |
2584 | <name_pattern>some-event</name_pattern> | |
2585 | </event_rule_user_tracepoint> | |
2586 | </event_rule> | |
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> | |
2594 | <value>0</value> | |
2595 | </error_query_result_counter> | |
2596 | </error_query_result> | |
2597 | </error_query_results> | |
2598 | </condition> | |
2599 | <action> | |
2600 | <action_list> | |
2601 | <action> | |
2602 | <action_notify> | |
2603 | <rate_policy> | |
2604 | <rate_policy_once_after_n> | |
2605 | <threshold>5</threshold> | |
2606 | </rate_policy_once_after_n> | |
2607 | </rate_policy> | |
2608 | </action_notify> | |
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> | |
2614 | <value>0</value> | |
2615 | </error_query_result_counter> | |
2616 | </error_query_result> | |
2617 | </error_query_results> | |
2618 | </action> | |
2619 | </action_list> | |
2620 | </action> | |
2621 | <error_query_results/> | |
2622 | </trigger> | |
2623 | <trigger> | |
2624 | <name>T1</name> | |
2625 | <owner_uid>${uid}</owner_uid> | |
2626 | <condition> | |
2627 | <condition_event_rule_matches> | |
2628 | <event_rule> | |
2629 | <event_rule_user_tracepoint> | |
2630 | <name_pattern>some-event</name_pattern> | |
2631 | </event_rule_user_tracepoint> | |
2632 | </event_rule> | |
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> | |
2640 | <value>0</value> | |
2641 | </error_query_result_counter> | |
2642 | </error_query_result> | |
2643 | </error_query_results> | |
2644 | </condition> | |
2645 | <action> | |
2646 | <action_list> | |
2647 | <action> | |
2648 | <action_notify> | |
2649 | <rate_policy> | |
2650 | <rate_policy_every_n> | |
2651 | <interval>10</interval> | |
2652 | </rate_policy_every_n> | |
2653 | </rate_policy> | |
2654 | </action_notify> | |
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> | |
2660 | <value>0</value> | |
2661 | </error_query_result_counter> | |
2662 | </error_query_result> | |
2663 | </error_query_results> | |
2664 | </action> | |
2665 | </action_list> | |
2666 | </action> | |
2667 | <error_query_results/> | |
2668 | </trigger> | |
2669 | </triggers> | |
2670 | </output> | |
2671 | </command> | |
2672 | EOF | |
2673 | ||
19904669 | 2674 | list_triggers_matches_ok "notify action" "${tmp_expected_stdout}" |
dceffc9e | 2675 | list_triggers_matches_mi_ok "MI notify action" "${tmp_expected_stdout_mi}" |
0de2479d | 2676 | |
be7f9dfc FD |
2677 | lttng_remove_trigger_ok "T0" |
2678 | lttng_remove_trigger_ok "T1" | |
0de2479d SM |
2679 | } |
2680 | ||
be7f9dfc FD |
2681 | plan_tests $NUM_TESTS |
2682 | ||
2683 | # shellcheck disable=SC2119 | |
2684 | start_lttng_sessiond_notap | |
2685 | ||
0de2479d | 2686 | test_top_level_options |
8dbb86b8 | 2687 | test_event_rule_matches_tracepoint |
3a174400 XC |
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 | |
2693 | } | |
19904669 SM |
2694 | test_session_consumed_size_condition |
2695 | test_buffer_usage_conditions | |
2696 | test_session_rotation_conditions | |
0de2479d | 2697 | test_snapshot_action |
e45dd625 | 2698 | test_notify_action |
0de2479d | 2699 | |
be7f9dfc FD |
2700 | stop_lttng_sessiond_notap |
2701 | ||
0de2479d SM |
2702 | # Cleanup |
2703 | rm -f "${tmp_stdout}" | |
2704 | rm -f "${tmp_stderr}" | |
2705 | rm -f "${tmp_expected_stdout}" |