Merged, thanks! Jérémie
On Tue, Mar 31, 2015 at 8:10 PM, Philippe Proulx <[email protected]> wrote: > This patch makes the tests follow the recent refactoring > of the LTTng-UST Python agent. > > You need both python2 and python3 in your $PATH to run this > test now (since the agent is compatible with both versions > of Python). > > Signed-off-by: Philippe Proulx <[email protected]> > --- > tests/regression/ust/python-logging/LTTngTest.py | 76 > ---------------------- > tests/regression/ust/python-logging/test.py | 71 > ++++++++++++++++++++ > .../ust/python-logging/test_python_logging | 76 > ++++++++++++---------- > 3 files changed, 112 insertions(+), 111 deletions(-) > delete mode 100644 tests/regression/ust/python-logging/LTTngTest.py > create mode 100644 tests/regression/ust/python-logging/test.py > > diff --git a/tests/regression/ust/python-logging/LTTngTest.py > b/tests/regression/ust/python-logging/LTTngTest.py > deleted file mode 100644 > index a3ed8f9..0000000 > --- a/tests/regression/ust/python-logging/LTTngTest.py > +++ /dev/null > @@ -1,76 +0,0 @@ > -#!/usr/bin/env python > -# > -# Copyright (C) 2014 - David Goulet <[email protected]> > -# > -# This library is free software; you can redistribute it and/or modify it > under > -# the terms of the GNU Lesser General Public License as published by the > Free > -# Software Foundation; version 2.1 of the License. > -# > -# This library is distributed in the hope that it will be useful, but > WITHOUT > -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > FITNESS > -# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License > for more > -# details. > -# > -# You should have received a copy of the GNU Lesser General Public License > -# along with this library; if not, write to the Free Software Foundation, > Inc., > -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA > - > -import sys > -import logging > -import errno > - > -from time import sleep > - > -def cleanup(code, agent = None): > - """ > - Cleanup agent and exit with given code. > - """ > - if agent is not None: > - agent.destroy() > - > - sys.exit(code) > - > -try: > - import lttng_agent > -except ImportError as e: > - print("LTTng Agent not found. Aborting") > - cleanup(errno.ENOSYS) > - > -def run(): > - """ > - Main for this test program. Based on the Java testing program that > behaves > - exactly the same. > - """ > - > - agent = lttng_agent.LTTngAgent() > - ev1 = logging.getLogger("python-ev-test1"); > - ev2 = logging.getLogger("python-ev-test2"); > - > - try: > - nr_iter = int(sys.argv[1]) > - wait_time = int(sys.argv[2]) > - fire_debug_ev = 0 > - fire_second_ev = 0 > - except IndexError as e: > - print("Missing arguments. Aborting") > - cleanup(errno.EINVAL, agent) > - except ValueError as e: > - print("Invalid arguments. Aborting") > - cleanup(errno.EINVAL, agent) > - > - if len(sys.argv) > 3: > - fire_debug_ev = int(sys.argv[3]) > - if len(sys.argv) > 4: > - fire_second_ev = int(sys.argv[4]) > - > - for i in range(0, nr_iter): > - ev1.info("%s fired" % ev1.name) > - if fire_debug_ev != 0: > - ev1.debug("%s DEBUG fired" % ev1.name) > - sleep(wait_time) > - > - if fire_second_ev != 0: > - ev2.info("%s fired" % ev2.name) > - > -if __name__ == "__main__": > - run() > diff --git a/tests/regression/ust/python-logging/test.py > b/tests/regression/ust/python-logging/test.py > new file mode 100644 > index 0000000..d08e623 > --- /dev/null > +++ b/tests/regression/ust/python-logging/test.py > @@ -0,0 +1,71 @@ > +# Copyright (C) 2015 - Philippe Proulx <[email protected]> > +# Copyright (C) 2014 - David Goulet <[email protected]> > +# > +# This library is free software; you can redistribute it and/or modify it > under > +# the terms of the GNU Lesser General Public License as published by the > Free > +# Software Foundation; version 2.1 of the License. > +# > +# This library is distributed in the hope that it will be useful, but > WITHOUT > +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or > FITNESS > +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License > for more > +# details. > +# > +# You should have received a copy of the GNU Lesser General Public License > +# along with this library; if not, write to the Free Software Foundation, > Inc., > +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA > + > +from __future__ import unicode_literals, print_function > +import logging > +import time > +import sys > + > + > +def _perror(msg): > + print(msg, file=sys.stderr) > + sys.exit(1) > + > + > +try: > + import lttngust > +except (ImportError) as e: > + _perror('lttngust package not found: {}'.format(e)) > + > + > +def _main(): > + ev1 = logging.getLogger('python-ev-test1'); > + ev2 = logging.getLogger('python-ev-test2'); > + > + logging.basicConfig() > + > + try: > + nr_iter = int(sys.argv[1]) > + wait_time = float(sys.argv[2]) > + fire_debug_ev = False > + fire_second_ev = False > + except (IndexError) as e: > + _perror('missing arguments: {}'.format(e)) > + except (ValueError) as e: > + _perror('invalid arguments: {}'.format(e)) > + > + try: > + if len(sys.argv) > 3: > + fire_debug_ev = int(sys.argv[3]) > + if len(sys.argv) > 4: > + fire_second_ev = int(sys.argv[4]) > + except (ValueError) as e: > + _perror('invalid arguments: {}'.format(e)) > + > + for i in range(nr_iter): > + ev1.info('{} fired [INFO]'.format(ev1.name)) > + > + if fire_debug_ev: > + ev1.debug('{} fired [DEBUG]'.format(ev1.name)) > + > + time.sleep(wait_time) > + > + if fire_second_ev: > + ev2.info('{} fired [INFO]'.format(ev2.name)) > + > + > +if __name__ == '__main__': > + _main() > diff --git a/tests/regression/ust/python-logging/test_python_logging > b/tests/regression/ust/python-logging/test_python_logging > index cb960da..4c2a3c6 100755 > --- a/tests/regression/ust/python-logging/test_python_logging > +++ b/tests/regression/ust/python-logging/test_python_logging > @@ -1,5 +1,6 @@ > #!/bin/bash > # > +# Copyright (C) - 2015 Philippe Proulx <[email protected]> > # Copyright (C) - 2014 David Goulet <[email protected]> > # > # This program is free software; you can redistribute it and/or modify it > under > @@ -15,13 +16,13 @@ > # 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,7 +96,7 @@ 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 > > @@ -120,7 +122,7 @@ function test_python_after_start () > start_lttng_tracing $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 > @@ -141,7 +143,7 @@ function test_python_loglevel () > start_lttng_tracing $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 > @@ -159,7 +161,7 @@ function test_python_loglevel () > start_lttng_tracing $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 > @@ -177,7 +179,7 @@ function test_python_loglevel () > start_lttng_tracing $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 > @@ -197,7 +199,7 @@ function test_python_loglevel_multiple () > start_lttng_tracing $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 > @@ -214,7 +216,7 @@ function test_python_loglevel_multiple () > start_lttng_tracing $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 > @@ -239,7 +241,7 @@ function test_python_multi_session_loglevel() > start_lttng_tracing $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 > @@ -278,7 +280,7 @@ function test_python_multi_session_disable() > start_lttng_tracing $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 > @@ -313,7 +315,7 @@ function test_python_multi_session_disable_wildcard() > start_lttng_tracing $SESSION_NAME-1 > start_lttng_tracing $SESSION_NAME-2 > > - run_app > + run_app $1 > > stop_lttng_tracing $SESSION_NAME-1 > stop_lttng_tracing $SESSION_NAME-2 > @@ -346,7 +348,7 @@ function test_python_disable_all() > > start_lttng_tracing $SESSION_NAME > > - run_app 0 1 > + run_app $1 0 1 > > stop_lttng_tracing $SESSION_NAME > destroy_lttng_session $SESSION_NAME > @@ -372,7 +374,7 @@ function test_python_multi_session() > start_lttng_tracing $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 > @@ -401,7 +403,7 @@ function test_python_destroy_session() > start_lttng_tracing $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 > @@ -420,7 +422,7 @@ function test_python_destroy_session() > start_lttng_tracing $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 > @@ -441,11 +443,11 @@ function test_python_filtering() > > create_lttng_session $SESSION_NAME $TRACE_PATH/$SESSION_NAME > # Enable all event with a filter. > - enable_python_filter $SESSION_NAME '*' 'msg == "python-ev-test2 > fired"' > + enable_python_filter $SESSION_NAME '*' 'msg == "python-ev-test2 > fired [INFO]"' > start_lttng_tracing $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 > @@ -459,11 +461,11 @@ function test_python_filtering() > create_lttng_session $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"' > + enable_python_filter $SESSION_NAME $EVENT_NAME 'msg == > "python-ev-test1 fired [INFO]"' > start_lttng_tracing $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 > @@ -487,7 +489,7 @@ function test_python_disable() > start_lttng_tracing $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 > @@ -511,7 +513,7 @@ function test_python_disable_enable() > start_lttng_tracing $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 > @@ -539,7 +541,7 @@ function test_python_filter_loglevel() > start_lttng_tracing $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 > @@ -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 > -- > 2.3.0 > > > _______________________________________________ > lttng-dev mailing list > [email protected] > http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev > -- Jérémie Galarneau EfficiOS Inc. http://www.efficios.com
_______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
