Skip to content

Commit b61dfdc

Browse files
authored
Updtae test_optimizer.py from 3.14.3 (RustPython#7554)
1 parent 6d7d74c commit b61dfdc

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed

Lib/test/test_optimizer.py

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
import unittest
2+
import types
3+
from test.support import import_helper
4+
5+
6+
_testinternalcapi = import_helper.import_module("_testinternalcapi")
7+
8+
9+
class TestRareEventCounters(unittest.TestCase):
10+
def setUp(self):
11+
_testinternalcapi.reset_rare_event_counters()
12+
13+
def test_set_class(self):
14+
class A:
15+
pass
16+
class B:
17+
pass
18+
a = A()
19+
20+
orig_counter = _testinternalcapi.get_rare_event_counters()["set_class"]
21+
a.__class__ = B
22+
self.assertEqual(
23+
orig_counter + 1,
24+
_testinternalcapi.get_rare_event_counters()["set_class"]
25+
)
26+
27+
def test_set_bases(self):
28+
class A:
29+
pass
30+
class B:
31+
pass
32+
class C(B):
33+
pass
34+
35+
orig_counter = _testinternalcapi.get_rare_event_counters()["set_bases"]
36+
C.__bases__ = (A,)
37+
self.assertEqual(
38+
orig_counter + 1,
39+
_testinternalcapi.get_rare_event_counters()["set_bases"]
40+
)
41+
42+
def test_set_eval_frame_func(self):
43+
orig_counter = _testinternalcapi.get_rare_event_counters()["set_eval_frame_func"]
44+
_testinternalcapi.set_eval_frame_record([])
45+
self.assertEqual(
46+
orig_counter + 1,
47+
_testinternalcapi.get_rare_event_counters()["set_eval_frame_func"]
48+
)
49+
_testinternalcapi.set_eval_frame_default()
50+
51+
def test_builtin_dict(self):
52+
orig_counter = _testinternalcapi.get_rare_event_counters()["builtin_dict"]
53+
if isinstance(__builtins__, types.ModuleType):
54+
builtins = __builtins__.__dict__
55+
else:
56+
builtins = __builtins__
57+
builtins["FOO"] = 42
58+
self.assertEqual(
59+
orig_counter + 1,
60+
_testinternalcapi.get_rare_event_counters()["builtin_dict"]
61+
)
62+
del builtins["FOO"]
63+
64+
def test_func_modification(self):
65+
def func(x=0):
66+
pass
67+
68+
for attribute in (
69+
"__code__",
70+
"__defaults__",
71+
"__kwdefaults__"
72+
):
73+
orig_counter = _testinternalcapi.get_rare_event_counters()["func_modification"]
74+
setattr(func, attribute, getattr(func, attribute))
75+
self.assertEqual(
76+
orig_counter + 1,
77+
_testinternalcapi.get_rare_event_counters()["func_modification"]
78+
)
79+
80+
81+
class TestOptimizerSymbols(unittest.TestCase):
82+
83+
@unittest.skipUnless(hasattr(_testinternalcapi, "uop_symbols_test"),
84+
"requires _testinternalcapi.uop_symbols_test")
85+
def test_optimizer_symbols(self):
86+
_testinternalcapi.uop_symbols_test()
87+
88+
89+
if __name__ == "__main__":
90+
unittest.main()

0 commit comments

Comments
 (0)