rotation-api: introduce rotation schedule descriptors
[lttng-tools.git] / tests / regression / tools / rotation / test_save_load_mi
index d3d6768ab1c62ff773a60a8ea176f782f5845e18..494d375f6fd701c5eb80c5fb8ba19fd9e67db053 100755 (executable)
@@ -21,19 +21,14 @@ CURDIR=$(dirname $0)/
 TESTDIR=$CURDIR/../../..
 SESSION_NAME="stream"
 
-TRACE_PATH=$(mktemp -d)
-
-NUM_TESTS=14
+NUM_TESTS=22
 
 source $TESTDIR/utils/utils.sh
 source $CURDIR/rotate_utils.sh
 
-#Overwrite the lttng_bin to get mi output
+# Overwrite the lttng_bin to get mi output
 LTTNG_BIN="lttng --mi xml"
 
-#Global declaration for simplification
-LTTNG=$TESTDIR/../src/bin/lttng/$LTTNG_BIN
-
 XSD_PATH=$TESTDIR/../src/common/mi-lttng-3.0.xsd
 
 XML_VALIDATE="$TESTDIR/regression/tools/mi/validate_xml $XSD_PATH"
@@ -41,63 +36,79 @@ XML_EXTRACT="$TESTDIR/regression/tools/mi/extract_xml"
 
 XPATH_CMD_OUTPUT="//lttng:command/lttng:output"
 XPATH_SESSION="$XPATH_CMD_OUTPUT/lttng:sessions/lttng:session"
-XPATH_ROTATE_SETUP="$XPATH_CMD_OUTPUT/lttng:rotation_schedule"
+XPATH_ENABLE_ROTATE_TIMER="$XPATH_CMD_OUTPUT/lttng:rotation_schedule_results/lttng:rotation_schedule_result/lttng:rotation_schedule/lttng:periodic/lttng:time_us"
+XPATH_ENABLE_ROTATE_SIZE="$XPATH_CMD_OUTPUT/lttng:rotation_schedule_results/lttng:rotation_schedule_result/lttng:rotation_schedule/lttng:size_threshold/lttng:bytes"
+
+XPATH_LIST_ROTATE_TIMER="$XPATH_SESSION/lttng:rotation_schedules/lttng:periodic/lttng:time_us"
+XPATH_LIST_ROTATE_SIZE="$XPATH_SESSION/lttng:rotation_schedules/lttng:size_threshold/lttng:bytes"
 
-function test_save_load ()
+function test_save_load_mi ()
 {
        tmp_xml_output=$(mktemp -u)
        tmp_save_output=$(mktemp -d)
+       trace_path=$(mktemp -d)
 
        diag "Test save/load/list/MI with rotation"
-       create_lttng_session_ok $SESSION_NAME $TRACE_PATH
+       create_lttng_session_ok $SESSION_NAME $trace_path
        enable_ust_lttng_event_ok $SESSION_NAME -a
 
        # Enable a rotation timer and check the MI output of the command
-       $LTTNG enable-rotation -s $SESSION_NAME --timer 500ms >${tmp_xml_output}
+
+       OUTPUT_DEST=${tmp_xml_output}
+       lttng_enable_rotation_timer_ok $SESSION_NAME 500ms
        $XML_VALIDATE ${tmp_xml_output}
        ok $? "Valid lttng enable-rotation timer XML"
-       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_ROTATE_SETUP}/lttng:rotation_schedule_timer_period)
+
+       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_ENABLE_ROTATE_TIMER})
        test $value = 500000
        ok $? "Found the right rotation timer value in XML"
 
        # Enable a rotation size and check the MI output of the command
-       $LTTNG enable-rotation -s $SESSION_NAME --size 500k >${tmp_xml_output}
+       lttng_enable_rotation_size_ok $SESSION_NAME 500k
        $XML_VALIDATE ${tmp_xml_output}
        ok $? "Valid lttng enable-rotation size XML"
-       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_ROTATE_SETUP}/lttng:rotation_schedule_size)
+
+       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_ENABLE_ROTATE_SIZE})
        test $value = 512000
        ok $? "Found the right rotation size value in XML"
 
        # Check the output of lttng list with the 2 rotation parameters
-       $LTTNG list $SESSION_NAME >${tmp_xml_output}
+       list_lttng_with_opts $SESSION_NAME
        $XML_VALIDATE ${tmp_xml_output}
        ok $? "Valid lttng list XML"
-       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_SESSION}/lttng:rotation_schedule_timer_period)
+
+       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_TIMER})
        test $value = 500000
        ok $? "Found the right rotation timer value in list XML"
-       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_SESSION}/lttng:rotation_schedule_size)
+
+       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_SIZE})
        test $value = 512000
        ok $? "Found the right rotation size value in list XML"
 
        # save, destroy and reload the same session
-       $LTTNG save -o $tmp_save_output$SESSION_NAME >/dev/null
-       $LTTNG destroy $SESSION_NAME >/dev/null
-       $LTTNG load -i $tmp_save_output$SESSION_NAME >/dev/null
+       OUTPUT_DEST=/dev/null
+       lttng_save $SESSION_NAME "-o $tmp_save_output$SESSION_NAME"
+       destroy_lttng_session_ok $SESSION_NAME
+       lttng_load_ok "-i $tmp_save_output$SESSION_NAME"
 
+       OUTPUT_DEST=${tmp_xml_output}
        # Check the output of lttng list with the 2 rotation parameters after the load
-       $LTTNG list $SESSION_NAME >${tmp_xml_output}
+       list_lttng_with_opts $SESSION_NAME
        $XML_VALIDATE ${tmp_xml_output}
        ok $? "Valid lttng list XML after load"
-       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_SESSION}/lttng:rotation_schedule_timer_period)
+
+       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_TIMER})
        test $value = 500000
        ok $? "Found the right rotation timer value in list XML after load"
-       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_SESSION}/lttng:rotation_schedule_size)
+
+       value=$($XML_EXTRACT ${tmp_xml_output} ${XPATH_LIST_ROTATE_SIZE})
        test $value = 512000
        ok $? "Found the right rotation size value in list XML after load"
 
-       $LTTNG destroy $SESSION_NAME >/dev/null
+       OUTPUT_DEST=/dev/null
+       destroy_lttng_session_ok $SESSION_NAME
 
-       rm -rf ${TRACE_PATH}
+       rm -rf ${trace_path}
        rm $tmp_xml_output
        rm -rf $tmp_save_output
 }
@@ -108,7 +119,7 @@ print_test_banner "$TEST_DESC"
 
 start_lttng_sessiond
 
-tests=( test_save_load )
+tests=( test_save_load_mi )
 
 for fct_test in ${tests[@]};
 do
This page took 0.024959 seconds and 4 git commands to generate.