Tests: standardize TAP_AUTOTIME parsing in python
[lttng-tools.git] / tests / utils / test_utils.py
index 385f8544d1130a3487a4cedf959821ddf9d837c2..d87cd1e32696807be20314c90f9e043d83eed4fa 100644 (file)
@@ -10,6 +10,7 @@ import os
 import subprocess
 import shutil
 import sys
+import time
 import tempfile
 
 # Import lttng bindings generated in the current tree
@@ -22,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") == "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):
@@ -42,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:
@@ -51,9 +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()
@@ -74,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"
This page took 0.023971 seconds and 4 git commands to generate.