From: Francis Deslauriers Date: Thu, 13 May 2021 01:21:28 +0000 (-0400) Subject: Tests: Move python test app to `tests/utils/testapp` directory X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=eb7277b0337e67b56606d3c7f4114ac5a22ec34c;p=lttng-tools.git Tests: Move python test app to `tests/utils/testapp` directory Signed-off-by: Francis Deslauriers Signed-off-by: Jérémie Galarneau Change-Id: I9bc55c0fc0b8de42157d64884c7e1ee08b800525 --- diff --git a/configure.ac b/configure.ac index 549b69962..0b4d893f7 100644 --- a/configure.ac +++ b/configure.ac @@ -1191,7 +1191,6 @@ AC_CONFIG_FILES([ tests/regression/ust/ust-dl/Makefile tests/regression/ust/java-jul/Makefile tests/regression/ust/java-log4j/Makefile - tests/regression/ust/python-logging/Makefile tests/regression/ust/getcpu-override/Makefile tests/regression/ust/clock-override/Makefile tests/regression/ust/type-declarations/Makefile @@ -1207,6 +1206,7 @@ AC_CONFIG_FILES([ tests/utils/testapp/Makefile tests/utils/testapp/gen-ns-events/Makefile tests/utils/testapp/gen-kernel-test-events/Makefile + tests/utils/testapp/gen-py-events/Makefile tests/utils/testapp/gen-ust-events/Makefile tests/utils/testapp/gen-ust-events-ns/Makefile tests/utils/testapp/gen-syscall-events-callstack/Makefile diff --git a/tests/regression/ust/Makefile.am b/tests/regression/ust/Makefile.am index 994fa6a68..49a1811ff 100644 --- a/tests/regression/ust/Makefile.am +++ b/tests/regression/ust/Makefile.am @@ -1,17 +1,40 @@ # SPDX-License-Identifier: GPL-2.0-only if HAVE_LIBLTTNG_UST_CTL -SUBDIRS = nprocesses high-throughput low-throughput before-after multi-session \ - overlap buffers-pid linking daemon exit-fast fork libc-wrapper \ - periodical-metadata-flush java-jul java-log4j python-logging \ - getcpu-override clock-override type-declarations \ - rotation-destroy-flush blocking multi-lib namespaces +SUBDIRS = \ + before-after \ + blocking \ + buffers-pid \ + clock-override \ + daemon \ + exit-fast \ + fork \ + getcpu-override \ + high-throughput \ + java-jul \ + java-log4j \ + libc-wrapper \ + linking \ + low-throughput \ + multi-lib \ + multi-session \ + namespaces \ + nprocesses \ + overlap \ + periodical-metadata-flush \ + rotation-destroy-flush \ + type-declarations if HAVE_OBJCOPY -SUBDIRS += baddr-statedump ust-dl +SUBDIRS += \ + baddr-statedump \ + ust-dl endif -EXTRA_DIST = test_event_basic test_event_tracef test_event_perf +EXTRA_DIST = \ + test_event_basic \ + test_event_perf \ + test_event_tracef all-local: @if [ x"$(srcdir)" != x"$(builddir)" ]; then \ diff --git a/tests/regression/ust/python-logging/Makefile.am b/tests/regression/ust/python-logging/Makefile.am deleted file mode 100644 index b0b28a00d..000000000 --- a/tests/regression/ust/python-logging/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -#if USE_PYTHON - -EXTRA_DIST = test.py - -#endif diff --git a/tests/regression/ust/python-logging/test.py b/tests/regression/ust/python-logging/test.py deleted file mode 100644 index de6afef29..000000000 --- a/tests/regression/ust/python-logging/test.py +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (C) 2015 Philippe Proulx -# Copyright (C) 2014 David Goulet -# -# SPDX-License-Identifier: LGPL-2.1-only - -from __future__ import unicode_literals, print_function -import logging -import time -import sys -import argparse -import os - - -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() - - parser = argparse.ArgumentParser() - parser.add_argument('-n', '--nr-iter', required=True) - parser.add_argument('-s', '--wait', required=True) - parser.add_argument('-d', '--fire-debug-event', action="store_true") - parser.add_argument('-e', '--fire-second-event', action="store_true") - parser.add_argument('-r', '--ready-file') - parser.add_argument('-g', '--go-file') - args = parser.parse_args() - - nr_iter = int(args.nr_iter) - wait_time = float(args.wait) - fire_debug_ev = args.fire_debug_event - fire_second_ev = args.fire_second_event - - ready_file = args.ready_file - go_file = args.go_file - - if ready_file is not None and os.path.exists(ready_file): - raise ValueError('Ready file already exist') - - if go_file is not None and os.path.exists(go_file): - raise ValueError('Go file already exist. Review synchronization') - - if (ready_file is None) != (go_file is None): - raise ValueError('--go-file and --ready-file need each others, review' - 'synchronization') - - - # Inform that we are ready, if necessary - if ready_file is not None: - open(ready_file, 'a').close() - - # Wait for go, if necessary - while go_file is not None and not os.path.exists(go_file): - time.sleep(0.5) - - 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 ready_file is not None: - try: - os.unlink(ready_file) - except: - print("Unexpected error on ready file unlink:", sys.exc_info()[0]) - raise - - -if __name__ == '__main__': - _main() diff --git a/tests/regression/ust/python-logging/test_python_logging.in b/tests/regression/ust/python-logging/test_python_logging.in index bd370e721..342bac2f6 100755 --- a/tests/regression/ust/python-logging/test_python_logging.in +++ b/tests/regression/ust/python-logging/test_python_logging.in @@ -11,9 +11,9 @@ CURDIR=$(dirname $0)/ TESTDIR=$CURDIR/../../.. NR_ITER=5 NR_SEC_WAIT=0 -TESTAPP_NAME="test" +TESTAPP_NAME="gen-py-events" TESTAPP_BIN="$TESTAPP_NAME.py" -TESTAPP_PATH="@abs_top_srcdir@/tests/regression/ust/python-logging" +TESTAPP_PATH="$TESTDIR/utils/testapp/$TESTAPP_NAME/" SESSION_NAME="python-test" EVENT_NAME="python-ev-test1" EVENT_NAME2="python-ev-test2" diff --git a/tests/utils/testapp/Makefile.am b/tests/utils/testapp/Makefile.am index a8642e931..dcb83d2d9 100644 --- a/tests/utils/testapp/Makefile.am +++ b/tests/utils/testapp/Makefile.am @@ -1,11 +1,12 @@ # SPDX-License-Identifier: GPL-2.0-only SUBDIRS = \ + gen-kernel-test-events \ + gen-py-events \ + gen-syscall-events \ gen-ust-events \ gen-ust-nevents \ gen-ust-nevents-str \ gen-ust-tracef \ - gen-syscall-events \ - gen-kernel-test-events \ userspace-probe-elf-binary if CXX_WORKS diff --git a/tests/utils/testapp/gen-py-events/Makefile.am b/tests/utils/testapp/gen-py-events/Makefile.am new file mode 100644 index 000000000..e729b3c69 --- /dev/null +++ b/tests/utils/testapp/gen-py-events/Makefile.am @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: GPL-2.0-only + +noinst_SCRIPTS = gen-py-events.py +EXTRA_DIST = gen-py-events.py + +all-local: + @if [ x"$(srcdir)" != x"$(builddir)" ]; then \ + for script in $(EXTRA_DIST); do \ + cp -f $(srcdir)/$$script $(builddir); \ + done; \ + fi + +clean-local: + @if [ x"$(srcdir)" != x"$(builddir)" ]; then \ + for script in $(EXTRA_DIST); do \ + rm -f $(builddir)/$$script; \ + done; \ + fi diff --git a/tests/utils/testapp/gen-py-events/gen-py-events.py b/tests/utils/testapp/gen-py-events/gen-py-events.py new file mode 100644 index 000000000..de6afef29 --- /dev/null +++ b/tests/utils/testapp/gen-py-events/gen-py-events.py @@ -0,0 +1,87 @@ +# Copyright (C) 2015 Philippe Proulx +# Copyright (C) 2014 David Goulet +# +# SPDX-License-Identifier: LGPL-2.1-only + +from __future__ import unicode_literals, print_function +import logging +import time +import sys +import argparse +import os + + +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() + + parser = argparse.ArgumentParser() + parser.add_argument('-n', '--nr-iter', required=True) + parser.add_argument('-s', '--wait', required=True) + parser.add_argument('-d', '--fire-debug-event', action="store_true") + parser.add_argument('-e', '--fire-second-event', action="store_true") + parser.add_argument('-r', '--ready-file') + parser.add_argument('-g', '--go-file') + args = parser.parse_args() + + nr_iter = int(args.nr_iter) + wait_time = float(args.wait) + fire_debug_ev = args.fire_debug_event + fire_second_ev = args.fire_second_event + + ready_file = args.ready_file + go_file = args.go_file + + if ready_file is not None and os.path.exists(ready_file): + raise ValueError('Ready file already exist') + + if go_file is not None and os.path.exists(go_file): + raise ValueError('Go file already exist. Review synchronization') + + if (ready_file is None) != (go_file is None): + raise ValueError('--go-file and --ready-file need each others, review' + 'synchronization') + + + # Inform that we are ready, if necessary + if ready_file is not None: + open(ready_file, 'a').close() + + # Wait for go, if necessary + while go_file is not None and not os.path.exists(go_file): + time.sleep(0.5) + + 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 ready_file is not None: + try: + os.unlink(ready_file) + except: + print("Unexpected error on ready file unlink:", sys.exc_info()[0]) + raise + + +if __name__ == '__main__': + _main()