]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-115999: Update test_opcache to test with nested method (gh-128166)
authorDonghee Na <donghee.na@python.org>
Mon, 23 Dec 2024 17:08:34 +0000 (02:08 +0900)
committerGitHub <noreply@github.com>
Mon, 23 Dec 2024 17:08:34 +0000 (02:08 +0900)
gh-115999: Update test_opcace to test with nested method

Lib/test/test_opcache.py

index ba111b5117b41d7072d716d1e63918757bf97b4a..79f452f8068c7f1b4c14f6a9100f1db0f6673d93 100644 (file)
@@ -606,7 +606,7 @@ class TestRacesDoNotCrash(TestBase):
             for writer in writers:
                 writer.join()
 
-    @requires_specialization
+    @requires_specialization_ft
     def test_binary_subscr_getitem(self):
         def get_items():
             class C:
@@ -1242,14 +1242,6 @@ class TestInstanceDict(unittest.TestCase):
         f(test_obj, 1)
         self.assertEqual(test_obj.b, 0)
 
-# gh-127274: BINARY_SUBSCR_GETITEM will only cache __getitem__ methods that
-# are deferred. We only defer functions defined at the top-level.
-class CGetItem:
-    def __init__(self, val):
-        self.val = val
-    def __getitem__(self, item):
-        return self.val
-
 
 class TestSpecializer(TestBase):
 
@@ -1592,7 +1584,13 @@ class TestSpecializer(TestBase):
         self.assert_no_opcode(binary_subscr_str_int, "BINARY_SUBSCR")
 
         def binary_subscr_getitems():
-            items = [CGetItem(i) for i in range(100)]
+            class C:
+                def __init__(self, val):
+                    self.val = val
+                def __getitem__(self, item):
+                    return self.val
+
+            items = [C(i) for i in range(100)]
             for i in range(100):
                 self.assertEqual(items[i][i], i)