Tests: Fix flaky live test client
[lttng-tools.git] / tests / regression / ust / python-logging / test_python_logging
index 610e8a642baacf172b55ea9b274329d63749017b..b4fb4104e3d0fdcfd601c744fcf39cb00b101ba5 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/bash
 #
+# Copyright (C) - 2015 Philippe Proulx <pproulx@efficios.com>
 # Copyright (C) - 2014 David Goulet <dgoulet@efficios.com>
 #
 # This program is free software; you can redistribute it and/or modify it under
 # this program; if not, write to the Free Software Foundation, Inc., 51
 # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
-TEST_DESC="Java Python support"
+TEST_DESC="Python support"
 
 CURDIR=$(dirname $0)/
 TESTDIR=$CURDIR/../../..
 NR_ITER=5
 NR_SEC_WAIT=1
-TESTAPP_NAME="LTTngTest"
+TESTAPP_NAME="test"
 TESTAPP_BIN="$TESTAPP_NAME.py"
 TESTAPP_PATH="$CURDIR"
 SESSION_NAME="python-test"
@@ -29,16 +30,17 @@ EVENT_NAME="python-ev-test1"
 EVENT_NAME2="python-ev-test2"
 OUTPUT_DEST="/dev/null"
 
-NUM_TESTS=156
+NUM_TESTS=310
 
 source $TESTDIR/utils/utils.sh
 
 function run_app
 {
-       local debug_tp=$1
-       local fire_second_tp=$2
+       local python=$1
+       local debug_tp=$2
+       local fire_second_tp=$3
 
-       python $TESTAPP_PATH/$TESTAPP_BIN $NR_ITER $NR_SEC_WAIT $debug_tp $fire_second_tp
+       $python $TESTAPP_PATH/$TESTAPP_BIN $NR_ITER $NR_SEC_WAIT $debug_tp $fire_second_tp
 }
 
 function run_app_background
@@ -94,15 +96,15 @@ function test_python_before_start ()
        enable_python_lttng_event $SESSION_NAME $EVENT_NAME
 
        # Run 5 times with a 1 second delay
-       run_app_background
+       run_app_background $1
 
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Wait for the applications started in background
        wait
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting all events.
        trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH
@@ -117,13 +119,13 @@ function test_python_after_start ()
 
        create_lttng_session_ok $SESSION_NAME $TRACE_PATH
        enable_python_lttng_event $SESSION_NAME $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay
-       run_app
+       run_app $1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting all events.
        trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH
@@ -138,13 +140,13 @@ function test_python_loglevel ()
 
        create_lttng_session_ok $SESSION_NAME $TRACE_PATH
        enable_python_lttng_event_loglevel $SESSION_NAME $EVENT_NAME "INFO"
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay
-       run_app
+       run_app $1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting all events.
        trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH
@@ -156,13 +158,13 @@ function test_python_loglevel ()
 
        create_lttng_session_ok $SESSION_NAME $TRACE_PATH
        enable_python_lttng_event_loglevel $SESSION_NAME $EVENT_NAME "CRITICAL"
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay
-       run_app
+       run_app $1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting 0 events.
        trace_match_only $EVENT_NAME 0 $TRACE_PATH
@@ -174,13 +176,13 @@ function test_python_loglevel ()
 
        create_lttng_session_ok $SESSION_NAME $TRACE_PATH
        enable_python_lttng_event_loglevel $SESSION_NAME $EVENT_NAME "DEBUG"
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay
-       run_app
+       run_app $1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting all events.
        trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH
@@ -194,13 +196,13 @@ function test_python_loglevel_multiple ()
        create_lttng_session_ok $SESSION_NAME $TRACE_PATH
        enable_python_lttng_event_loglevel $SESSION_NAME $EVENT_NAME "INFO"
        enable_python_lttng_event_loglevel $SESSION_NAME $EVENT_NAME "DEBUG"
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay and fire two TP.
-       run_app 1
+       run_app $1 1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting all events times two.
        trace_match_only $EVENT_NAME $(($NR_ITER * 2)) $TRACE_PATH
@@ -211,13 +213,13 @@ function test_python_loglevel_multiple ()
        create_lttng_session_ok $SESSION_NAME $TRACE_PATH
        enable_python_lttng_event_loglevel $SESSION_NAME '*' "INFO"
        enable_python_lttng_event_loglevel $SESSION_NAME '*' "DEBUG"
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay and fire two TP.
-       run_app 1
+       run_app $1 1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting all events times two.
        trace_match_only $EVENT_NAME $(($NR_ITER * 2)) $TRACE_PATH
@@ -232,19 +234,19 @@ function test_python_multi_session_loglevel()
 
        create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
        enable_python_loglevel_only $SESSION_NAME-1 '*' "INFO"
-       start_lttng_tracing $SESSION_NAME-1
+       start_lttng_tracing_ok $SESSION_NAME-1
 
        create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
        enable_python_loglevel_only $SESSION_NAME-2 '*' "DEBUG"
