Commit | Line | Data |
---|---|---|
e7716c6a JD |
1 | #!/bin/bash |
2 | # | |
9d16b343 | 3 | # Copyright (C) 2017 Julien Desfossez <jdesfossez@efficios.com> |
e7716c6a | 4 | # |
9d16b343 | 5 | # SPDX-License-Identifier: LGPL-2.1-only |
e7716c6a JD |
6 | |
7 | TEST_DESC="Rotation - Save/Load/List/MI" | |
8 | ||
9 | CURDIR=$(dirname $0)/ | |
10 | TESTDIR=$CURDIR/../../.. | |
11 | SESSION_NAME="stream" | |
12 | ||
308a8946 | 13 | NUM_TESTS=22 |
e7716c6a JD |
14 | |
15 | source $TESTDIR/utils/utils.sh | |
16 | source $CURDIR/rotate_utils.sh | |
17 | ||
2f686e35 | 18 | # Overwrite the lttng_bin to get mi output |
e7716c6a JD |
19 | LTTNG_BIN="lttng --mi xml" |
20 | ||
01fac814 | 21 | XSD_PATH=$TESTDIR/../src/common/mi-lttng-4.0.xsd |
e7716c6a JD |
22 | |
23 | XML_VALIDATE="$TESTDIR/regression/tools/mi/validate_xml $XSD_PATH" | |
24 | XML_EXTRACT="$TESTDIR/regression/tools/mi/extract_xml" | |
25 | ||
26 | XPATH_CMD_OUTPUT="//lttng:command/lttng:output" | |
27 | XPATH_SESSION="$XPATH_CMD_OUTPUT/lttng:sessions/lttng:session" | |
66ea93b1 JG |
28 | XPATH_ENABLE_ROTATE_TIMER="$XPATH_CMD_OUTPUT/lttng:rotation_schedule_results/lttng:rotation_schedule_result/lttng:rotation_schedule/lttng:periodic/lttng:time_us" |
29 | XPATH_ENABLE_ROTATE_SIZE="$XPATH_CMD_OUTPUT/lttng:rotation_schedule_results/lttng:rotation_schedule_result/lttng:rotation_schedule/lttng:size_threshold/lttng:bytes" | |
30 | ||
31 | XPATH_LIST_ROTATE_TIMER="$XPATH_SESSION/lttng:rotation_schedules/lttng:periodic/lttng:time_us" | |
32 | XPATH_LIST_ROTATE_SIZE="$XPATH_SESSION/lttng:rotation_schedules/lttng:size_threshold/lttng:bytes" | |
e7716c6a | 33 | |
308a8946 | 34 | function test_save_load_mi () |
e7716c6a | 35 | { |
c3527cb1 FD |
36 | local tmp_xml_output=$(mktemp -u) |
37 | local tmp_save_output=$(mktemp -d) | |
38 | local trace_path=$(mktemp -d) | |
e7716c6a JD |
39 | |
40 | diag "Test save/load/list/MI with rotation" | |
2f686e35 | 41 | create_lttng_session_ok $SESSION_NAME $trace_path |
e7716c6a JD |
42 | enable_ust_lttng_event_ok $SESSION_NAME -a |
43 | ||
44 | # Enable a rotation timer and check the MI output of the command | |
308a8946 JR |
45 | |
46 | OUTPUT_DEST=${tmp_xml_output} | |
47 | lttng_enable_rotation_timer_ok $SESSION_NAME 500ms | |
e7716c6a JD |
48 | $XML_VALIDATE ${tmp_xml_output} |
49 | ok $? "Valid lttng enable-rotation timer XML" | |
308a8946 | 50 | |
66ea93b1 | 51 | value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_ENABLE_ROTATE_TIMER}) |
e7716c6a JD |
52 | test $value = 500000 |
53 | ok $? "Found the right rotation timer value in XML" | |
54 | ||
55 | # Enable a rotation size and check the MI output of the command | |
308a8946 | 56 | lttng_enable_rotation_size_ok $SESSION_NAME 500k |
e7716c6a JD |
57 | $XML_VALIDATE ${tmp_xml_output} |
58 | ok $? "Valid lttng enable-rotation size XML" | |
308a8946 | 59 | |
66ea93b1 | 60 | value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_ENABLE_ROTATE_SIZE}) |
e7716c6a JD |
61 | test $value = 512000 |
62 | ok $? "Found the right rotation size value in XML" | |
63 | ||
64 | # Check the output of lttng list with the 2 rotation parameters | |
308a8946 | 65 | list_lttng_with_opts $SESSION_NAME |
e7716c6a JD |
66 | $XML_VALIDATE ${tmp_xml_output} |
67 | ok $? "Valid lttng list XML" | |
308a8946 | 68 | |
66ea93b1 | 69 | value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_TIMER}) |
e7716c6a JD |
70 | test $value = 500000 |
71 | ok $? "Found the right rotation timer value in list XML" | |
308a8946 | 72 | |
66ea93b1 | 73 | value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_SIZE}) |
e7716c6a JD |
74 | test $value = 512000 |
75 | ok $? "Found the right rotation size value in list XML" | |
76 | ||
77 | # save, destroy and reload the same session | |
308a8946 | 78 | OUTPUT_DEST=/dev/null |
c3527cb1 | 79 | lttng_save $SESSION_NAME "-o $tmp_save_output/$SESSION_NAME" |
308a8946 | 80 | destroy_lttng_session_ok $SESSION_NAME |
c3527cb1 | 81 | lttng_load_ok "-i $tmp_save_output/$SESSION_NAME" |
e7716c6a | 82 | |
308a8946 | 83 | OUTPUT_DEST=${tmp_xml_output} |
e7716c6a | 84 | # Check the output of lttng list with the 2 rotation parameters after the load |
308a8946 | 85 | list_lttng_with_opts $SESSION_NAME |
e7716c6a JD |
86 | $XML_VALIDATE ${tmp_xml_output} |
87 | ok $? "Valid lttng list XML after load" | |
308a8946 | 88 | |
66ea93b1 | 89 | value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_TIMER}) |
e7716c6a JD |
90 | test $value = 500000 |
91 | ok $? "Found the right rotation timer value in list XML after load" | |
308a8946 | 92 | |
66ea93b1 | 93 | value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_SIZE}) |
e7716c6a JD |
94 | test $value = 512000 |
95 | ok $? "Found the right rotation size value in list XML after load" | |
96 | ||
308a8946 JR |
97 | OUTPUT_DEST=/dev/null |
98 | destroy_lttng_session_ok $SESSION_NAME | |
e7716c6a | 99 | |
c3527cb1 FD |
100 | rm -rf "$trace_path" |
101 | rm "$tmp_xml_output" | |
102 | rm -rf "$tmp_save_output" | |
e7716c6a JD |
103 | } |
104 | ||
105 | plan_tests $NUM_TESTS | |
106 | ||
107 | print_test_banner "$TEST_DESC" | |
108 | ||
109 | start_lttng_sessiond | |
110 | ||
308a8946 | 111 | tests=( test_save_load_mi ) |
e7716c6a JD |
112 | |
113 | for fct_test in ${tests[@]}; | |
114 | do | |
115 | SESSION_NAME=$(randstring 16 0) | |
116 | ${fct_test} | |
117 | done | |
118 | ||
119 | stop_lttng_sessiond |