X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=tests%2Futils%2Ftest_utils.py;h=30c057bddd53dfcca865e7d28b0c56fdb608acc9;hb=b26c3b64ce249d0d1f8055519cd648d1a0bcc0da;hp=4b38630c7710652a0782b2f3f8831d95a564c0b5;hpb=7f2841b709b74de17384aff2f11c48e449b74bf4;p=lttng-tools.git diff --git a/tests/utils/test_utils.py b/tests/utils/test_utils.py index 4b38630c7..30c057bdd 100644 --- a/tests/utils/test_utils.py +++ b/tests/utils/test_utils.py @@ -1,25 +1,16 @@ #!/usr/bin/env python3 # -# Copyright (C) - 2013 Jérémie Galarneau +# Copyright (C) 2013 Jérémie Galarneau # -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License, version 2 only, as -# published by the Free Software Foundation. +# SPDX-License-Identifier: GPL-2.0-only # -# This program 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 General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 51 -# Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import uuid import os import subprocess import shutil import sys +import time import tempfile # Import lttng bindings generated in the current tree @@ -32,6 +23,27 @@ sys.path.append(lttng_bindings_path) sys.path.append(lttng_bindings_libs_path) from lttng import * +_time_tests = True +if os.getenv("TAP_AUTOTIME", "1") == "" or os.getenv("TAP_AUTOTIME", "1") == "0" or sys.version_info < (3,3,0): + _time_tests = False + + +def _get_time_ns(): + # type: () -> int + + # time.monotonic is only available since Python 3.3. We don't support + # those older versions so we can simply assert here. + assert sys.version_info >= (3, 3, 0) + + # time.monotonic_ns is only available for python >= 3.8, + # so the value is multiplied by 10^9 to maintain compatibility with + # older versions of the interpreter. + return int(time.monotonic() * 1000000000) + + +_last_time = _get_time_ns() + +BABELTRACE_BIN="babeltrace2" class SessionInfo: def __init__(self, handle, session_name, tmp_directory, channel_name): @@ -52,6 +64,15 @@ def bail(diag, session_info = None): shutil.rmtree(session_info.tmp_directory) exit(-1) +def print_automatic_test_timing(): + global _time_tests + global _last_time + if not _time_tests: + return + duration_ns = _get_time_ns() - _last_time + print(" ---\n duration_ms: {:02f}\n ...".format(duration_ns / 1000000)) + _last_time = _get_time_ns() + def print_test_result(result, number, description): result_string = None if result is True: @@ -61,6 +82,11 @@ def print_test_result(result, number, description): result_string += " {0} - {1}".format(number, description) print(result_string) + print_automatic_test_timing() + +def skip_test(number, description): + print('ok {} # skip {}'.format(number, description)) + print_automatic_test_timing() def enable_ust_tracepoint_event(session_info, event_name): event = Event() @@ -81,7 +107,7 @@ def create_session(): res = create(session_name, trace_path) if res < 0: - bail("Failed to create tracing session.") + bail("Failed to create recording session.") channel = Channel() channel.name = "channel0"