Test fix: python logging test spams its output
[lttng-tools.git] / tests / regression / ust / python-logging / test_python_logging.in
index 8aff4081ed4ab21ea041aea403795a0bec18ee08..e9833bea0eff37b6f35eb7a25e38d6f8647f5153 100755 (executable)
@@ -24,7 +24,7 @@ NR_ITER=5
 NR_SEC_WAIT=0
 TESTAPP_NAME="test"
 TESTAPP_BIN="$TESTAPP_NAME.py"
-TESTAPP_PATH="$CURDIR"
+TESTAPP_PATH="@abs_top_srcdir@/tests/regression/ust/python-logging"
 SESSION_NAME="python-test"
 EVENT_NAME="python-ev-test1"
 EVENT_NAME2="python-ev-test2"
@@ -36,7 +36,7 @@ run_test=@RUN_PYTHON_AGENT_TEST@
 if [[ -z "$run_test" ]]; then
        NUM_TESTS=1
 else
-       NUM_TESTS=$(((154 * ${#python_versions[@]})+2))
+       NUM_TESTS=$(((194 * ${#python_versions[@]})+2))
 fi
 
 source $TESTDIR/utils/utils.sh
@@ -46,13 +46,32 @@ 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=""
 
-       $python $TESTAPP_PATH/$TESTAPP_BIN $NR_ITER $NR_SEC_WAIT $debug_tp $fire_second_tp
+       if [[ -n "$debug_tp" ]] && [ "$debug_tp" -eq "1" ]; then
+               opt="${opt} -d"
+       fi
+
+       if [[ -n "$fire_second_tp" ]] && [ "$fire_second_tp" -eq "1" ]; then
+               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
+
+       $python $TESTAPP_PATH/$TESTAPP_BIN -n $NR_ITER -s $NR_SEC_WAIT $opt
 }
 
 function run_app_background
 {
-       run_app $@ &
+       run_app "$@" &
 }
 
 function enable_python_loglevel_only()
@@ -98,16 +117,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
@@ -118,6 +146,8 @@ function test_python_before_start ()
        if [ $? -ne 0 ]; then
                return $?
        fi
+
+       rm $go_file
 }
 
 function test_python_after_start ()
@@ -342,6 +372,119 @@ function test_python_multi_session_disable_wildcard()
        fi
 }
 
+function test_python_multi_session_disable_wildcard_begin()
+{
+       ev_name='*ev-test1'
+       diag "Test Python with multiple session with disabled wildcard (at the beginning) event"
+
+       create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
+       enable_python_lttng_event $SESSION_NAME-1 "$ev_name"
+
+       create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
+       enable_python_lttng_event $SESSION_NAME-2 "$ev_name"
+
+       disable_python_lttng_event $SESSION_NAME-1 "$ev_name"
+
+       start_lttng_tracing_ok $SESSION_NAME-1
+       start_lttng_tracing_ok $SESSION_NAME-2
+
+       run_app $1 0 1
+
+       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
+       if [ $? -ne 0 ]; then
+               return $?
+       fi
+
+       # Validate test. Expecting all events of the first TP.
+       trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME-2
+       if [ $? -ne 0 ]; then
+               return $?
+       fi
+}
+
+function test_python_multi_session_disable_wildcard_middle()
+{
+       ev_name='python-*-test1'
+       diag "Test Python with multiple session with disabled wildcard (at the middle) event"
+
+       create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
+       enable_python_lttng_event $SESSION_NAME-1 "$ev_name"
+
+       create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
+       enable_python_lttng_event $SESSION_NAME-2 "$ev_name"
+
+       disable_python_lttng_event $SESSION_NAME-1 "$ev_name"
+
+       start_lttng_tracing_ok $SESSION_NAME-1
+       start_lttng_tracing_ok $SESSION_NAME-2
+
+       run_app $1 0 1
+
+       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
+       if [ $? -ne 0 ]; then
+               return $?
+       fi
+
+       # Validate test. Expecting all events of the first TP.
+       trace_match_only $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME-2
+       if [ $? -ne 0 ]; then
+               return $?
+       fi
+}
+
+function test_python_multi_session_disable_wildcard_end()
+{
+       ev_name='python-*'
+       diag "Test Python with multiple session with disabled wildcard (at the end) event"
+
+       create_lttng_session_ok $SESSION_NAME-1 $TRACE_PATH/$SESSION_NAME-1
+       enable_python_lttng_event $SESSION_NAME-1 "$ev_name"
+
+       create_lttng_session_ok $SESSION_NAME-2 $TRACE_PATH/$SESSION_NAME-2
+       enable_python_lttng_event $SESSION_NAME-2 "$ev_name"
+
+       disable_python_lttng_event $SESSION_NAME-1 "$ev_name"
+
+       start_lttng_tracing_ok $SESSION_NAME-1
+       start_lttng_tracing_ok $SESSION_NAME-2
+
+       run_app $1 0 1
+
+       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
+       if [ $? -ne 0 ]; then
+               return $?
+       fi
+
+       # Validate test. Expecting all events of the first TP.
+       trace_matches $EVENT_NAME $NR_ITER $TRACE_PATH/$SESSION_NAME-2
+       if [ $? -ne 0 ]; then
+               return $?
+       fi
+
+       trace_matches $EVENT_NAME2 1 $TRACE_PATH/$SESSION_NAME-2
+       if [ $? -ne 0 ]; then
+               return $?
+       fi
+}
+
 function test_python_disable_all()
 {
        diag "Test Python with multiple session with disabled all event"
@@ -351,7 +494,7 @@ function test_python_disable_all()
        enable_python_lttng_event $SESSION_NAME $EVENT_NAME
        enable_python_lttng_event $SESSION_NAME $EVENT_NAME2
 
-       disable_python_lttng_event $SESSION_NAME '*'
+       disable_python_lttng_event $SESSION_NAME -a
 
        start_lttng_tracing_ok $SESSION_NAME
 
@@ -410,10 +553,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
@@ -428,11 +568,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
@@ -576,6 +712,9 @@ skip $skip_agent "Python agent test skipped." $NUM_TESTS ||
 
        tests=(
                test_python_multi_session_disable_wildcard
+               test_python_multi_session_disable_wildcard_begin
+               test_python_multi_session_disable_wildcard_middle
+               test_python_multi_session_disable_wildcard_end
                test_python_multi_session_disable
                test_python_disable
                test_python_disable_enable
This page took 0.025587 seconds and 4 git commands to generate.