Tests: lttngtest: confusing comment regarding supported python versions
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 29 Feb 2024 19:21:28 +0000 (14:21 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 29 Feb 2024 20:02:36 +0000 (15:02 -0500)
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 <jeremie.galarneau@efficios.com>
Change-Id: I9f4fd7cf1d0673e80f6bce9e3cf86b9697fe3f91

tests/utils/lttngtest/tap_generator.py
tests/utils/test_utils.py

index c05a76a1968fa66ba77264e42de8aaff29e304af..f2c9fc2b02352baff4142a91d796d42e5a1e9c2d 100644 (file)
@@ -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):
index 9b124e3a124ba243964655dd93c4dbd7628841e5..30c057bddd53dfcca865e7d28b0c56fdb608acc9 100644 (file)
@@ -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()
This page took 0.026393 seconds and 4 git commands to generate.