3 # Copyright (C) 2017 Julien Desfossez <jdesfossez@efficios.com>
5 # SPDX-License-Identifier: LGPL-2.1-only
7 TEST_DESC
="Rotation - Save/Load/List/MI"
10 TESTDIR
=$CURDIR/..
/..
/..
15 source $TESTDIR/utils
/utils.sh
16 source $CURDIR/rotate_utils.sh
18 # Overwrite the lttng_bin to get mi output
19 LTTNG_BIN
="lttng --mi xml"
21 XSD_PATH
=$TESTDIR/..
/src
/common
/mi-lttng-4.0.xsd
23 XML_VALIDATE
="$TESTDIR/regression/tools/mi/validate_xml $XSD_PATH"
24 XML_EXTRACT
="$TESTDIR/regression/tools/mi/extract_xml"
26 XPATH_CMD_OUTPUT
="//lttng:command/lttng:output"
27 XPATH_SESSION
="$XPATH_CMD_OUTPUT/lttng:sessions/lttng:session"
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"
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"
34 function test_save_load_mi
()
36 tmp_xml_output
=$
(mktemp
-u)
37 tmp_save_output
=$
(mktemp
-d)
38 trace_path
=$
(mktemp
-d)
40 diag
"Test save/load/list/MI with rotation"
41 create_lttng_session_ok
$SESSION_NAME $trace_path
42 enable_ust_lttng_event_ok
$SESSION_NAME -a
44 # Enable a rotation timer and check the MI output of the command
46 OUTPUT_DEST
=${tmp_xml_output}
47 lttng_enable_rotation_timer_ok
$SESSION_NAME 500ms
48 $XML_VALIDATE ${tmp_xml_output}
49 ok $?
"Valid lttng enable-rotation timer XML"
51 value
=$
($XML_EXTRACT ${tmp_xml_output} ${XPATH_ENABLE_ROTATE_TIMER})
53 ok $?
"Found the right rotation timer value in XML"
55 # Enable a rotation size and check the MI output of the command
56 lttng_enable_rotation_size_ok
$SESSION_NAME 500k
57 $XML_VALIDATE ${tmp_xml_output}
58 ok $?
"Valid lttng enable-rotation size XML"
60 value
=$
($XML_EXTRACT ${tmp_xml_output} ${XPATH_ENABLE_ROTATE_SIZE})
62 ok $?
"Found the right rotation size value in XML"
64 # Check the output of lttng list with the 2 rotation parameters
65 list_lttng_with_opts
$SESSION_NAME
66 $XML_VALIDATE ${tmp_xml_output}
67 ok $?
"Valid lttng list XML"
69 value
=$
($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_TIMER})
71 ok $?
"Found the right rotation timer value in list XML"
73 value
=$
($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_SIZE})
75 ok $?
"Found the right rotation size value in list XML"
77 # save, destroy and reload the same session
79 lttng_save
$SESSION_NAME "-o $tmp_save_output$SESSION_NAME"
80 destroy_lttng_session_ok
$SESSION_NAME
81 lttng_load_ok
"-i $tmp_save_output$SESSION_NAME"
83 OUTPUT_DEST
=${tmp_xml_output}
84 # Check the output of lttng list with the 2 rotation parameters after the load
85 list_lttng_with_opts
$SESSION_NAME
86 $XML_VALIDATE ${tmp_xml_output}
87 ok $?
"Valid lttng list XML after load"
89 value
=$
($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_TIMER})
91 ok $?
"Found the right rotation timer value in list XML after load"
93 value
=$
($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_SIZE})
95 ok $?
"Found the right rotation size value in list XML after load"
98 destroy_lttng_session_ok
$SESSION_NAME
102 rm -rf $tmp_save_output
105 plan_tests
$NUM_TESTS
107 print_test_banner
"$TEST_DESC"
111 tests
=( test_save_load_mi
)
113 for fct_test
in ${tests[@]};
115 SESSION_NAME
=$
(randstring
16 0)