X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=tests%2Futils%2Flttngtest%2Ftap_generator.py;h=e3d61e68818046ea25e975295cb52be3850c87a9;hb=6a0d31b579259f816552bae74109ffb204d76b01;hp=f87c8c88ba5f8074b29b202cbbaeff1c84013b74;hpb=2a69bf1437eb7e81979a1410b1a66a960b52caeb;p=lttng-tools.git diff --git a/tests/utils/lttngtest/tap_generator.py b/tests/utils/lttngtest/tap_generator.py index f87c8c88b..e3d61e688 100644 --- a/tests/utils/lttngtest/tap_generator.py +++ b/tests/utils/lttngtest/tap_generator.py @@ -12,6 +12,19 @@ import time from typing import Iterator, Optional +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) + + class InvalidTestPlan(RuntimeError): def __init__(self, msg): # type: (str) -> None @@ -73,9 +86,9 @@ class TapGenerator: self._printed_plan = False # type: bool self._has_failure = False # type: bool self._time_tests = True # type: bool - if os.getenv("TAP_AUTOTIME", "1") == "" or os.getenv("TAP_AUTOTIME", "1") == "0": + if os.getenv("TAP_AUTOTIME", "1") == "0": self._time_tests = False - self._last_time = time.monotonic_ns() + self._last_time = _get_time_ns() def __del__(self): if self.remaining_test_cases > 0: @@ -129,7 +142,7 @@ class TapGenerator: def test(self, result, description): # type: (bool, str) -> None - duration = (time.monotonic_ns() - self._last_time) / 1_000_000 + duration = (_get_time_ns() - self._last_time) / 1000000 if self._last_test_case_id == self._total_test_count: raise InvalidTestPlan("Executing too many tests") @@ -147,7 +160,7 @@ class TapGenerator: ) if self._time_tests: self._print("---\n duration_ms: {}\n...\n".format(duration)) - self._last_time = time.monotonic_ns() + self._last_time = _get_time_ns() def ok(self, description): # type: (str) -> None