From 5f17c7c2a6fb92ddfd36436843d65a8722a80661 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sun, 8 Oct 2023 03:02:07 +0200 Subject: [PATCH] gh-108277: Fix test_os TimerfdTests * test_timerfd_TFD_TIMER_ABSTIME() and test_timerfd_ns_TFD_TIMER_ABSTIME() tolerate a difference of 50 us. * test_timerfd_negative() checks if os.TFD_TIMER_CANCEL_ON_SET is defined. --- Lib/test/test_os.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index 5149b0d3884417..1a348bc70bc7cf 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -3929,6 +3929,10 @@ def test_eventfd_select(self): @unittest.skipUnless(hasattr(os, 'timerfd_create'), 'requires os.timerfd_create') @support.requires_linux_version(2, 6, 30) class TimerfdTests(unittest.TestCase): + # Tolerate a difference of 50 us + CLOCK_RES_NS = 50_000 + CLOCK_RES = CLOCK_RES_NS * 1e-9 + def timerfd_create(self, *args, **kwargs): fd = os.timerfd_create(*args, **kwargs) self.assertGreaterEqual(fd, 0) @@ -3982,9 +3986,13 @@ def test_timerfd_negative(self): one_sec_in_nsec = 10**9 fd = self.timerfd_create(time.CLOCK_REALTIME) + test_flags = [0, os.TFD_TIMER_ABSTIME] + if hasattr(os, 'TFD_TIMER_CANCEL_ON_SET'): + test_flags.append(os.TFD_TIMER_ABSTIME | os.TFD_TIMER_CANCEL_ON_SET) + # Any of 'initial' and 'interval' is negative value. for initial, interval in ( (-1, 0), (1, -1), (-1, -1), (-0.1, 0), (1, -0.1), (-0.1, -0.1)): - for flags in (0, os.TFD_TIMER_ABSTIME, os.TFD_TIMER_ABSTIME|os.TFD_TIMER_CANCEL_ON_SET): + for flags in test_flags: with self.subTest(flags=flags, initial=initial, interval=interval): with self.assertRaises(OSError) as context: _, _ = os.timerfd_settime(fd, flags=flags, initial=initial, interval=interval) @@ -4055,7 +4063,7 @@ def test_timerfd_TFD_TIMER_ABSTIME(self): t = time.perf_counter() - t self.assertEqual(count_signaled, 1) - self.assertGreater(t, offset) + self.assertGreater(t, offset - self.CLOCK_RES) def test_timerfd_select(self): size = 8 # read 8 bytes @@ -4208,7 +4216,7 @@ def test_timerfd_ns_TFD_TIMER_ABSTIME(self): t = time.perf_counter_ns() - t self.assertEqual(count_signaled, 1) - self.assertGreater(t, offset_ns) + self.assertGreater(t, offset_ns - self.CLOCK_RES_NS) def test_timerfd_ns_select(self): size = 8 # read 8 bytes pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy