X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=tests%2Fregression%2Fust%2Fperiodical-metadata-flush%2Ftest_periodical_metadata_flush;h=e836956437cff90e1dbab7447c84a054ef334c5d;hb=b06d6a6f7c9aee604011ea52f084719501aaf6aa;hp=1a2ff96557782d11d4bcbf9e3509e4068f49c1dd;hpb=2345b91fe4d88812a0cfe96040d7c87b01f0380b;p=lttng-tools.git 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 1a2ff9655..e83695643 100755 --- a/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush +++ b/tests/regression/ust/periodical-metadata-flush/test_periodical_metadata_flush @@ -27,6 +27,7 @@ SESSION_NAME="periodical-flush" EVENT_NAME="tp:tptest" BIN_NAME="gen-nevents" NUM_TESTS=38 +APP_TMP_FILE="/tmp/lttng_test_ust.42.file" source $TESTDIR/utils/utils.sh @@ -98,6 +99,30 @@ function validate_trace() return $out } +function check_app_tmp_file() +{ + # Wait for the application file to appear indicating that at least one + # tracepoint has been fired. + while [ ! -f "$APP_TMP_FILE" ]; do + sleep 0.5 + done + diag "Removing test app temporary file $APP_TMP_FILE" + rm -f $APP_TMP_FILE +} + +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" +} + +function start_check_trace_app() +{ + start_trace_app + check_app_tmp_file +} + test_after_app_pid() { local out @@ -110,16 +135,15 @@ test_after_app_pid() { start_lttng_tracing $SESSION_NAME # Start application after tracing - $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT - ok $? "Start application to trace" - - # At least hit one event - sleep 2 + start_check_trace_app + # After this point we are sure that at least one event has been hit. # Make sure the application does not generate any more data, # thus ensuring that we are not flushing a packet concurrently # with validate_trace. - killall -q $TESTAPP_NAME + killall -SIGSTOP -q $TESTAPP_NAME + + # Give time to the consumer to write inflight data. sleep 2 validate_trace @@ -128,16 +152,19 @@ test_after_app_pid() { stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME + killall -SIGKILL -q $TESTAPP_NAME + wait_apps + return $out } test_before_app_pid() { local out + local tmp_file="/tmp/lttng_test_ust.42.file" diag "Start application BEFORE tracing is started" - $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT & - ok $? "Start application to trace" + start_trace_app # Start application before tracing create_lttng_session $SESSION_NAME $TRACE_PATH @@ -146,13 +173,16 @@ test_before_app_pid() { enable_ust_lttng_event $SESSION_NAME $EVENT_NAME "channel0" start_lttng_tracing $SESSION_NAME - # At least hit one event + check_app_tmp_file + # Let the application at least perform a flush! sleep 2 # Make sure the application does not generate any more data, # thus ensuring that we are not flushing a packet concurrently # with validate_trace. - killall -q $TESTAPP_NAME + killall -SIGSTOP -q $TESTAPP_NAME + + # Give time to the consumer to write inflight data. sleep 2 validate_trace @@ -161,6 +191,7 @@ test_before_app_pid() { stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME + killall -SIGKILL -q $TESTAPP_NAME wait_apps return $out @@ -178,16 +209,15 @@ test_after_app_uid() { start_lttng_tracing $SESSION_NAME # Start application after tracing - $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT - ok $? "Start application to trace" - - # At least hit one event - sleep 2 + start_check_trace_app + # After this point we are sure that at least one event has been hit. # Make sure the application does not generate any more data, # thus ensuring that we are not flushing a packet concurrently # with validate_trace. - killall -q $TESTAPP_NAME + killall -SIGSTOP -q $TESTAPP_NAME + + # Give time to the consumer to write inflight data. sleep 2 validate_trace @@ -196,6 +226,9 @@ test_after_app_uid() { stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME + killall -SIGKILL -q $TESTAPP_NAME + wait_apps + return $out } @@ -204,9 +237,8 @@ test_before_app_uid() { diag "Start application BEFORE tracing is started" - # Start application after tracing - $TESTAPP_BIN $NR_ITER $NR_USEC_WAIT & - ok $? "Start application to trace" + # Start application before tracing + start_trace_app create_lttng_session $SESSION_NAME $TRACE_PATH enable_metadata_per_uid $SESSION_NAME @@ -214,13 +246,16 @@ test_before_app_uid() { enable_ust_lttng_event $SESSION_NAME $EVENT_NAME "channel0" start_lttng_tracing $SESSION_NAME - # At least hit one event + check_app_tmp_file + # Let the application at least perform a flush! sleep 2 # Make sure the application does not generate any more data, # thus ensuring that we are not flushing a packet concurrently # with validate_trace. - killall -q $TESTAPP_NAME + killall -SIGSTOP -q $TESTAPP_NAME + + # Give time to the consumer to write inflight data. sleep 2 validate_trace @@ -229,6 +264,7 @@ test_before_app_uid() { stop_lttng_tracing $SESSION_NAME destroy_lttng_session $SESSION_NAME + killall -SIGKILL -q $TESTAPP_NAME wait_apps return $out