diff --git a/Lib/test/test_opcache.py b/Lib/test/test_opcache.py index 1baa10cbdfd..692e03fbb5e 100644 --- a/Lib/test/test_opcache.py +++ b/Lib/test/test_opcache.py @@ -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 ):