]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-130917: update timer and workload in test_signal (#130918)
authorDiego Russo <diego.russo@arm.com>
Fri, 7 Mar 2025 21:10:02 +0000 (21:10 +0000)
committerGitHub <noreply@github.com>
Fri, 7 Mar 2025 21:10:02 +0000 (16:10 -0500)
The workload to advance the virtual timeout is too lightweight for some
platforms. As result the test goes in timeout as it never reaches the
end of the timer. By having a heavier workload, the virtual timer
advances rapidly and the SIGVTALRM is sent before the timeout.

Lib/test/test_signal.py

index 72a01cd1e451f4a5a932748e85b434d67548944c..1497a98f9e6554249d97c273656c76982abb2e04 100644 (file)
@@ -838,11 +838,11 @@ class ItimerTest(unittest.TestCase):
     def test_itimer_virtual(self):
         self.itimer = signal.ITIMER_VIRTUAL
         signal.signal(signal.SIGVTALRM, self.sig_vtalrm)
-        signal.setitimer(self.itimer, 0.3, 0.2)
+        signal.setitimer(self.itimer, 0.001, 0.001)
 
         for _ in support.busy_retry(support.LONG_TIMEOUT):
             # use up some virtual time by doing real work
-            _ = pow(12345, 67890, 10000019)
+            _ = sum(i * i for i in range(10**5))
             if signal.getitimer(self.itimer) == (0.0, 0.0):
                 # sig_vtalrm handler stopped this itimer
                 break
@@ -859,7 +859,7 @@ class ItimerTest(unittest.TestCase):
 
         for _ in support.busy_retry(support.LONG_TIMEOUT):
             # do some work
-            _ = pow(12345, 67890, 10000019)
+            _ = sum(i * i for i in range(10**5))
             if signal.getitimer(self.itimer) == (0.0, 0.0):
                 # sig_prof handler stopped this itimer
                 break