CURDIR=$(dirname $0)/
TESTDIR=$CURDIR/../../../
-XSD_PATH=$TESTDIR/../src/common/mi-lttng-3.0.xsd
-SESSIOND_BIN="lttng-sessiond"
-RELAYD_BIN="lttng-relayd"
+XSD_PATH=$TESTDIR/../src/common/mi-lttng-4.0.xsd
#Test app for ust event
TESTAPP_PATH="$TESTDIR/utils/testapp"
#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
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=224
+NUM_TESTS=246
source $TESTDIR/utils/utils.sh
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"
}
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"
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
ok $? "Mi test: enabled element : $result expected: true"
#Test metadata regenerate command
- metadata_regenerate_ok $session_name
+ regenerate_metadata_ok $session_name
$XML_VALIDATE $OUTPUT_DEST
- ok $? "Mi test: metadata regenerate"
+ ok $? "Mi test: regenerate metadata"
#Test stop command
stop_lttng_tracing_ok $session_name
#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
#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"
diag "Test track/untrack pid"
local session_name="testTrack"
- local snapshot_path="$OUTPUT_DIR/trackoutput"
local pid="1,2,3"
OUTPUT_FILE="track.xml"
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"
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"
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"
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"
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
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"
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
$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
test_start_stop
test_snapshot
test_track_untrack
+ test_list_session_long_path
+ test_add_context_list
+ test_clear_session
)
fi
done
rm -rf $OUTPUT_DIR
+rm -rf $FOO_LOAD_DIR
OUTPUT_DEST=/dev/null 2>&1
stop_lttng_sessiond