]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-142145: relax the no-longer-quadratic test timing (#143030)
authorGregory P. Smith <68491+gpshead@users.noreply.github.com>
Sat, 20 Dec 2025 23:42:06 +0000 (15:42 -0800)
committerGitHub <noreply@github.com>
Sat, 20 Dec 2025 23:42:06 +0000 (23:42 +0000)
* gh-142145: relax the no-longer-quadratic test timing

* require cpu resource

Lib/test/test_minidom.py

index 7717a98583f741c3a589d4c032af0522b2605fd7..69fae957ec7fc9c1e9d15fba344b9de6238b93aa 100644 (file)
@@ -174,6 +174,7 @@ class MinidomTest(unittest.TestCase):
         self.assertEqual(dom.documentElement.childNodes[-1].data, "Hello")
         dom.unlink()
 
+    @support.requires_resource('cpu')
     def testAppendChildNoQuadraticComplexity(self):
         impl = getDOMImplementation()
 
@@ -182,14 +183,18 @@ class MinidomTest(unittest.TestCase):
         children = [newdoc.createElement(f"child-{i}") for i in range(1, 2 ** 15 + 1)]
         element = top_element
 
-        start = time.time()
+        start = time.monotonic()
         for child in children:
             element.appendChild(child)
             element = child
-        end = time.time()
+        end = time.monotonic()
 
         # This example used to take at least 30 seconds.
-        self.assertLess(end - start, 1)
+        # Conservative assertion due to the wide variety of systems and
+        # build configs timing based tests wind up run under.
+        # A --with-address-sanitizer --with-pydebug build on a rpi5 still
+        # completes this loop in <0.5 seconds.
+        self.assertLess(end - start, 4)
 
     def testSetAttributeNodeWithoutOwnerDocument(self):
         # regression test for gh-142754