tests: Move to kernel style SPDX license identifiers
[lttng-tools.git] / tests / regression / tools / rotation / test_save_load_mi
CommitLineData
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
7TEST_DESC="Rotation - Save/Load/List/MI"
8
9CURDIR=$(dirname $0)/
10TESTDIR=$CURDIR/../../..
11SESSION_NAME="stream"
12
308a8946 13NUM_TESTS=22
e7716c6a
JD
14
15source $TESTDIR/utils/utils.sh
16source $CURDIR/rotate_utils.sh
17
2f686e35 18# Overwrite the lttng_bin to get mi output
e7716c6a
JD
19LTTNG_BIN="lttng --mi xml"
20
01fac814 21XSD_PATH=$TESTDIR/../src/common/mi-lttng-4.0.xsd
e7716c6a
JD
22
23XML_VALIDATE="$TESTDIR/regression/tools/mi/validate_xml $XSD_PATH"
24XML_EXTRACT="$TESTDIR/regression/tools/mi/extract_xml"
25
26XPATH_CMD_OUTPUT="//lttng:command/lttng:output"
27XPATH_SESSION="$XPATH_CMD_OUTPUT/lttng:sessions/lttng:session"
66ea93b1
JG
28XPATH_ENABLE_ROTATE_TIMER="$XPATH_CMD_OUTPUT/lttng:rotation_schedule_results/lttng:rotation_schedule_result/lttng:rotation_schedule/lttng:periodic/lttng:time_us"
29XPATH_ENABLE_ROTATE_SIZE="$XPATH_CMD_OUTPUT/lttng:rotation_schedule_results/lttng:rotation_schedule_result/lttng:rotation_schedule/lttng:size_threshold/lttng:bytes"
30
31XPATH_LIST_ROTATE_TIMER="$XPATH_SESSION/lttng:rotation_schedules/lttng:periodic/lttng:time_us"
32XPATH_LIST_ROTATE_SIZE="$XPATH_SESSION/lttng:rotation_schedules/lttng:size_threshold/lttng:bytes"
e7716c6a 33
308a8946 34function test_save_load_mi ()
e7716c6a
JD
35{
36 tmp_xml_output=$(mktemp -u)
37 tmp_save_output=$(mktemp -d)
2f686e35 38 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
JR
78 OUTPUT_DEST=/dev/null
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"
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
2f686e35 100 rm -rf ${trace_path}
e7716c6a
JD
101 rm $tmp_xml_output
102 rm -rf $tmp_save_output
103}
104
105plan_tests $NUM_TESTS
106
107print_test_banner "$TEST_DESC"
108
109start_lttng_sessiond
110
308a8946 111tests=( test_save_load_mi )
e7716c6a
JD
112
113for fct_test in ${tests[@]};
114do
115 SESSION_NAME=$(randstring 16 0)
116 ${fct_test}
117done
118
119stop_lttng_sessiond
This page took 0.038402 seconds and 5 git commands to generate.