CURDIR=$(dirname $0)/
TESTDIR=$CURDIR/../../..
-NR_ITER=1000
+NR_ITER=-1 # infinite loop
NR_USEC_WAIT=1000000
TESTAPP_PATH="$TESTDIR/utils/testapp"
TESTAPP_NAME="gen-ust-events"
EVENT_NAME="tp:tptest"
TEST_WAIT_SEC=5
NUM_TESTS=9
+APPS_PID=
source $TESTDIR/utils/utils.sh
start_lttng_sessiond
-# Start test for 1000 seconds
+# Start tests. Each is an infinite tracing loop.
+diag "Starting $NUM_PROCESS test applications"
for i in `seq 1 $NUM_PROCESS`
do
$TESTAPP_BIN $NR_ITER $NR_USEC_WAIT >/dev/null 2>&1 &
+ APPS_PID="${APPS_PID} ${!}"
done
+#FIXME: racy missing synchronization
+
+diag "Waiting for applications to be registered to sessiond"
+
reg_app_count=0
while [ $reg_app_count -ne $NUM_PROCESS ]; do
listing=$($TESTDIR/../src/bin/lttng/$LTTNG_BIN list -u)
reg_app_count=$(echo -n $listing | sed "s#$TESTAPP_BIN#$TESTAPP_BIN\n#g" | grep "$TESTAPP_BIN" | wc -l)
done
-pass "Trace validation"
+pass "All applications are registered to sessiond"
TRACE_PATH=$(mktemp -d)
enable_ust_lttng_event $SESSION_NAME $EVENT_NAME
start_lttng_tracing $SESSION_NAME
-diag "Sleeping $TEST_WAIT_SEC seconds for tracing to start everywhere"
-diag "Warning: this arbitrary time can make the test fail on slower system"
-
-sleep $TEST_WAIT_SEC
+# We don't validate whether the applications have traced here, rather
+# just that they registered to sessiond (above).
stop_lttng_tracing $SESSION_NAME
destroy_lttng_session $SESSION_NAME
+#FIXME/TODO: add validation after fixing racy synchroniaation
+
rm -rf $TRACE_PATH
-while [ -n "$(pidof $TESTAPP_NAME)" ]; do
- killall -q $TESTAPP_NAME >/dev/null 2>&1
- sleep 0.5
+diag "Stopping all spawned applications"
+for p in ${APPS_PID}; do
+ kill ${p}
+ wait ${p} 2>/dev/null
done
-
-
-pass "Kill all spawned applications"
+APPS_PID=
+pass "Stopped all spawned applications"
stop_lttng_sessiond