-       start_lttng_tracing $SESSION_NAME-2
+       start_lttng_tracing_ok $SESSION_NAME-2
 
        # Run 5 times with a 1 second delay and fire second TP.
-       run_app 1 1
+       run_app $1 1 1
 
-       stop_lttng_tracing $SESSION_NAME-1
-       stop_lttng_tracing $SESSION_NAME-2
-       destroy_lttng_session $SESSION_NAME-1
-       destroy_lttng_session $SESSION_NAME-2
+       stop_lttng_tracing_ok $SESSION_NAME-1
+       stop_lttng_tracing_ok $SESSION_NAME-2
+       destroy_lttng_session_ok $SESSION_NAME-1
+       destroy_lttng_session_ok $SESSION_NAME-2
 
        # Expecting NR_ITER events being the main event and the second tp one.
        trace_matches $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME-1
@@ -271,19 +273,19 @@ function test_python_multi_session_disable()
        enable_python_lttng_event $SESSION_NAME-1 $EVENT_NAME
        enable_python_lttng_event $SESSION_NAME-1 $EVENT_NAME2
        disable_python_lttng_event $SESSION_NAME-1 $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME-1
+       start_lttng_tracing_ok $SESSION_NAME-1
 
        create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
        enable_python_lttng_event $SESSION_NAME-2 $EVENT_NAME2
-       start_lttng_tracing $SESSION_NAME-2
+       start_lttng_tracing_ok $SESSION_NAME-2
 
        # Run 5 times with a 1 second delay and fire second TP.
-       run_app 0 1
+       run_app $1 0 1
 
-       stop_lttng_tracing $SESSION_NAME-1
-       stop_lttng_tracing $SESSION_NAME-2
-       destroy_lttng_session $SESSION_NAME-1
-       destroy_lttng_session $SESSION_NAME-2
+       stop_lttng_tracing_ok $SESSION_NAME-1
+       stop_lttng_tracing_ok $SESSION_NAME-2
+       destroy_lttng_session_ok $SESSION_NAME-1
+       destroy_lttng_session_ok $SESSION_NAME-2
 
        # Validate test. Expecting one event of the second TP.
        trace_match_only $EVENT_NAME2 1 $TRACE_PATH/$SESSION_NAME-1
@@ -310,15 +312,15 @@ function test_python_multi_session_disable_wildcard()
 
        disable_python_lttng_event $SESSION_NAME-1 '*'
 
-       start_lttng_tracing $SESSION_NAME-1
-       start_lttng_tracing $SESSION_NAME-2
+       start_lttng_tracing_ok $SESSION_NAME-1
+       start_lttng_tracing_ok $SESSION_NAME-2
 
-       run_app
+       run_app $1
 
-       stop_lttng_tracing $SESSION_NAME-1
-       stop_lttng_tracing $SESSION_NAME-2
-       destroy_lttng_session $SESSION_NAME-1
-       destroy_lttng_session $SESSION_NAME-2
+       stop_lttng_tracing_ok $SESSION_NAME-1
+       stop_lttng_tracing_ok $SESSION_NAME-2
+       destroy_lttng_session_ok $SESSION_NAME-1
+       destroy_lttng_session_ok $SESSION_NAME-2
 
        # Validate test. Expecting NO event of the first TP.
        trace_match_only $EVENT_NAME 0 $TRACE_PATH/$SESSION_NAME-1
@@ -344,12 +346,12 @@ function test_python_disable_all()
 
        disable_python_lttng_event $SESSION_NAME '*'
 
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
-       run_app 0 1
+       run_app $1 0 1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting NO event of the first TP and second TP.
        trace_match_only $EVENT_NAME 0 $TRACE_PATH/$SESSION_NAME
@@ -365,19 +367,19 @@ function test_python_multi_session()
 
        create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
        enable_python_lttng_event $SESSION_NAME-1 $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME-1
+       start_lttng_tracing_ok $SESSION_NAME-1
 
        create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
        enable_python_lttng_event $SESSION_NAME-2 $EVENT_NAME2
-       start_lttng_tracing $SESSION_NAME-2
+       start_lttng_tracing_ok $SESSION_NAME-2
 
        # Run 5 times with a 1 second delay and fire second TP.
-       run_app 0 1
+       run_app $1 0 1
 
-       stop_lttng_tracing $SESSION_NAME-1
-       stop_lttng_tracing $SESSION_NAME-2
-       destroy_lttng_session $SESSION_NAME-1
-       destroy_lttng_session $SESSION_NAME-2
+       stop_lttng_tracing_ok $SESSION_NAME-1
+       stop_lttng_tracing_ok $SESSION_NAME-2
+       destroy_lttng_session_ok $SESSION_NAME-1
+       destroy_lttng_session_ok $SESSION_NAME-2
 
        # Validate test. Expecting all events of first TP
        trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME-1
@@ -398,16 +400,16 @@ function test_python_destroy_session()
 
        create_lttng_session_ok $SESSION_NAME $TRACE_PATH/first-sess
        enable_python_lttng_event $SESSION_NAME $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay
