From b26c3b64ce249d0d1f8055519cd648d1a0bcc0da Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Thu, 29 Feb 2024 14:21:28 -0500 Subject: [PATCH] Tests: lttngtest: confusing comment regarding supported python versions MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The comment in _get_time_ns() caused me to do a double-take since the function checks for Python > 3.3 and mentions Python 3.8 for unrelated reasons. I am clarifying the comments a bit to explain the reason for the two versions being mentionned. Also, the version check is changed to match 3.3 (although we don't support that version) since that is when time.monotonic was introduced. A type annotation is also added to clarify the function's intended usage (i.e., it will not return fractional nanoseconds). Signed-off-by: Jérémie Galarneau Change-Id: I9f4fd7cf1d0673e80f6bce9e3cf86b9697fe3f91 --- tests/utils/lttngtest/tap_generator.py | 13 ++++++++++--- tests/utils/test_utils.py | 14 +++++++++++--- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/tests/utils/lttngtest/tap_generator.py b/tests/utils/lttngtest/tap_generator.py index c05a76a19..f2c9fc2b0 100644 --- a/tests/utils/lttngtest/tap_generator.py +++ b/tests/utils/lttngtest/tap_generator.py @@ -13,9 +13,16 @@ from typing import Iterator, Optional 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 + # 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): diff --git a/tests/utils/test_utils.py b/tests/utils/test_utils.py index 9b124e3a1..30c057bdd 100644 --- a/tests/utils/test_utils.py +++ b/tests/utils/test_utils.py @@ -27,10 +27,18 @@ _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 + # 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() -- 2.34.1