X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Fregression%2Fust%2Fperiodical-metadata-flush%2Ftest_periodical_metadata_flush;h=53db813e1758e0921b02c7a45a496053be769929;hp=e836956437cff90e1dbab7447c84a054ef334c5d;hb=c76133340787e9dd20ce56fdb9a5a6f4cbfe0067;hpb=8c93562f396a3e785c5193ca32b40f1f16599a6a diff --git a/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush b/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush index e83695643..53db813e1 100755 --- a/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush +++ b/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush @@ -28,6 +28,7 @@ EVENT_NAME="tp:tptest" BIN_NAME="gen-nevents" NUM_TESTS=38 APP_TMP_FILE="/tmp/lttng_test_ust.42.file" +APPS_PID= source $TESTDIR/utils/utils.sh @@ -73,14 +74,6 @@ function enable_metadata_per_pid() ok $? "Enable channel $channel_name per PID for session $sess_name" } -function wait_apps -{ - diag "Waiting for applications to end..." - while [ -n "$(pidof $TESTAPP_NAME)" ]; do - sleep 1 - done -} - function validate_trace() { local out @@ -114,7 +107,9 @@ function start_trace_app() { # Start application with a temporary file. $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT $APP_TMP_FILE & - ok $? "Start application to trace" + ret=$? + APPS_PID="${APPS_PID} ${!}" + ok $ret "Start application to trace" } function start_check_trace_app() @@ -123,9 +118,20 @@ function start_check_trace_app() check_app_tmp_file } + +function wait_trace_apps() +{ + for p in ${APPS_PID}; do + wait ${p} 2>/dev/null + done + APPS_PID= +} + test_after_app_pid() { local out + APPS_PID= + diag "Start application AFTER tracing is started" create_lttng_session $SESSION_NAME $TRACE_PATH @@ -141,7 +147,9 @@ test_after_app_pid() { # Make sure the application does not generate any more data, # thus ensuring that we are not flushing a packet concurrently # with validate_trace. - killall -SIGSTOP -q $TESTAPP_NAME + for p in ${APPS_PID}; do + kill -s SIGSTOP ${p} + done # Give time to the consumer to write inflight data. sleep 2 @@ -149,11 +157,14 @@ test_after_app_pid() { validate_trace out=$? + for p in ${APPS_PID}; do + kill -s SIGKILL ${p} + wait ${p} 2>/dev/null + done stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME - killall -SIGKILL -q $TESTAPP_NAME - wait_apps + wait_trace_apps return $out } @@ -162,6 +173,8 @@ test_before_app_pid() { local out local tmp_file="/tmp/lttng_test_ust.42.file" + APPS_PID= + diag "Start application BEFORE tracing is started" start_trace_app @@ -180,7 +193,9 @@ test_before_app_pid() { # Make sure the application does not generate any more data, # thus ensuring that we are not flushing a packet concurrently # with validate_trace. - killall -SIGSTOP -q $TESTAPP_NAME + for p in ${APPS_PID}; do + kill -s SIGSTOP ${p} + done # Give time to the consumer to write inflight data. sleep 2 @@ -188,11 +203,15 @@ test_before_app_pid() { validate_trace out=$? + for p in ${APPS_PID}; do + kill -s SIGKILL ${p} + wait ${p} 2>/dev/null + done + stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME - killall -SIGKILL -q $TESTAPP_NAME - wait_apps + wait_trace_apps return $out } @@ -200,6 +219,8 @@ test_before_app_pid() { test_after_app_uid() { local out + APPS_PID= + diag "Start application AFTER tracing is started" create_lttng_session $SESSION_NAME $TRACE_PATH @@ -215,7 +236,10 @@ test_after_app_uid() { # Make sure the application does not generate any more data, # thus ensuring that we are not flushing a packet concurrently # with validate_trace. - killall -SIGSTOP -q $TESTAPP_NAME + for p in ${APPS_PID}; do + kill -s SIGSTOP ${p} + done + # Give time to the consumer to write inflight data. sleep 2 @@ -223,11 +247,14 @@ test_after_app_uid() { validate_trace out=$? + for p in ${APPS_PID}; do + kill -s SIGKILL ${p} + wait ${p} 2>/dev/null + done stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME - killall -SIGKILL -q $TESTAPP_NAME - wait_apps + wait_trace_apps return $out } @@ -235,6 +262,8 @@ test_after_app_uid() { test_before_app_uid() { local out + APPS_PID= + diag "Start application BEFORE tracing is started" # Start application before tracing @@ -253,7 +282,9 @@ test_before_app_uid() { # Make sure the application does not generate any more data, # thus ensuring that we are not flushing a packet concurrently # with validate_trace. - killall -SIGSTOP -q $TESTAPP_NAME + for p in ${APPS_PID}; do + kill -s SIGSTOP ${p} + done # Give time to the consumer to write inflight data. sleep 2 @@ -261,11 +292,14 @@ test_before_app_uid() { validate_trace out=$? + for p in ${APPS_PID}; do + kill -s SIGKILL ${p} + wait ${p} 2>/dev/null + done stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME - killall -SIGKILL -q $TESTAPP_NAME - wait_apps + wait_trace_apps return $out }