From d346ccad757068a5df142710ab5895f6ee93082b Mon Sep 17 00:00:00 2001 From: Christian Babeux Date: Thu, 21 Feb 2013 23:19:17 -0500 Subject: [PATCH] Tests: Convert the tools streaming tests output to TAP Signed-off-by: Christian Babeux --- .../streaming/test_high_throughput_limits | 82 +++++++++--------- tests/regression/tools/streaming/test_kernel | 83 +++++++++---------- .../tools/streaming/test_uri_switch | 44 +++++----- tests/regression/tools/streaming/test_ust | 20 +++-- 4 files changed, 112 insertions(+), 117 deletions(-) diff --git a/tests/regression/tools/streaming/test_high_throughput_limits b/tests/regression/tools/streaming/test_high_throughput_limits index e2f094d22..7c253ba84 100755 --- a/tests/regression/tools/streaming/test_high_throughput_limits +++ b/tests/regression/tools/streaming/test_high_throughput_limits @@ -31,19 +31,14 @@ DEFAULT_IF="lo" TRACE_PATH=$(mktemp -d) +NUM_TESTS=112 + source $TESTDIR/utils/utils.sh print_test_banner "$TEST_DESC" if [ ! -x "$CURDIR/$BIN_NAME" ]; then - echo -e "No UST nevents binary detected. Passing." - exit 0 -fi - -if [ "$(id -u)" != "0" ]; then - echo "This test must be running as root to set bandwidth limits. Aborting" - # Exit status 0 so the tests can continue - exit 0 + BAIL_OUT "No UST nevents binary detected." fi function set_bw_limit @@ -56,7 +51,7 @@ function set_bw_limit # parent qdisc (1:) will always limit us to the right max value dataportlimit=$((9*${ctrlportlimit})) - echo -n "Setting bandwidth limits to ${limit}kbits, (${ctrlportlimit} for control and ${dataportlimit} for data)... " + tc qdisc add dev $DEFAULT_IF root handle 1: htb default 15 >/dev/null 2>&1 # the total bandwidth is the limit set by the user @@ -70,14 +65,14 @@ function set_bw_limit tc filter add dev $DEFAULT_IF parent 1: protocol ip u32 match ip dport $SESSIOND_CTRL_PORT 0xffff flowid 1:10 >/dev/null 2>&1 # filter to assign data traffic to the 1:11 class tc filter add dev $DEFAULT_IF parent 1: protocol ip u32 match ip dport $SESSIOND_DATA_PORT 0xffff flowid 1:11 >/dev/null 2>&1 - print_ok + + ok $? "Set bandwidth limits to ${limit}kbits, ${ctrlportlimit} for control and ${dataportlimit} for data" } function reset_bw_limit { - echo -n "Resetting bandwidth limits... " tc qdisc del dev $DEFAULT_IF root >/dev/null 2>&1 - print_ok + ok $? "Reset bandwith limits" } function create_lttng_session_with_uri @@ -86,6 +81,7 @@ function create_lttng_session_with_uri uri=$2 # Create session with custom URI $TESTDIR/../src/bin/lttng/$LTTNG_BIN create -U $uri $sess_name >/dev/null 2>&1 + ok $? "Create session with uri $uri" } function enable_lttng_consumer @@ -93,6 +89,7 @@ function enable_lttng_consumer uri=$1 # Create session with custom URI $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-consumer -u $uri >/dev/null 2>&1 + ok $? "Enable consumer with uri $uri" } function run_apps @@ -108,12 +105,10 @@ function run_apps function wait_apps { - echo "Waiting for applications to end" while [ -n "$(pidof $BIN_NAME)" ]; do - echo -n "." sleep 1 done - echo "" + pass "Wait for applications to end" } function test_high_throughput @@ -125,7 +120,6 @@ function test_high_throughput start_lttng_tracing $SESSION_NAME run_apps wait_apps - stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME validate_event_count @@ -152,14 +146,13 @@ function validate_event_count let wanted=$NR_APP_ITER*$NR_ITER if [ $wanted -ne $total ]; then - echo -n "Expected $wanted. Dropped $dropped. Recorded $traced. Total $total... " - print_fail + fail "Validate trace event count" + diag "Expected $wanted. Dropped $dropped. Recorded $traced. Total $total... " return 1 else - echo -n "Expected $wanted. Dropped $dropped. Recorded $traced. Total $total... " - print_ok + pass "Validate trace event count" + diag "Expected $wanted. Dropped $dropped. Recorded $traced. Total $total... " - # Cleanup only if everything is ok and passes. rm -rf $TRACE_PATH rm $TEMP_FILE $TEMP_FILE_2 @@ -169,32 +162,39 @@ function validate_event_count function interrupt_cleanup() { - echo -en "\n*** Exiting ***\n" + diag "*** Exiting ***" stop_lttng_relayd stop_lttng_sessiond reset_bw_limit exit 1 } -# Catch sigint and try to cleanup limits -trap interrupt_cleanup SIGINT +plan_tests $NUM_TESTS -BW_LIMITS=(3200 1600 800 400 200 100 50 25) -for BW in ${BW_LIMITS[@]}; -do - echo "" - echo -e "=== Testing high-throughput with bandwidth limit set to ${BW}kbits" - set_bw_limit $BW +if [ "$(id -u)" == "0" ]; then + isroot=1 +else + isroot=0 +fi - start_lttng_sessiond - start_lttng_relayd "-o $TRACE_PATH" - test_high_throughput - result=$? - stop_lttng_relayd - stop_lttng_sessiond - reset_bw_limit +skip $isroot "Root access is needed to set bandwith limits. Skipping all tests." $NUM_TESTS || +{ - if [ $result -ne 0 ]; then - exit 1 - fi -done + # Catch sigint and try to cleanup limits + trap interrupt_cleanup SIGINT + + BW_LIMITS=(3200 1600 800 400 200 100 50 25) + for BW in ${BW_LIMITS[@]}; + do + diag "Test high-throughput with bandwidth limit set to ${BW}kbits" + set_bw_limit $BW + + start_lttng_sessiond + start_lttng_relayd "-o $TRACE_PATH" + test_high_throughput + result=$? + stop_lttng_relayd + stop_lttng_sessiond + reset_bw_limit + done +} diff --git a/tests/regression/tools/streaming/test_kernel b/tests/regression/tools/streaming/test_kernel index f8b813d28..42df7b0d5 100755 --- a/tests/regression/tools/streaming/test_kernel +++ b/tests/regression/tools/streaming/test_kernel @@ -24,41 +24,29 @@ SESSION_NAME="" TRACE_PATH=$(mktemp -d) +NUM_TESTS=11 + source $TESTDIR/utils/utils.sh print_test_banner "$TEST_DESC" -if [ "$(id -u)" != "0" ]; then - echo "This test must be running as root. Aborting" - # Exit status 0 so the tests can continue - exit 0 -fi - # LTTng kernel modules check out=`ls /lib/modules/$(uname -r)/extra | grep lttng` if [ -z "$out" ]; then - echo "LTTng modules not detected. Aborting kernel tests!" - echo "" - # Exit status 0 so the tests can continue - exit 0 + BAIL_OUT "LTTng modules not detected." fi function lttng_create_session_uri { - echo -n "Creating session $SESSION_NAME... " # Create session with default path $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $SESSION_NAME -U net://localhost >/dev/null 2>&1 - if [ $? -eq 1 ]; then - print_fail - return 1 - else - print_ok - fi + + ok $? "Create session $SESSION_NAME" } function test_kernel_before_start () { - echo -e "\n=== Testing kernel streaming with event enable BEFORE start\n" + diag "Test kernel streaming with event enable BEFORE start" lttng_create_session_uri lttng_enable_kernel_event $SESSION_NAME $EVENT_NAME start_lttng_tracing $SESSION_NAME @@ -69,19 +57,17 @@ function test_kernel_before_start () # We can not predict _yet_ when the trace is available so we have to do a # arbitratry sleep to validate the trace. - echo -n "Waiting 3 seconds for the trace to be written on disk " + diag "Wait 3 seconds for the trace to be written on disk" for i in `seq 1 3`; do - echo -n "." sleep 1 done - echo "" } # Deactivated since this feature is not yet available where we can enable # an event AFTERE tracing has started. function test_kernel_after_start () { - echo -e "\n=== Testing kernel streaming with event enable AFTER start\n" + diag "Test kernel streaming with event enable AFTER start" lttng_create_session_uri start_lttng_tracing $SESSION_NAME lttng_enable_kernel_event $SESSION_NAME $EVENT_NAME @@ -91,29 +77,36 @@ function test_kernel_after_start () destroy_lttng_session $SESSION_NAME } -start_lttng_sessiond -start_lttng_relayd "-o $TRACE_PATH" - -tests=( test_kernel_before_start ) - -for fct_test in ${tests[@]}; -do - SESSION_NAME=$(randstring 16 0) - ${fct_test} +plan_tests $NUM_TESTS - # Validate test - validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$SESSION_NAME* - if [ $? -eq 0 ]; then - # Only delete if successful - rm -rf $TRACE_PATH - else - break - fi -done - -echo "" -stop_lttng_sessiond -stop_lttng_relayd +if [ "$(id -u)" == "0" ]; then + isroot=1 +else + isroot=0 +fi +skip $isroot "Root access is needed. Skipping all kernel streaming tests." $NUM_TESTS || +{ + start_lttng_sessiond + start_lttng_relayd "-o $TRACE_PATH" + + tests=( test_kernel_before_start ) + + for fct_test in ${tests[@]}; + do + SESSION_NAME=$(randstring 16 0) + ${fct_test} + + # Validate test + validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$SESSION_NAME* + if [ $? -eq 0 ]; then + # Only delete if successful + rm -rf $TRACE_PATH + else + break + fi + done -exit $out + stop_lttng_sessiond + stop_lttng_relayd +} diff --git a/tests/regression/tools/streaming/test_uri_switch b/tests/regression/tools/streaming/test_uri_switch index 06a3fbcd4..c340bd597 100755 --- a/tests/regression/tools/streaming/test_uri_switch +++ b/tests/regression/tools/streaming/test_uri_switch @@ -26,13 +26,14 @@ PID_RELAYD=0 TRACE_PATH=$(mktemp -d) +NUM_TESTS=186 + source $TESTDIR/utils/utils.sh print_test_banner "$TEST_DESC" if [ ! -x "$CURDIR/$BIN_NAME" ]; then - echo -e "No UST nevents binary detected. Skipping." - exit 0 + BAIL_OUT "No UST nevents binary detected. Skipping." fi function lttng_create_session @@ -40,6 +41,7 @@ function lttng_create_session URI=$1 # Create session with custom URI $TESTDIR/../src/bin/lttng/$LTTNG_BIN create -U $URI $SESSION_NAME >/dev/null 2>&1 + ok $? "Create session with uri $URI" } function lttng_enable_consumer @@ -47,6 +49,7 @@ function lttng_enable_consumer URI=$1 # Create session with custom URI $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-consumer -u $URI >/dev/null 2>&1 + ok $? "Enable consumer with uri $URI" } function run_apps @@ -55,23 +58,21 @@ function run_apps COUNT=5 APP_DELAY=1000000 ./$CURDIR/$BIN_NAME $COUNT $APP_DELAY >/dev/null 2>&1 & - } function wait_apps { - echo -n "Waiting for applications to end" while [ -n "$(pidof $BIN_NAME)" ]; do - echo -n "." sleep 0.5 done - echo "" + pass "Wait for applications to end" } function test_uri_switch_localhost_folder { IPVER=$1 - echo -e "\n=== Testing switch of localhost folder ($IPVER)\n" + + diag "Test switch of localhost folder ($IPVER)" if [ "$IPVER" == "IPv6" ]; then BASE_URI="net6://localhost" @@ -85,7 +86,6 @@ function test_uri_switch_localhost_folder lttng_create_session $BASE_URI - echo -e "Randomizing output folder on $BASE_URI..." while [ "$i" -le $RANDCOUNT ] do RAND=$(randstring 16 0) @@ -93,6 +93,8 @@ function test_uri_switch_localhost_folder let "i += 1" done + pass "Randomize output folder on $BASE_URI" + enable_ust_lttng_event $SESSION_NAME $EVENT_NAME start_lttng_tracing $SESSION_NAME run_apps @@ -102,16 +104,16 @@ function test_uri_switch_localhost_folder validate_trace $EVENT_NAME $TRACE_PATH/$HOSTNAME/$RAND if [ $? -eq 0 ]; then - # Only delete if successful - rm -rf $TRACE_PATH + # Only delete if successful + rm -rf $TRACE_PATH fi } function test_uri_switch_file_network { IPVER=$1 - echo "" - echo -e "=== Testing switch file -> network ($IPVER)" + + diag "Test switch file -> network ($IPVER)" TMP_PATH=$(mktemp -d) FILE_URI="file://$TMP_PATH" @@ -129,8 +131,7 @@ function test_uri_switch_file_network for NET_PATH in ${NET_PATHS[@]}; do SESSION_NAME=$(randstring 16 0) - echo "" - echo "$FILE_URI -> $NETWORK_URI/$NET_PATH" + diag "$FILE_URI -> $NETWORK_URI/$NET_PATH" lttng_create_session $FILE_URI lttng_enable_consumer "$NETWORK_URI/$NET_PATH" @@ -155,9 +156,8 @@ function test_uri_switch_file_network function test_uri_switch_network_file { -IPVER=$1 - echo "" - echo -e "=== Testing switch network ($IPVER) -> file" + IPVER=$1 + diag "Test switch network ($IPVER) -> file" if [ "$IPVER" == "IPv6" ]; then NETWORK_URI="net6://localhost" @@ -173,8 +173,7 @@ IPVER=$1 FILE_URI="file://$TMP_PATH" SESSION_NAME=$(randstring 16 0) - echo "" - echo "$NETWORK_URI -> $FILE_URI/$FILE_PATH" + diag "$NETWORK_URI -> $FILE_URI/$FILE_PATH" lttng_create_session $NETWORK_URI lttng_enable_consumer "$FILE_URI/$FILE_PATH" @@ -195,19 +194,18 @@ IPVER=$1 done } +plan_tests $NUM_TESTS start_lttng_sessiond -echo "" -echo "=== Testing with IPv4" +diag "Test with IPv4" start_lttng_relayd "-o $TRACE_PATH" test_uri_switch_localhost_folder "IPv4" test_uri_switch_file_network "IPv4" test_uri_switch_network_file "IPv4" stop_lttng_relayd -echo "" -echo "=== Testing with IPv6" +diag "Test with IPv6" start_lttng_relayd "-o $TRACE_PATH -C tcp6://localhost:5342 -D tcp6://localhost:5343" test_uri_switch_localhost_folder "IPv6" test_uri_switch_file_network "IPv6" diff --git a/tests/regression/tools/streaming/test_ust b/tests/regression/tools/streaming/test_ust index 6e6e5a752..95c833dff 100755 --- a/tests/regression/tools/streaming/test_ust +++ b/tests/regression/tools/streaming/test_ust @@ -25,36 +25,37 @@ PID_RELAYD=0 TRACE_PATH=$(mktemp -d) +NUM_TESTS=20 + source $TESTDIR/utils/utils.sh print_test_banner "$TEST_DESC" if [ ! -x "$CURDIR/$BIN_NAME" ]; then - echo -e "No UST nevents binary detected. Passing." - exit 0 + BAIL_OUT "No UST nevents binary detected." fi function lttng_create_session_uri { # Create session with default path $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $SESSION_NAME -U net://localhost >/dev/null 2>&1 + ok $? "Create session with default path" } function wait_apps { - echo -n "Waiting for applications to end" + while [ -n "$(pidof $BIN_NAME)" ]; do - echo -n "." sleep 0.5 done - echo "" + pass "Wait for applications to end" } # MUST set TESTDIR before calling those functions function test_ust_before_start () { - echo -e "\n=== Testing UST streaming BEFORE tracing starts\n" + diag "Test UST streaming BEFORE tracing starts" lttng_create_session_uri enable_ust_lttng_event $SESSION_NAME $EVENT_NAME @@ -64,13 +65,14 @@ function test_ust_before_start () start_lttng_tracing $SESSION_NAME wait_apps + stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME } function test_ust_after_start () { - echo -e "\n=== Testing UST streaming AFTER tracing starts\n" + diag "Test UST streaming AFTER tracing starts" lttng_create_session_uri enable_ust_lttng_event $SESSION_NAME $EVENT_NAME start_lttng_tracing $SESSION_NAME @@ -79,10 +81,13 @@ function test_ust_after_start () ./$CURDIR/$BIN_NAME 5 1000000 >/dev/null 2>&1 & wait_apps + stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME } +plan_tests $NUM_TESTS + start_lttng_sessiond start_lttng_relayd "-o $TRACE_PATH" @@ -103,7 +108,6 @@ do fi done -echo "" stop_lttng_sessiond stop_lttng_relayd -- 2.34.1