[lttng-dev] [PATCH lttng-tools 2/2] Fix: use file based synchronization for python logging test

Jonathan Rajotte jonathan.rajotte-julien at efficios.com
Mon Aug 28 21:50:04 UTC 2017


No synchronization yield unstable result on a stressed system.

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien at efficios.com>
---
 .../ust/python-logging/test_python_logging.in      | 38 +++++++++++++++-------
 1 file changed, 27 insertions(+), 11 deletions(-)

diff --git a/tests/regression/ust/python-logging/test_python_logging.in b/tests/regression/ust/python-logging/test_python_logging.in
index 42c30572..2b5852c2 100755
--- a/tests/regression/ust/python-logging/test_python_logging.in
+++ b/tests/regression/ust/python-logging/test_python_logging.in
@@ -46,6 +46,8 @@ function run_app
 	local python=$1
 	local debug_tp=$2
 	local fire_second_tp=$3
+	local ready_file=$4
+	local go_file=$5
 	local opt=""
 
 	if [[ -n "$debug_tp" ]] && [ "$debug_tp" -eq "1" ]; then
@@ -56,12 +58,22 @@ function run_app
 		opt="${opt} -e"
 	fi
 
+	if [[ -n "$ready_file" ]]; then
+		opt="${opt} -r ${ready_file}"
+	fi
+
+	if [[ -n "$go_file" ]]; then
+		opt="${opt} -g ${go_file}"
+	fi
+
+	set -x
 	$python $TESTAPP_PATH/$TESTAPP_BIN -n $NR_ITER -s $NR_SEC_WAIT $opt
+	set +x
 }
 
 function run_app_background
 {
-	run_app $@ &
+	run_app "$@" &
 }
 
 function enable_python_loglevel_only()
@@ -107,16 +119,25 @@ function enable_python_filter_loglevel_only()
 
 function test_python_before_start ()
 {
+	local ready_file=$(mktemp -u)
+	local go_file=$(mktemp -u)
+
 	diag "Test Python application BEFORE tracing starts"
 	create_lttng_session_ok $SESSION_NAME $TRACE_PATH
 	enable_python_lttng_event $SESSION_NAME $EVENT_NAME
 
 	# Run 5 times with a 1 second delay
-	run_app_background $1
+	run_app_background $1 "" "" $ready_file $go_file
+
+	# Wait for ready file
+	while [ ! -e ${ready_file} ]; do
+		sleep 0.5
+	done
 
 	start_lttng_tracing_ok $SESSION_NAME
 
 	# Wait for the applications started in background
+	echo "1" > ${go_file}
 	wait
 
 	stop_lttng_tracing_ok $SESSION_NAME
@@ -127,6 +148,8 @@ function test_python_before_start ()
 	if [ $? -ne 0 ]; then
 		return $?
 	fi
+
+	rm $go_file
 }
 
 function test_python_after_start ()
@@ -532,10 +555,7 @@ function test_python_destroy_session()
 	start_lttng_tracing_ok $SESSION_NAME
 
 	# Run 5 times with a 1 second delay
-	run_app_background $1 0 1
-
-	# Wait for the applications started in background
-	wait
+	run_app $1 0 1
 
 	stop_lttng_tracing_ok $SESSION_NAME
 	destroy_lttng_session_ok $SESSION_NAME
@@ -550,11 +570,7 @@ function test_python_destroy_session()
 	enable_python_lttng_event $SESSION_NAME $EVENT_NAME2
 	start_lttng_tracing_ok $SESSION_NAME
 
-	# Run 5 times with a 1 second delay
-	run_app_background $1 0 1
-
-	# Wait for the applications started in background
-	wait
+	run_app $1 0 1
 
 	stop_lttng_tracing_ok $SESSION_NAME
 	destroy_lttng_session_ok $SESSION_NAME
-- 
2.11.0



More information about the lttng-dev mailing list