@@ -67,7 +67,8 @@ class C:
6767
6868 type_assign_version (C )
6969 orig_version = type_get_version (C )
70- self .assertNotEqual (orig_version , 0 )
70+ if orig_version == 0 :
71+ self .skipTest ("Could not assign a valid type version" )
7172
7273 type_modified (C )
7374 type_assign_specific_version_unsafe (C , orig_version + 5 )
@@ -84,10 +85,11 @@ class TypeCacheWithSpecializationTests(unittest.TestCase):
8485 def tearDown (self ):
8586 _clear_type_cache ()
8687
87- def _assign_and_check_valid_version (self , user_type ):
88- type_modified (user_type )
89- type_assign_version (user_type )
90- self .assertNotEqual (type_get_version (user_type ), 0 )
88+ def _assign_valid_version_or_skip (self , type_ ):
89+ type_modified (type_ )
90+ type_assign_version (type_ )
91+ if type_get_version (type_ ) == 0 :
92+ self .skipTest ("Could not assign valid type version" )
9193
9294 def _assign_and_check_version_0 (self , user_type ):
9395 type_modified (user_type )
@@ -98,8 +100,6 @@ def _all_opnames(self, func):
98100 return set (instr .opname for instr in dis .Bytecode (func , adaptive = True ))
99101
100102 def _check_specialization (self , func , arg , opname , * , should_specialize ):
101- self .assertIn (opname , self ._all_opnames (func ))
102-
103103 for _ in range (100 ):
104104 func (arg )
105105
@@ -113,7 +113,7 @@ class A:
113113 def foo (self ):
114114 pass
115115
116- self ._assign_and_check_valid_version (A )
116+ self ._assign_valid_version_or_skip (A )
117117
118118 def load_foo_1 (type_ ):
119119 type_ .foo
@@ -129,8 +129,8 @@ def load_foo_2(type_):
129129 self ._check_specialization (load_foo_2 , A , "LOAD_ATTR" , should_specialize = False )
130130
131131 def test_class_load_attr_specialization_static_type (self ):
132- self ._assign_and_check_valid_version (str )
133- self ._assign_and_check_valid_version (bytes )
132+ self ._assign_valid_version_or_skip (str )
133+ self ._assign_valid_version_or_skip (bytes )
134134
135135 def get_capitalize_1 (type_ ):
136136 return type_ .capitalize
@@ -164,7 +164,7 @@ class G:
164164 def x (self ):
165165 return 9
166166
167- self ._assign_and_check_valid_version (G )
167+ self ._assign_valid_version_or_skip (G )
168168
169169 def load_x_1 (instance ):
170170 instance .x
@@ -183,7 +183,7 @@ def test_store_attr_specialization_user_type(self):
183183 class B :
184184 __slots__ = ("bar" ,)
185185
186- self ._assign_and_check_valid_version (B )
186+ self ._assign_valid_version_or_skip (B )
187187
188188 def store_bar_1 (type_ ):
189189 type_ .bar = 10
@@ -203,7 +203,7 @@ class F:
203203 def __init__ (self ):
204204 pass
205205
206- self ._assign_and_check_valid_version (F )
206+ self ._assign_valid_version_or_skip (F )
207207
208208 def call_class_1 (type_ ):
209209 type_ ()
@@ -222,7 +222,7 @@ def test_to_bool_specialization_user_type(self):
222222 class H :
223223 pass
224224
225- self ._assign_and_check_valid_version (H )
225+ self ._assign_valid_version_or_skip (H )
226226
227227 def to_bool_1 (instance ):
228228 not instance
0 commit comments