Gen-ust-events: use options instead of arguments
[lttng-tools.git] / tests / regression / ust / before-after / test_before_after
index cb1f8c2cd3ee6eb8e726691cfccb3f988cf9f943..237e21b916bb5567c489faa2dcb36fc874738a3f 100755 (executable)
@@ -19,78 +19,81 @@ TEST_DESC="UST tracer - Start tracing before and after execution"
 CURDIR=$(dirname $0)/
 TESTDIR=$CURDIR/../../..
 NR_ITER=100
+NR_USEC_WAIT=100000
+TESTAPP_PATH="$TESTDIR/utils/testapp"
+TESTAPP_NAME="gen-ust-events"
+TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
 SESSION_NAME="per-session"
-EVENT_NAME="ust_gen_nevents:tptest"
+EVENT_NAME="tp:tptest"
+NUM_TESTS=16
 
 source $TESTDIR/utils/utils.sh
 
-print_test_banner "$TEST_DESC"
-
-if [ ! -x "$CURDIR/gen-nevents" ]; then
-       echo -e "No UST nevents binary detected. Passing."
-       exit 0
+if [ ! -x "$TESTAPP_BIN" ]; then
+       BAIL_OUT "No UST nevents binary detected."
 fi
 
 # MUST set TESTDIR before calling those functions
 
-test_before_apps() {
-       local out
-
+function test_before_apps()
+{
        # BEFORE application is spawned
-       create_lttng_session $SESSION_NAME $TRACE_PATH
-       enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME
-       # Start test
-       echo -n "Starting application... "
-       ./$CURDIR/gen-nevents $NR_ITER
-       echo -n "Ended "
-       print_ok
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
-
-       trace_matches $EVENT_NAME $NR_ITER $TRACE_PATH
+       create_lttng_session_ok $SESSION_NAME $TRACE_PATH
+       enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME
+       start_lttng_tracing_ok $SESSION_NAME
+
+       $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT &
+       wait
+       ok $? "Traced application stopped."
+
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
+
+       trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH
 
        return $?
 }
 
-test_after_apps() {
+function test_after_apps()
+{
        local out
+       local file_sync_after_first=$(mktemp -u)
+       local file_sync_before_last=$(mktemp -u)
 
-       echo -n "Starting application... "
-       ./$CURDIR/gen-nevents 100 &
-       print_ok
+       create_lttng_session_ok $SESSION_NAME $TRACE_PATH
+       enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME
 
-       # BEFORE application is spawned
-       create_lttng_session $SESSION_NAME $TRACE_PATH
-       enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME
-
-       # At least hit one event
-       sleep 2
-
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
-
-       out=$(babeltrace $TRACE_PATH | grep $EVENT_NAME | wc -l)
-       if [ $out -eq 0 ]; then
-               echo -n "No event found. Suppose to have at least one... "
-               print_fail
-               out=1
-       else
-               echo -n "Found $out event(s). Coherent... "
-               print_ok
-               out=0
-       fi
+       $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} &
+       ok $? "Application started in background."
+
+       start_lttng_tracing_ok $SESSION_NAME
+
+       touch ${file_sync_before_last}
+
+       wait
+
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
+
+       rm -f ${file_sync_after_first}
+       rm -f ${file_sync_before_last}
+
+       validate_trace $EVENT_NAME $TRACE_PATH
+       out=$?
 
        return $out
 }
 
 # MUST set TESTDIR before calling those functions
+plan_tests $NUM_TESTS
+
+print_test_banner "$TEST_DESC"
 
 start_lttng_sessiond
 
-echo ""
-echo "=== Start application BEFORE tracing was started ==="
+diag "Start tracing BEFORE application is started"
 
 TRACE_PATH=$(mktemp -d)
 
@@ -103,8 +106,7 @@ fi
 
 rm -rf $TRACE_PATH
 
-echo ""
-echo "=== Start application AFTER tracing was started ==="
+diag "Start tracing AFTER application is started"
 
 TRACE_PATH=$(mktemp -d)
 
This page took 0.026368 seconds and 5 git commands to generate.