]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-108311: Fix test_store_attr_with_hint by disabling optimizer in decorator (#108312)
authorGuido van Rossum <guido@python.org>
Fri, 25 Aug 2023 16:40:27 +0000 (09:40 -0700)
committerGitHub <noreply@github.com>
Fri, 25 Aug 2023 16:40:27 +0000 (16:40 +0000)
See https://github.com/python/cpython/issues/108311#issuecomment-1693569380

---------

Co-authored-by: AlexWaygood <alex.waygood@gmail.com>
Lib/test/test_opcache.py

index 1baa10cbdfdef2a94e313f6f3a48b1f1da8c5f00..692e03fbb5e0841b2c57b2112029a0bdd6b2f3e9 100644 (file)
@@ -8,6 +8,19 @@ from test.support import threading_helper
 import _testinternalcapi
 
 
+def disabling_optimizer(func):
+    def wrapper(*args, **kwargs):
+        import _testinternalcapi
+        old_opt = _testinternalcapi.get_optimizer()
+        _testinternalcapi.set_optimizer(None)
+        try:
+            return func(*args, **kwargs)
+        finally:
+            _testinternalcapi.set_optimizer(old_opt)
+
+    return wrapper
+
+
 class TestLoadSuperAttrCache(unittest.TestCase):
     def test_descriptor_not_double_executed_on_spec_fail(self):
         calls = []
@@ -502,6 +515,7 @@ class TestRacesDoNotCrash(unittest.TestCase):
         opnames = {instruction.opname for instruction in instructions}
         self.assertIn(opname, opnames)
 
+    @disabling_optimizer
     def assert_races_do_not_crash(
         self, opname, get_items, read, write, *, check_items=False
     ):