diff mbox series

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

Message ID 20170828215004.2426-2-jonathan.rajotte-julien@efficios.com
State Accepted, archived
Delegated to: Jérémie Galarneau
Headers show
Series [lttng-tools,1/2] Test: add file based synchronization point for python test app | expand

Commit Message

Jonathan Rajotte Aug. 28, 2017, 9:50 p.m. UTC
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(-)

Comments

Jérémie Galarneau Nov. 14, 2017, 12:26 a.m. UTC | #1
Merged, thanks!

Jérémie

On 28 August 2017 at 17:50, Jonathan Rajotte
<jonathan.rajotte-julien at efficios.com> wrote:
> 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
>
diff mbox series

Patch

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