+++ /dev/null
-#!/usr/bin/env python
-#
-# Copyright (C) 2014 - David Goulet <dgoulet@efficios.com>
-#
-# 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()
--- /dev/null
+# Copyright (C) 2015 - Philippe Proulx <pproulx@efficios.com>
+# Copyright (C) 2014 - David Goulet <dgoulet@efficios.com>
+#
+# 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()
#!/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"
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
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_ok $SESSION_NAME
start_lttng_tracing_ok $SESSION_NAME
# Run 5 times with a 1 second delay
- run_app
+ run_app $1
stop_lttng_tracing_ok $SESSION_NAME
destroy_lttng_session_ok $SESSION_NAME
start_lttng_tracing_ok $SESSION_NAME
# Run 5 times with a 1 second delay
- run_app
+ run_app $1
stop_lttng_tracing_ok $SESSION_NAME
destroy_lttng_session_ok $SESSION_NAME
start_lttng_tracing_ok $SESSION_NAME
# Run 5 times with a 1 second delay
- run_app
+ run_app $1
stop_lttng_tracing_ok $SESSION_NAME
destroy_lttng_session_ok $SESSION_NAME
start_lttng_tracing_ok $SESSION_NAME
# Run 5 times with a 1 second delay
- run_app
+ run_app $1
stop_lttng_tracing_ok $SESSION_NAME
destroy_lttng_session_ok $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_ok $SESSION_NAME
destroy_lttng_session_ok $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_ok $SESSION_NAME
destroy_lttng_session_ok $SESSION_NAME
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_ok $SESSION_NAME-1
stop_lttng_tracing_ok $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_ok $SESSION_NAME-1
stop_lttng_tracing_ok $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_ok $SESSION_NAME-1
stop_lttng_tracing_ok $SESSION_NAME-2
start_lttng_tracing_ok $SESSION_NAME
- run_app 0 1
+ run_app $1 0 1
stop_lttng_tracing_ok $SESSION_NAME
destroy_lttng_session_ok $SESSION_NAME
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_ok $SESSION_NAME-1
stop_lttng_tracing_ok $SESSION_NAME-2
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
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
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"'
+ 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_ok $SESSION_NAME
destroy_lttng_session_ok $SESSION_NAME
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"'
+ 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_ok $SESSION_NAME
destroy_lttng_session_ok $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_ok $SESSION_NAME
destroy_lttng_session_ok $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_ok $SESSION_NAME
destroy_lttng_session_ok $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_ok $SESSION_NAME
destroy_lttng_session_ok $SESSION_NAME
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