6c7eb98e59ebd8149ed3d2703cbc9fc19620585e
[lttng-tools.git] / tests / regression / tools / relayd-grouping / test_ust
1 #!/bin/bash
2 #
3 # Copyright (C) - 2018 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
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_DESC="LTTng relayd filesystem grouping - Userspace tracing"
19
20 CURDIR=$(dirname "$0")/
21 TESTDIR=$CURDIR/../../..
22 NR_ITER=10
23 NR_USEC_WAIT=100
24 TESTAPP_PATH="$TESTDIR/utils/testapp"
25 TESTAPP_NAME="gen-ust-events"
26 TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
27 EVENT_NAME="tp:tptest"
28 CHANNEL_NAME="my_channel"
29
30 XSD_PATH=$TESTDIR/../src/common/mi-lttng-3.0.xsd
31
32 XML_VALIDATE="$TESTDIR/regression/tools/mi/validate_xml $XSD_PATH"
33 XML_EXTRACT="$TESTDIR/regression/tools/mi/extract_xml"
34
35 XPATH_CMD_OUTPUT="//lttng:command/lttng:output"
36 XPATH_SESSION="$XPATH_CMD_OUTPUT/lttng:sessions/lttng:session"
37
38
39 NUM_TESTS=688
40
41 source "$TESTDIR/utils/utils.sh"
42
43 if [ ! -x "$TESTAPP_BIN" ]; then
44 BAIL_OUT "No UST events binary detected."
45 fi
46
47 function get_auto_session_name ()
48 {
49 local __result=$1
50
51 local lttng_bin=$LTTNG_BIN
52
53 LTTNG_BIN="${lttng_bin} --mi xml"
54 OUTPUT_DEST=$(mktemp)
55
56 list_lttng_with_opts
57 $XML_VALIDATE "$OUTPUT_DEST"
58 ok $? "Valid lttng list XML"
59
60 value=$($XML_EXTRACT "$OUTPUT_DEST" ${XPATH_SESSION}/lttng:name/text\(\))
61 ok $? "Extraction of session name"
62 OUTPUT_DEST=/dev/null
63 LTTNG_BIN=$lttng_bin
64
65 # Transfer value to passed arguments
66 eval "$__result='$value'"
67 }
68
69 function test_ust_uid_live ()
70 {
71 local session_name="$1"
72 local grouping="$2"
73 local is_automatic_session=false
74
75 if [ -z "$session_name" ]; then
76 is_automatic_session=true
77 fi
78
79 diag "Test UST uid buffer live [$grouping][${session_name:-automatic session name}]"
80
81 create_lttng_session_uri "$session_name" net://localhost --live
82 if [ "$is_automatic_session" = true ]; then
83 get_auto_session_name session_name
84 fi
85
86 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-uid"
87 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
88 start_lttng_tracing_ok "$session_name"
89
90 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
91
92 stop_lttng_tracing_ok "$session_name"
93 destroy_lttng_session_ok "$session_name"
94
95 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
96 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME*"
97 else
98 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$session_name*"
99 fi
100
101 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
102 rm -rf "${TRACE_PATH:?}/$session_name"
103 else
104 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
105 fi
106 }
107
108 function test_ust_pid_live ()
109 {
110 local session_name="$1"
111 local grouping="$2"
112 local is_automatic_session=false
113
114 if [ -z "$session_name" ]; then
115 is_automatic_session=true
116 fi
117
118 diag "Test UST pid buffer live [$grouping][${session_name:-automatic session name}]"
119
120 create_lttng_session_uri "$session_name" net://localhost --live
121 if [ "$is_automatic_session" = true ]; then
122 get_auto_session_name session_name
123 fi
124
125 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-pid"
126 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
127 start_lttng_tracing_ok "$session_name"
128
129 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
130
131 stop_lttng_tracing_ok "$session_name"
132 destroy_lttng_session_ok "$session_name"
133
134 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
135 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME*"
136 else
137 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$session_name*"
138 fi
139
140 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
141 rm -rf "${TRACE_PATH:?}/$session_name"
142 else
143 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
144 fi
145 }
146
147 function test_ust_uid_live_custom_output ()
148 {
149 local session_name="$1"
150 local grouping="$2"
151 local custom_output="my_live_custom_output"
152 local is_automatic_session=false
153
154 if [ -z "$session_name" ]; then
155 is_automatic_session=true
156 fi
157
158 diag "Test UST uid buffer live, custom output [$grouping][${session_name:-automatic session name}]"
159
160 create_lttng_session_uri "$session_name" net://localhost/$custom_output --live
161 if [ "$is_automatic_session" = true ]; then
162 get_auto_session_name session_name
163 fi
164
165 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-uid"
166 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
167 start_lttng_tracing_ok "$session_name"
168
169 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
170
171 stop_lttng_tracing_ok "$session_name"
172 destroy_lttng_session_ok "$session_name"
173
174 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
175 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME-*/$custom_output"
176 else
177 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$custom_output"
178 fi
179
180 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
181 rm -rf "${TRACE_PATH:?}/$session_name"
182 else
183 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
184 fi
185 }
186
187 function test_ust_uid_streaming ()
188 {
189 local session_name="$1"
190 local grouping="$2"
191 local is_automatic_session=false
192
193 if [ -z "$session_name" ]; then
194 is_automatic_session=true
195 fi
196
197 diag "Test UST uid buffer streaming [$grouping][${session_name:-automatic session name}]"
198
199 create_lttng_session_uri "$session_name" net://localhost
200 if [ "$is_automatic_session" = true ]; then
201 get_auto_session_name session_name
202 fi
203
204 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-uid"
205 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
206 start_lttng_tracing_ok "$session_name"
207
208 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
209
210 stop_lttng_tracing_ok "$session_name"
211 destroy_lttng_session_ok "$session_name"
212
213 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
214 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME*"
215 else
216 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$session_name*"
217 fi
218
219 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
220 rm -rf "${TRACE_PATH:?}/$session_name"
221 else
222 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
223 fi
224 }
225
226 function test_ust_pid_streaming ()
227 {
228 local session_name="$1"
229 local grouping="$2"
230 local is_automatic_session=false
231
232 if [ -z "$session_name" ]; then
233 is_automatic_session=true
234 fi
235
236 diag "Test UST pid buffer streaming [$grouping][${session_name:-automatic session name}]"
237
238 create_lttng_session_uri "$session_name" net://localhost
239 if [ "$is_automatic_session" = true ]; then
240 get_auto_session_name session_name
241 fi
242
243 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-pid"
244 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
245 start_lttng_tracing_ok "$session_name"
246
247 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
248
249 stop_lttng_tracing_ok "$session_name"
250 destroy_lttng_session_ok "$session_name"
251
252 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
253 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME*"
254 else
255 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$session_name*"
256 fi
257
258 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
259 rm -rf "${TRACE_PATH:?}/$session_name"
260 else
261 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
262 fi
263 }
264
265 function test_ust_uid_streaming_custom_output ()
266 {
267 local session_name="$1"
268 local grouping="$2"
269 local custom_output="custom_second_token"
270 local is_automatic_session=false
271
272 if [ -z "$session_name" ]; then
273 is_automatic_session=true
274 fi
275
276 diag "Test UST uid buffer streaming, custom output [$grouping][${session_name:-automatic session name}]"
277
278 create_lttng_session_uri "$session_name" net://localhost/$custom_output
279 if [ "$is_automatic_session" = true ]; then
280 get_auto_session_name session_name
281 fi
282
283 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-uid"
284 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
285 start_lttng_tracing_ok "$session_name"
286
287 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
288
289 stop_lttng_tracing_ok "$session_name"
290 destroy_lttng_session_ok "$session_name"
291
292 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
293 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME-*/$custom_output"
294 else
295 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$custom_output"
296 fi
297
298 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
299 rm -rf "${TRACE_PATH:?}/$session_name"
300 else
301 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
302 fi
303 }
304
305 function test_ust_uid_streaming_rotate ()
306 {
307 local session_name="$1"
308 local grouping="$2"
309 local is_automatic_session=false
310
311 if [ -z "$session_name" ]; then
312 is_automatic_session=true
313 fi
314
315 diag "Test UST uid buffer rotate [$grouping][${session_name:-automatic session name}]"
316
317 create_lttng_session_uri "$session_name" net://localhost
318 if [ "$is_automatic_session" = true ]; then
319 get_auto_session_name session_name
320 fi
321
322 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-uid"
323 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
324 start_lttng_tracing_ok "$session_name"
325
326 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
327 rotate_session_ok "$session_name"
328
329 stop_lttng_tracing_ok "$session_name"
330 destroy_lttng_session_ok "$session_name"
331
332 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
333 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME*"
334 else
335 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$session_name*"
336 fi
337
338 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
339 rm -rf "${TRACE_PATH:?}/$session_name"
340 else
341 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
342 fi
343 }
344
345 function test_ust_uid_streaming_rotate_custom_output ()
346 {
347 local session_name="$1"
348 local grouping="$2"
349 local custom_output="rotate_custom_path"
350 local is_automatic_session=false
351
352 if [ -z "$session_name" ]; then
353 is_automatic_session=true
354 fi
355
356 diag "Test UST uid buffer rotate, custom output [$grouping][${session_name:-automatic session name}]"
357
358 create_lttng_session_uri "$session_name" net://localhost/$custom_output
359 if [ "$is_automatic_session" = true ]; then
360 get_auto_session_name session_name
361 fi
362
363 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-uid"
364 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
365 start_lttng_tracing_ok "$session_name"
366
367 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
368 rotate_session_ok "$session_name"
369
370
371 stop_lttng_tracing_ok "$session_name"
372 destroy_lttng_session_ok "$session_name"
373
374 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
375 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME-*/$custom_output"
376 else
377 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$custom_output"
378 fi
379
380 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
381 rm -rf "${TRACE_PATH:?}/$session_name"
382 else
383 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
384 fi
385 }
386
387 function test_ust_pid_streaming_rotate ()
388 {
389 local session_name="$1"
390 local grouping="$2"
391 local is_automatic_session=false
392
393 if [ -z "$session_name" ]; then
394 is_automatic_session=true
395 fi
396
397 diag "Test UST pid buffer rotate with session_name [$grouping][${session_name:-automatic session name}]"
398
399 create_lttng_session_uri "$session_name" net://localhost
400 if [ "$is_automatic_session" = true ]; then
401 get_auto_session_name session_name
402 fi
403
404 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-pid"
405 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
406 start_lttng_tracing_ok "$session_name"
407
408 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
409 rotate_session_ok "$session_name"
410
411 stop_lttng_tracing_ok "$session_name"
412 destroy_lttng_session_ok "$session_name"
413
414 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
415 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME*"
416 else
417 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$session_name*"
418 fi
419
420 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
421 rm -rf "${TRACE_PATH:?}/$session_name"
422 else
423 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
424 fi
425 }
426
427 function test_ust_uid_streaming_snapshot ()
428 {
429 local session_name="$1"
430 local grouping="$2"
431 local is_automatic_session=false
432
433 if [ -z "$session_name" ]; then
434 is_automatic_session=true
435 fi
436
437 diag "Test UST uid buffer snapshot streaming using 'create --snapshot' [$grouping][${session_name:-automatic session name}]"
438
439 create_lttng_session_uri "$session_name" net://localhost --snapshot
440 if [ "$is_automatic_session" = true ]; then
441 get_auto_session_name session_name
442 fi
443
444 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-uid"
445 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
446 start_lttng_tracing_ok "$session_name"
447
448 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
449 lttng_snapshot_record "$session_name"
450
451 stop_lttng_tracing_ok "$session_name"
452 destroy_lttng_session_ok "$session_name"
453
454 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
455 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME*"
456 else
457 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$session_name*"
458 fi
459
460 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
461 rm -rf "${TRACE_PATH:?}/$session_name"
462 else
463 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
464 fi
465 }
466
467 function test_ust_pid_streaming_snapshot ()
468 {
469 local session_name="$1"
470 local grouping="$2"
471 local is_automatic_session=false
472
473 local file_sync_after_first
474 local file_sync_before_last
475
476 file_sync_after_first=$(mktemp -u)
477 file_sync_before_last=$(mktemp -u)
478
479 if [ -z "$session_name" ]; then
480 is_automatic_session=true
481 fi
482
483 diag "Test UST pid buffer snapshot streaming using 'create --snapshot' [$grouping][${session_name:-automatic session name}]"
484
485 create_lttng_session_uri "$session_name" net://localhost --snapshot
486 if [ "$is_automatic_session" = true ]; then
487 get_auto_session_name session_name
488 fi
489
490 enable_ust_lttng_channel_ok "$session_name" "$CHANNEL_NAME" "--buffers-pid"
491 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
492 start_lttng_tracing_ok "$session_name"
493
494 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT "$file_sync_after_first" "$file_sync_before_last" /dev/null 2>&1 &
495
496 while [ ! -f "${file_sync_after_first}" ]; do
497 sleep 0.5
498 done
499
500 lttng_snapshot_record "$session_name"
501
502 touch "$file_sync_before_last"
503 wait
504
505 stop_lttng_tracing_ok "$session_name"
506 destroy_lttng_session_ok "$session_name"
507
508 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
509 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME-*/snapshot-1*"
510 else
511 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$session_name*/snapshot-1*"
512 fi
513
514 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
515 rm -rf "${TRACE_PATH:?}/$session_name"
516 else
517 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
518 fi
519
520 rm -f "$file_sync_after_first"
521 rm -f "$file_sync_before_last"
522 }
523
524 function test_ust_uid_streaming_snapshot_add_output_default_name ()
525 {
526 local session_name="$1"
527 local grouping="$2"
528 local is_automatic_session=false
529
530 if [ -z "$session_name" ]; then
531 is_automatic_session=true
532 fi
533
534 diag "Test UST uid buffer snapshot using 'add-output' with default snapshot name [$grouping][${session_name:-automatic session name}]"
535
536 create_lttng_session_no_output "$session_name"
537 if [ "$is_automatic_session" = true ]; then
538 get_auto_session_name session_name
539 fi
540
541 enable_lttng_mmap_overwrite_ust_channel "$session_name" "$CHANNEL_NAME"
542 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
543 start_lttng_tracing_ok "$session_name"
544
545 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
546
547 lttng_snapshot_add_output_ok "$session_name" "net://localhost"
548 lttng_snapshot_record "$session_name"
549
550 stop_lttng_tracing_ok "$session_name"
551 destroy_lttng_session_ok "$session_name"
552
553 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
554 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME-*/snapshot-1*"
555 else
556 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$session_name*/snapshot-1*"
557 fi
558
559 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
560 rm -rf "${TRACE_PATH:?}/$session_name"
561 else
562 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
563 fi
564 }
565
566 function test_ust_uid_streaming_snapshot_add_output_custom_name ()
567 {
568 local session_name="$1"
569 local grouping="$2"
570 local snapshot_name="this_is_my_snapshot"
571 local is_automatic_session=false
572
573 if [ -z "$session_name" ]; then
574 is_automatic_session=true
575 fi
576
577 diag "Test UST uid buffer snapshot using 'add-output' with custom snapshot name [$grouping][${session_name:-automatic session name}]"
578
579 create_lttng_session_no_output "$session_name"
580 if [ "$is_automatic_session" = true ]; then
581 get_auto_session_name session_name
582 fi
583
584 enable_lttng_mmap_overwrite_ust_channel "$session_name" "$CHANNEL_NAME"
585 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
586 start_lttng_tracing_ok "$session_name"
587
588 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
589
590 lttng_snapshot_add_output_ok "$session_name" "net://localhost" "-n $snapshot_name"
591 lttng_snapshot_record "$session_name"
592
593 stop_lttng_tracing_ok "$session_name"
594 destroy_lttng_session_ok "$session_name"
595
596 # When session name is automatic, the actual directory is "auto", not
597 # auto-<datetime>.
598 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
599 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME-*/$snapshot_name*"
600 else
601 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$session_name*/$snapshot_name*"
602 fi
603
604 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
605 rm -rf "${TRACE_PATH:?}/$session_name"
606 else
607 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
608 fi
609 }
610
611 function test_ust_uid_streaming_snapshot_add_output_custom_name_custom_output ()
612 {
613 local session_name="$1"
614 local grouping="$2"
615 local snapshot_name="this_is_my_snapshot"
616 local custom_output="this/is/my/custom/path"
617 local is_automatic_session=false
618
619 if [ -z "$session_name" ]; then
620 is_automatic_session=true
621 fi
622
623 diag "Test UST uid buffer snapshot using 'add-output' with custom snapshot name and custom output path [$grouping][${session_name:-automatic session name}]"
624
625 create_lttng_session_no_output "$session_name"
626 if [ "$is_automatic_session" = true ]; then
627 get_auto_session_name session_name
628 fi
629
630 enable_lttng_mmap_overwrite_ust_channel "$session_name" "$CHANNEL_NAME"
631 enable_ust_lttng_event_ok "$session_name" "$EVENT_NAME" "$CHANNEL_NAME"
632 start_lttng_tracing_ok "$session_name"
633
634 $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT
635
636 lttng_snapshot_add_output_ok "$session_name" "net://localhost/$custom_output" "-n $snapshot_name"
637 lttng_snapshot_record "$session_name"
638
639 stop_lttng_tracing_ok "$session_name"
640 destroy_lttng_session_ok "$session_name"
641
642 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
643 validate_trace "$EVENT_NAME" "$TRACE_PATH/$session_name/$HOSTNAME-*/$custom_output/$snapshot_name*"
644 else
645 validate_trace "$EVENT_NAME" "$TRACE_PATH/$HOSTNAME/$custom_output/$snapshot_name*"
646 fi
647
648 if [ "$grouping" = "$GROUP_BY_SESSION" ]; then
649 rm -rf "${TRACE_PATH:?}/$session_name"
650 else
651 rm -rf "${TRACE_PATH:?}/$HOSTNAME"
652 fi
653 }
654
655 plan_tests $NUM_TESTS
656
657 print_test_banner "$TEST_DESC"
658
659
660 tests=(
661 test_ust_uid_live
662 test_ust_pid_live
663 test_ust_uid_live_custom_output
664 test_ust_uid_streaming
665 test_ust_pid_streaming
666 test_ust_uid_streaming_custom_output
667 test_ust_uid_streaming_rotate
668 test_ust_uid_streaming_rotate_custom_output
669 test_ust_pid_streaming_rotate
670 test_ust_uid_streaming_snapshot
671 test_ust_pid_streaming_snapshot
672 test_ust_uid_streaming_snapshot_add_output_default_name
673 test_ust_uid_streaming_snapshot_add_output_custom_name
674 test_ust_uid_streaming_snapshot_add_output_custom_name_custom_output
675 )
676
677 GROUP_BY_SESSION="--group-output-by-session"
678 GROUP_BY_HOSTNAME="--group-output-by-host"
679
680 grouping_types=(
681 $GROUP_BY_SESSION
682 $GROUP_BY_HOSTNAME
683 )
684 for fct_test in "${tests[@]}";
685 do
686 for grouping in "${grouping_types[@]}";
687 do
688 TRACE_PATH=$(mktemp -d)
689 # Set the relayd in --group-output-by-session mode
690 start_lttng_relayd "-o $TRACE_PATH $grouping"
691 start_lttng_sessiond
692
693 name=""
694 # Perform test when session name is generated by the client
695 ${fct_test} "$name" "$grouping"
696 count=$(find "$TRACE_PATH/" -maxdepth 1 -mindepth 1 | wc -l)
697 is "$count" "0" "LTTng-relayd output directory empty"
698
699 # Perform test when session name is given
700 name="my-session"
701 ${fct_test} "$name" "$grouping"
702 count=$(find "$TRACE_PATH/" -maxdepth 1 -mindepth 1 | wc -l)
703 is "$count" "0" "LTTng-relayd output directory empty"
704
705 rm -rf "$TRACE_PATH"
706 stop_lttng_relayd
707 stop_lttng_sessiond
708 done
709 done
710
This page took 0.044442 seconds and 4 git commands to generate.