-       run_app_background 0 1
+       run_app_background $1 0 1
 
        # Wait for the applications started in background
        wait
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting at least one event num 1
        validate_trace $EVENT_NAME $TRACE_PATH/first-sess
@@ -417,16 +419,16 @@ function test_python_destroy_session()
 
        create_lttng_session_ok $SESSION_NAME $TRACE_PATH/second-sess
        enable_python_lttng_event $SESSION_NAME $EVENT_NAME2
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay
-       run_app_background 0 1
+       run_app_background $1 0 1
 
        # Wait for the applications started in background
        wait
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting only one event num 2
        trace_match_only $EVENT_NAME2 1 $TRACE_PATH/second-sess
@@ -441,14 +443,14 @@ function test_python_filtering()
 
        create_lttng_session_ok $SESSION_NAME $TRACE_PATH/$SESSION_NAME
        # Enable all event with a filter.
-       enable_python_filter $SESSION_NAME '*' 'msg == "python-ev-test2 fired"'
-       start_lttng_tracing $SESSION_NAME
+       enable_python_filter $SESSION_NAME '*' 'msg == "python-ev-test2 fired [INFO]"'
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay and fire second TP.
-       run_app 0 1
+       run_app $1 0 1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting one event of the second TP only.
        trace_match_only $EVENT_NAME2 1 $TRACE_PATH/$SESSION_NAME
@@ -459,14 +461,14 @@ function test_python_filtering()
        create_lttng_session_ok $SESSION_NAME $TRACE_PATH/$SESSION_NAME
        # Enable first Logger but filter msg payload for the INFO one while
        # triggering the debug and second TP.
-       enable_python_filter $SESSION_NAME $EVENT_NAME 'msg == "python-ev-test1 fired"'
-       start_lttng_tracing $SESSION_NAME
+       enable_python_filter $SESSION_NAME $EVENT_NAME 'msg == "python-ev-test1 fired" [INFO]'
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay, fire debug and second TP.
-       run_app 1 1
+       run_app $1 1 1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting NR_ITER event of the main INFO tp.
        trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME
@@ -484,13 +486,13 @@ function test_python_disable()
        enable_python_lttng_event $SESSION_NAME $EVENT_NAME
        enable_python_lttng_event $SESSION_NAME $EVENT_NAME2
        disable_python_lttng_event $SESSION_NAME $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay and fire second TP.
-       run_app 0 1
+       run_app $1 0 1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting one event of the second TP only.
        trace_match_only $EVENT_NAME2 1 $TRACE_PATH/$SESSION_NAME
@@ -508,13 +510,13 @@ function test_python_disable_enable()
        enable_python_lttng_event $SESSION_NAME $EVENT_NAME
        disable_python_lttng_event $SESSION_NAME $EVENT_NAME
        enable_python_lttng_event $SESSION_NAME $EVENT_NAME
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay and fire second TP.
-       run_app 0 1
+       run_app $1 0 1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting NR_ITER event of the main INFO tp.
        trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME
@@ -536,13 +538,13 @@ function test_python_filter_loglevel()
        enable_python_filter_loglevel_only $SESSION_NAME $BOGUS_EVENT_NAME "$FILTER" "INFO"
        disable_python_lttng_event $SESSION_NAME $BOGUS_EVENT_NAME
        enable_python_filter_loglevel_only $SESSION_NAME $BOGUS_EVENT_NAME "$FILTER" "INFO"
-       start_lttng_tracing $SESSION_NAME
+       start_lttng_tracing_ok $SESSION_NAME
 
        # Run 5 times with a 1 second delay and fire second TP.
-       run_app 0 1
+       run_app $1 0 1
 
-       stop_lttng_tracing $SESSION_NAME
-       destroy_lttng_session $SESSION_NAME
+       stop_lttng_tracing_ok $SESSION_NAME
+       destroy_lttng_session_ok $SESSION_NAME
 
        # Validate test. Expecting no events.
        trace_match_only $ALL_EVENTS 0 $TRACE_PATH/$SESSION_NAME
@@ -582,15 +584,19 @@ skip $withapp "Python support is needed. Skipping all tests." $NUM_TESTS ||
                test_python_filter_loglevel
        )
 
-       for fct_test in ${tests[@]};
+       for python_version in 2 3;
        do
-               TRACE_PATH=$(mktemp -d)
-
-               ${fct_test}
-               if [ $? -ne 0 ]; then
-                       break;
-               fi
-               rm -rf $TRACE_PATH
+               for fct_test in ${tests[@]};
+               do
+                       TRACE_PATH=$(mktemp -d)
+
+                       diag "(Python $python_version)"
+                       ${fct_test} python$python_version
+                       if [ $? -ne 0 ]; then
+                               break;
+                       fi
+                       rm -rf $TRACE_PATH
+               done
        done
 
        stop_lttng_sessiond
This page took 0.03031 seconds and 4 git commands to generate.