Gen-ust-events: use options instead of arguments
[lttng-tools.git] / tests / regression / ust / before-after / test_before_after
index 6a5776e23a7441ef6aa60982e436ec65eab5290e..237e21b916bb5567c489faa2dcb36fc874738a3f 100755 (executable)
@@ -19,66 +19,69 @@ 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
+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
+       create_lttng_session_ok $SESSION_NAME $TRACE_PATH
+       enable_ust_lttng_event_ok $SESSION_NAME $EVENT_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
-       ./$CURDIR/gen-nevents $NR_ITER
-       ok $? "Start application to trace"
+       $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT &
+       wait
+       ok $? "Traced application stopped."
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
-       trace_matches $EVENT_NAME $NR_ITER $TRACE_PATH
+       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)
 
-       ./$CURDIR/gen-nevents 100 &
-       ok $? "Start application to trace"
+       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
-               fail "Trace validation"
-               diag "No event(s) found. We are supposed to have at least one."
-               out=1
-       else
-               pass "Trace validation"
-               diag "Found $out event(s). Coherent."
-               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
 }
@@ -86,9 +89,11 @@ test_after_apps() {
 # MUST set TESTDIR before calling those functions
 plan_tests $NUM_TESTS
 
+print_test_banner "$TEST_DESC"
+
 start_lttng_sessiond
 
-diag "Start application BEFORE tracing was started"
+diag "Start tracing BEFORE application is started"
 
 TRACE_PATH=$(mktemp -d)
 
@@ -101,7 +106,7 @@ fi
 
 rm -rf $TRACE_PATH
 
-diag "Start application AFTER tracing was started"
+diag "Start tracing AFTER application is started"
 
 TRACE_PATH=$(mktemp -d)
 
This page took 0.025585 seconds and 5 git commands to generate.