tests: Correct timing of python tests with python3 < 3.7
[lttng-tools.git] / tests / utils / test_utils.py
index 385f8544d1130a3487a4cedf959821ddf9d837c2..9b124e3a124ba243964655dd93c4dbd7628841e5 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,19 @@ 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():
+    assert sys.version_info > (3, 3, 0)
+    # time.monotonic_ns is only available for python >= 3.8
+    return 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 +56,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 +74,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 +99,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.023879 seconds and 4 git commands to generate.