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

Jérémie Galarneau jeremie.galarneau at efficios.com
Tue Nov 14 00:26:11 UTC 2017


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
>



-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com


More information about the lttng-dev mailing list