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
#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
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 ()
#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"
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
#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
#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
#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
#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"
#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
#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
#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
#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
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 () {
#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"
#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"
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"
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"
#Teardown
OUTPUT_DEST=$DEVNULL
destroy_lttng_sessions
-
}
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"
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"
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"
destroy_lttng_sessions
}
-start_lttng_sessiond
+start_lttng_sessiond $FOO_LOAD_DIR
TESTS=(
test_version
test_create_session