X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Fregression%2Ftools%2Fmi%2Ftest_mi;h=8eb0491224b83cf5e400fbae8eed96b23363db86;hp=cd18b58ddf0a12465b242ce58ee8a06704c6ef55;hb=83d6d6c4496e692df39843142cb8cf96279eaa20;hpb=41af1adf5100627c2e11565e7d9e4b9c5a8b9fac diff --git a/tests/regression/tools/mi/test_mi b/tests/regression/tools/mi/test_mi index cd18b58dd..8eb049122 100755 --- a/tests/regression/tools/mi/test_mi +++ b/tests/regression/tools/mi/test_mi @@ -20,8 +20,6 @@ TEST_DESC="Machine interface testing" CURDIR=$(dirname $0)/ TESTDIR=$CURDIR/../../../ XSD_PATH=$TESTDIR/../src/common/mi-lttng-3.0.xsd -SESSIOND_BIN="lttng-sessiond" -RELAYD_BIN="lttng-relayd" #Test app for ust event TESTAPP_PATH="$TESTDIR/utils/testapp" @@ -32,7 +30,7 @@ NR_ITER=10000 #Temp file output OUTPUT_DIR=$(mktemp -d) -FOO_LOAD_DIR=$(mktemp -d) +SESSIOND_LOAD_DIR=$(mktemp -d) OUTPUT_FILE="default.xml" #Path to custom xml utilities @@ -52,14 +50,14 @@ XPATH_LIST_UST_EVENT="$XPATH_CMD_OUTPUT/lttng:domains/lttng:domain[./lttng:type XPATH_SNAPSHOT_ADD_SNAPSHOT="$XPATH_CMD_OUTPUT/lttng:snapshot_action[./lttng:name = 'add-output']/lttng:output" XPATH_SNAPSHOT_LIST="$XPATH_CMD_OUTPUT/lttng:snapshot_action[./lttng:name = 'list-output']/lttng:output" XPATH_SNAPSHOT_DEL="$XPATH_CMD_OUTPUT/lttng:snapshot_action[./lttng:name = 'del-output']/lttng:output" -XPATH_TRACK_UNTRACK_PID="$XPATH_CMD_OUTPUT/lttng:targets/lttng:pid_target" -XPATH_PID_TRACKER="$XPATH_CMD_OUTPUT/lttng:sessions/lttng:session/lttng:domains/lttng:domain/lttng:trackers/lttng:pid_tracker" +XPATH_TRACK_UNTRACK_VPID="$XPATH_CMD_OUTPUT/lttng:trackers/lttng:vpid_tracker/lttng:targets/lttng:vpid_target/lttng:type" +XPATH_VPID_TRACKER="$XPATH_CMD_OUTPUT/lttng:sessions/lttng:session/lttng:domains/lttng:domain/lttng:trackers/lttng:vpid_tracker" DEVNULL=/dev/null 2>&1 DIR=$(readlink -f $TESTDIR) -NUM_TESTS=222 +NUM_TESTS=246 source $TESTDIR/utils/utils.sh @@ -132,10 +130,10 @@ function is_command_success () function mi_print_version () { - local opt=$2 local output_path=$1 + local opt=$2 - $LTTNG version $opt > $1 + $LTTNG version $opt > $output_path ok $? "MI test: Lttng version" } @@ -246,6 +244,28 @@ function test_list_sessions () destroy_lttng_sessions } +function test_list_session_long_path () +{ + local session_name="session_long_path" + + output_basedir=$OUTPUT_DIR/$(randstring 254 0) + mkdir -p ${output_basedir} + + OUTPUT_FILE="list_sessions.xml" + + #Test build up + OUTPUT_DEST=$DEVNULL + create_lttng_session_ok $session_name ${output_basedir} + + OUTPUT_DEST=${output_basedir}/$OUTPUT_FILE + list_lttng_with_opts + $XML_VALIDATE $OUTPUT_DEST + ok $? "Mi test: list session with long path xsd validation" + + #Teardown + OUTPUT_DEST=$DEVNULL + destroy_lttng_sessions +} function test_ust_channel () { local session_name="testsession" @@ -524,7 +544,9 @@ function test_list_ust_event () OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE #Begin testing - $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT ${file_sync_after_first} ${file_sync_before_last} & 2>/dev/null + $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT \ + --sync-after-first-event ${file_sync_after_first} \ + --sync-before-last-event ${file_sync_before_last} & 2>/dev/null while [ ! -f "${file_sync_after_first}" ]; do sleep 0.5 @@ -608,6 +630,11 @@ function test_start_stop () { test "$result" = "true" ok $? "Mi test: enabled element : $result expected: true" + #Test metadata regenerate command + regenerate_metadata_ok $session_name + $XML_VALIDATE $OUTPUT_DEST + ok $? "Mi test: regenerate metadata" + #Test stop command stop_lttng_tracing_ok $session_name $XML_VALIDATE $OUTPUT_DEST @@ -616,7 +643,7 @@ function test_start_stop () { #Extract session name from xml extract_xml $OUTPUT_DEST $XPATH_SESSION"/lttng:name/text()" result test "$result" = "$session_name" - ok $? "Mi test: stoped $session_name" + ok $? "Mi test: stopped $session_name" #Extract enabled expect false extract_xml $OUTPUT_DEST $XPATH_SESSION"/lttng:enabled/text()" result @@ -651,7 +678,7 @@ function test_snapshot () { #Test fail command #No channel enable start command should return element success false OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE - lttng_snapshot_add_output_ok $session_name $snapshot_path + lttng_snapshot_add_output_ok $session_name file://$snapshot_path $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: snapshot xsd validation" @@ -721,7 +748,6 @@ function test_track_untrack () diag "Test track/untrack pid" local session_name="testTrack" - local snapshot_path="$OUTPUT_DIR/trackoutput" local pid="1,2,3" OUTPUT_FILE="track.xml" @@ -740,7 +766,7 @@ function test_track_untrack () ok $? "Mi test: track pid is a success" #Verify that there is 3 process - extract_xml $OUTPUT_DEST $XPATH_TRACK_UNTRACK_PID"/lttng:pid" result + extract_xml $OUTPUT_DEST $XPATH_TRACK_UNTRACK_VPID"/lttng:id" result num=$(echo "$result" | wc -l) test "$num" -eq "3" ok $? "Mi test: track pid expecting 3 processes got $num" @@ -751,7 +777,7 @@ function test_track_untrack () ok $? "Mi test: session list with pid_tracker validate" #Check the good count - extract_xml $OUTPUT_DEST $XPATH_PID_TRACKER"/lttng:targets/lttng:pid_target/lttng:pid" result + extract_xml $OUTPUT_DEST $XPATH_VPID_TRACKER"/lttng:targets/lttng:vpid_target/lttng:type/lttng:id" result num=$(echo "$result" | wc -l) test "$num" -eq "3" ok $? "Mi test: tracker pid listing expecting 3 target got $num" @@ -767,7 +793,7 @@ function test_track_untrack () ok $? "Mi test: untrack pid is a success" #Verify that there is 2 untracked pids - extract_xml $OUTPUT_DEST $XPATH_TRACK_UNTRACK_PID"/lttng:pid" result + extract_xml $OUTPUT_DEST $XPATH_TRACK_UNTRACK_VPID"/lttng:id" result num=$(echo "$result" | wc -l) test "$num" -eq "2" ok $? "Mi test: untrack pid expecting 2 process got $num" @@ -778,7 +804,7 @@ function test_track_untrack () ok $? "Mi test: session list with pid_tracker validate" #Check the good count - extract_xml $OUTPUT_DEST $XPATH_PID_TRACKER"/lttng:targets/lttng:pid_target/lttng:pid" result + extract_xml $OUTPUT_DEST $XPATH_VPID_TRACKER"/lttng:targets/lttng:vpid_target/lttng:type/lttng:pid" result num=$(echo "$result" | wc -l) test "$num" -eq "1" ok $? "Mi test: tracker pid listing expecting 1 process got $num" @@ -794,14 +820,14 @@ function test_track_untrack () ok $? "Mi test: untrack all pid is a success" #Verify that there is 1 untracked pid - extract_xml $OUTPUT_DEST $XPATH_TRACK_UNTRACK_PID"/lttng:pid" result + extract_xml $OUTPUT_DEST $XPATH_TRACK_UNTRACK_VPID"/lttng:all" result num=$(echo "$result" | wc -l) test "$num" -eq "1" ok $? "Mi test: untrack pid expecting 1 process got $num" - #Test if the id is * which represent the all argument - test "$result" = "*" - ok $? "Mi test: pid expected is * got $result" + #Test if type "all" is "true" which represent the all argument + test "$result" = "true" + ok $? "Mi test: pid expected is true got $result" #Test if pid_tracker is enabled as definied by pid_tracker #behavior. If all pid are untrack than the pid_tracker is still @@ -811,7 +837,7 @@ function test_track_untrack () ok $? "Mi test: session list with pid_tracker validate" #Check the good count - extract_xml $OUTPUT_DEST $XPATH_PID_TRACKER"/lttng:targets/lttng:pid_target/lttng:pid" result + extract_xml $OUTPUT_DEST $XPATH_VPID_TRACKER"/lttng:targets/lttng:vpid_target/lttng:type/lttng:pid" result num=$(echo -n "$result" | wc -l) test "$num" -eq "0" ok $? "Mi test: tracker pid listing expecting 0 process got $num" @@ -827,14 +853,14 @@ function test_track_untrack () ok $? "Mi test: track all pid is a success" #Verify that there is 1 tracked process - extract_xml $OUTPUT_DEST $XPATH_TRACK_UNTRACK_PID"/lttng:pid" result + extract_xml $OUTPUT_DEST $XPATH_TRACK_UNTRACK_VPID"/lttng:all" result num=$(echo "$result" | wc -l) test "$num" -eq "1" ok $? "Mi test: track pid expecting 1 process got $num" - #Test if the id is * wich represent the all argument - test "$result" = "*" - ok $? "Mi test: pid expected is * got $result" + #Test if the id is true wich represent the all argument + test "$result" = "true" + ok $? "Mi test: pid expected is true got $result" #Test if pid_tracker is enabled as definied by pid_tracker #behavior. If all pid are untrack thant the pid_tracker is @@ -843,15 +869,77 @@ function test_track_untrack () $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: session list with pid_tracker validate" - node_check_xml $OUTPUT_DEST $XPATH_PID_TRACKER result + node_check_xml $OUTPUT_DEST $XPATH_VPID_TRACKER result test "$result" = "" - ok $? "Mi test: Pid_tracker node is absent as defined" + ok $? "Mi test: VPID_tracker node is absent as defined" OUTPUT_DEST=$DEVNULL destroy_lttng_sessions } -start_lttng_sessiond $FOO_LOAD_DIR +function test_add_context_list() +{ + diag "Test context listing" + + OUTPUT_FILE="list-context.xml" + OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE + lttng_add_context_list + + $XML_VALIDATE $OUTPUT_DEST + ok $? "Mi test: context listing validation" +} + +function test_clear_session () +{ + # Since the session are not started there is no real clear done. + # We are testing the MI output only here. + local session_name=( + "testSession1" + "testSession2" + "testSession3") + + OUTPUT_FILE="clear_session.xml" + + #Test build up + OUTPUT_DEST=$DEVNULL + for (( i = 0; i < 3; i++ )); do + create_lttng_session_ok ${session_name[$i]} $OUTPUT_DIR + done + + OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE + lttng_clear_session_ok ${session_name[0]} + $XML_VALIDATE $OUTPUT_DEST + ok $? "MI test: clear session ${session_name[0]} xsd validation" + + #Verify that we cleared the good session + extract_xml $OUTPUT_DEST $XPATH_SESSION"/lttng:name/text()" result + test "$result" = "${session_name[0]}" + ok $? "Mi test: cleared session: $result expected: ${session_name[0]}" + + #Destroy all and count:should be 3 + lttng_clear_all + $XML_VALIDATE $OUTPUT_DEST + ok $? "MI test: clear all session xsd validation" + + #Verify that we cleared 3 sessions + extract_xml $OUTPUT_DEST $XPATH_SESSION"/lttng:name/text()" result + num=$(echo "$result" | wc -l) + test "$num" -eq "3" + ok $? "Mi test: $num / 3 sessions discovered" + + destroy_lttng_sessions + + #Verify that if no session is present command fail and mi report it. + lttng_clear_session_fail ${session_name[0]} + $XML_VALIDATE $OUTPUT_DEST + ok $? "MI test: failing clear session ${session_name[0]} xsd validation" + extract_xml $OUTPUT_DEST $XPATH_COMMAND_SUCCESS result + test "$result" = "false" + ok $? "Mi test: clear command on ${session_name[0]} failed as expected" + +} + +start_lttng_sessiond $SESSIOND_LOAD_DIR TESTS=( test_version test_create_session @@ -866,6 +954,9 @@ TESTS=( test_start_stop test_snapshot test_track_untrack + test_list_session_long_path + test_add_context_list + test_clear_session ) @@ -878,6 +969,7 @@ do fi done rm -rf $OUTPUT_DIR +rm -rf $FOO_LOAD_DIR OUTPUT_DEST=/dev/null 2>&1 stop_lttng_sessiond