X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=tests%2Fregression%2Ftools%2Fmi%2Ftest_mi;h=5bd29ed4d3563cc24144539ebae3763723730d21;hb=3328542ec9bca266e88aafbcace196a5c5c6a43f;hp=b70450e331ff0b22019bab679ae45e3b65bb6259;hpb=01513c3e18c936a1b83207c38744f3a403461b86;p=lttng-tools.git diff --git a/tests/regression/tools/mi/test_mi b/tests/regression/tools/mi/test_mi index b70450e33..5bd29ed4d 100755 --- a/tests/regression/tools/mi/test_mi +++ b/tests/regression/tools/mi/test_mi @@ -27,11 +27,12 @@ RELAYD_BIN="lttng-relayd" TESTAPP_PATH="$TESTDIR/utils/testapp" TESTAPP_NAME="gen-ust-events" TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME" -NR_USEC_WAIT=10000 - +NR_USEC_WAIT=0 +NR_ITER=10000 #Temp file output OUTPUT_DIR=$(mktemp -d) +FOO_LOAD_DIR=$(mktemp -d) OUTPUT_FILE="default.xml" #Path to custom xml utilities @@ -62,7 +63,7 @@ source $TESTDIR/utils/utils.sh #Overwrite the lttng_bin to get mi output LTTNG_BIN="lttng --mi xml" -#Global devlaration for simplification +#Global declaration for simplification LTTNG=$TESTDIR/../src/bin/lttng/$LTTNG_BIN #Overwrite the default output for utils.sh command @@ -139,18 +140,18 @@ function test_create_session () OUTPUT_FILE="create_session.xml" OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE - create_lttng_session $session_name $OUTPUT_DIR + create_lttng_session_ok $session_name $OUTPUT_DIR $XML_VALIDATE $OUTPUT_DEST ok $? "MI test: create session xsd validation" #try to recreate a session. Expecting it to fail - create_lttng_session $session_name $OUTPUT_DIR true + create_lttng_session_fail $session_name $OUTPUT_DIR $XML_VALIDATE $OUTPUT_DEST ok $? "MI test: expecting fail create session xsd validation" is_command_success $OUTPUT_DEST true OUTPUT_DEST=$DEVNULL - destroy_lttng_session $session_name + destroy_lttng_session_ok $session_name } function test_destroy_session () @@ -165,11 +166,11 @@ function test_destroy_session () #Test build up OUTPUT_DEST=$DEVNULL for (( i = 0; i < 3; i++ )); do - create_lttng_session ${session_name[$i]} $OUTPUT_DIR + create_lttng_session_ok ${session_name[$i]} $OUTPUT_DIR done OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE - destroy_lttng_session ${session_name[0]} + destroy_lttng_session_ok ${session_name[0]} $XML_VALIDATE $OUTPUT_DEST ok $? "MI test: destroy session ${session_name[0]} xsd validation" @@ -190,7 +191,7 @@ function test_destroy_session () ok $? "Mi test: $num / 2 sessions discovered" #Verify that if no session is present command fail and mi report it. - destroy_lttng_session ${session_name[0]} 1 + destroy_lttng_session_fail ${session_name[0]} $XML_VALIDATE $OUTPUT_DEST ok $? "MI test: failing destroy session ${session_name[0]} xsd validation" extract_xml $OUTPUT_DEST $XPATH_COMMAND_SUCCESS result @@ -211,7 +212,7 @@ function test_list_sessions () #Test buid up OUTPUT_DEST=$DEVNULL for (( i = 0; i < 3; i++ )); do - create_lttng_session ${session_name[$i]} $OUTPUT_DIR + create_lttng_session_ok ${session_name[$i]} $OUTPUT_DIR done OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE @@ -241,24 +242,24 @@ function test_ust_channel () #Test buil up OUTPUT_DEST=$DEVNULL - create_lttng_session $session_name $OUTPUT_DIR + create_lttng_session_ok $session_name $OUTPUT_DIR #Test the enable_channel command OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE - enable_ust_lttng_channel $session_name ${channel_name[0]} + enable_ust_lttng_channel_ok $session_name ${channel_name[0]} $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: enable ust channel xsd validation" is_command_success $OUTPUT_DEST false #Expect the command to fail - enable_ust_lttng_channel $session_name ${channel_name[0]} true + enable_ust_lttng_channel_fail $session_name ${channel_name[0]} $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: fail enable ust channel xsd validation" is_command_success $OUTPUT_DEST true #Create two ust channel to test multiple disable for (( i = 1; i < 3; i++ )); do - enable_ust_lttng_channel $session_name ${channel_name[$i]} + enable_ust_lttng_channel_ok $session_name ${channel_name[$i]} done #Test the disable_channel command @@ -299,18 +300,18 @@ function test_ust_lttng_event () #Test build up OUTPUT_DEST=$DEVNULL - create_lttng_session $session_name $OUTPUT_DIR - enable_ust_lttng_channel $session_name $channel_name + create_lttng_session_ok $session_name $OUTPUT_DIR + enable_ust_lttng_channel_ok $session_name $channel_name OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE #Test the enable event for ust domain - enable_ust_lttng_event $session_name ${event[0]} $channel_name + enable_ust_lttng_event_ok $session_name ${event[0]} $channel_name $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: Enable_event for ust domain xsd validation" is_command_success $OUTPUT_DEST false #Try to reenable an enabled event. Should fail - enable_ust_lttng_event $session_name ${event[0]} $channel_name true + enable_ust_lttng_event_fail $session_name ${event[0]} $channel_name $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: Fail enable_event for ust domain xsd validation" is_command_success $OUTPUT_DEST true @@ -323,11 +324,11 @@ function test_ust_lttng_event () #Event[*] print all the element inside the array with the IFS in between concat_event=$( IFS=$','; echo "${event[*]}" ) - enable_ust_lttng_event $session_name $concat_event $channel_name true + enable_ust_lttng_event_fail $session_name $concat_event $channel_name $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: Multiple enable ust event with inside fail xsd validation" - #Check for 2 success = true et 1 false + #Check for 2 success = true and 1 success = false extract_xml $OUTPUT_DEST $XPATH_ENABLE_EVENT_SUCCESS result num_ocur=$(grep -o "true" <<< "$result" | wc -l) test "$num_ocur" -eq "2" @@ -371,12 +372,12 @@ function test_list_channel () #Test buid up OUTPUT_DEST=$DEVNULL - create_lttng_session $session_name $OUTPUT_DIR - enable_ust_lttng_channel $session_name $channel_name + create_lttng_session_ok $session_name $OUTPUT_DIR + enable_ust_lttng_channel_ok $session_name $channel_name #Enable ust and jul events concat_event=$( IFS=$','; echo "${event[*]}" ) - enable_ust_lttng_event $session_name $concat_event $channel_name + enable_ust_lttng_event_ok $session_name $concat_event $channel_name #Begin testing OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE @@ -401,7 +402,7 @@ function test_list_channel () #Add a channel and make sure we have 2 channel now OUTPUT_DEST=$DEVNULL - enable_ust_lttng_channel $session_name $channel_name"a" + enable_ust_lttng_channel_ok $session_name $channel_name"a" #Teardown OUTPUT_DEST=$DEVNULL @@ -418,12 +419,12 @@ function test_list_domain () #Test buid up OUTPUT_DEST=$DEVNULL - create_lttng_session $session_name $OUTPUT_DIR - enable_ust_lttng_channel $session_name $channel_name + create_lttng_session_ok $session_name $OUTPUT_DIR + enable_ust_lttng_channel_ok $session_name $channel_name #Enable ust and jul events concat_event=$( IFS=$','; echo "${event[*]}" ) - enable_ust_lttng_event $session_name $concat_event $channel_name + enable_ust_lttng_event_ok $session_name $concat_event $channel_name enable_jul_lttng_event $session_name $concat_event $channel_name #Begin testing @@ -466,12 +467,12 @@ function test_list_session () #Test buid up OUTPUT_DEST=$DEVNULL - create_lttng_session $session_name $OUTPUT_DIR - enable_ust_lttng_channel $session_name $channel_name + create_lttng_session_ok $session_name $OUTPUT_DIR + enable_ust_lttng_channel_ok $session_name $channel_name #Enable ust and jul events concat_event=$( IFS=$','; echo "${event[*]}" ) - enable_ust_lttng_event $session_name $concat_event $channel_name + enable_ust_lttng_event_ok $session_name $concat_event $channel_name enable_jul_lttng_event $session_name $concat_event $channel_name #Begin testing @@ -499,32 +500,50 @@ function test_list_session () function test_list_ust_event () { + local file_sync_after_first=$(mktemp -u) + local file_sync_before_last=$(mktemp -u) + OUTPUT_FILE="list_ust_event.xml" #Test buid up OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE #Begin testing - $TESTAPP_BIN $NR_USEC_WAIT & 2>/dev/null + $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT ${file_sync_after_first} ${file_sync_before_last} & 2>/dev/null + + while [ ! -f "${file_sync_after_first}" ]; do + sleep 0.5 + done + list_lttng_with_opts "-u -f" + + touch ${file_sync_before_last} + $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: list ust event xsd validation" - #Extract events 3 events should be present + #Extract events extract_xml $OUTPUT_DEST "$XPATH_LIST_UST_EVENT""/name/text()" result num=$(echo "$result" | wc -l) - test "$num" -eq "3" - ok $? "Mi test: $num / 3 ust events discovered" - #Extract field from tp:tptest event. Expect 12 + #Since the number of events is prone to change we only look for >= from a + #base number. An alternative would be to look for each events but this + #is complicated for nothing. + test "$num" -ge "5" + ok $? "Mi test: $num / 5 ust events discovered" + + #Extract field from tp:tptest event. Expect >= to 12 because number of + #field is prone to change. extract_xml $OUTPUT_DEST "$XPATH_LIST_UST_EVENT""[./name = 'tp:tptest']/event_fields/event_field/name/text()" result num=$(echo "$result" | wc -l) - test "$num" -eq "12" + test "$num" -ge "12" ok $? "Mi test: $num / 12 ust event fields discovered" - #Wait for last forked process - wait $! + #Wait for all background processes + wait + rm -f ${file_sync_after_first} + rm -f ${file_sync_before_last} } function test_start_stop () { @@ -535,12 +554,12 @@ function test_start_stop () { #Test buid up OUTPUT_DEST=$DEVNULL - create_lttng_session $session_name $OUTPUT_DIR + create_lttng_session_ok $session_name $OUTPUT_DIR #Test fail command #No channel enable start command should return element success false OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE - start_lttng_tracing $session_name 1 + start_lttng_tracing_fail $session_name $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: failed start xsd validation" @@ -551,11 +570,11 @@ function test_start_stop () { #Enable a channel to test success OUTPUT_DEST=$DEVNULL - enable_ust_lttng_channel $session_name $channel_name + enable_ust_lttng_channel_ok $session_name $channel_name #Start tracing OUTPUT_DEST=$OUTPUT_DIR/$OUTPUT_FILE - start_lttng_tracing $session_name + start_lttng_tracing_ok $session_name $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: start xsd validation" @@ -575,7 +594,7 @@ function test_start_stop () { ok $? "Mi test: enabled element : $result expected: true" #Test stop command - stop_lttng_tracing $session_name + stop_lttng_tracing_ok $session_name $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: stop xsd validation" @@ -590,7 +609,7 @@ function test_start_stop () { ok $? "Mi test: enabled element : $result expected: false" #Test failing stop command - stop_lttng_tracing $session_name 1 + stop_lttng_tracing_fail $session_name $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: failed stop xsd validation" @@ -602,7 +621,6 @@ function test_start_stop () { #Teardown OUTPUT_DEST=$DEVNULL destroy_lttng_sessions - } function test_snapshot () { @@ -618,7 +636,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 $session_name $snapshot_path + lttng_snapshot_add_output_ok $session_name $snapshot_path $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: snapshot xsd validation" @@ -651,7 +669,7 @@ function test_snapshot () { ok $? "Mi test: snapshot list extracted snapshot: $result expected: $snapshot_name" #Test del output - lttng_snapshot_del_output $session_name $snapshot_id + lttng_snapshot_del_output_ok $session_name $snapshot_id $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: snapshot delete xsd validation" @@ -670,7 +688,7 @@ function test_snapshot () { ok $? "Mi test: snapshot del extracted snapshot id: $result expected: $session_name" #Test fail on delete command - lttng_snapshot_del_output $session_name $snapshot_id 1 + lttng_snapshot_del_output_fail $session_name $snapshot_id $XML_VALIDATE $OUTPUT_DEST ok $? "Mi test: snapshot delete xsd validation" @@ -683,7 +701,7 @@ function test_snapshot () { destroy_lttng_sessions } -start_lttng_sessiond +start_lttng_sessiond $FOO_LOAD_DIR TESTS=( test_version test_create_session