@@ -154,6 +154,11 @@ def use_free_threaded_target(self) -> None:
154154 NameGenerator ([["mod" ]]), True , target_python = TargetPython ((3 , 14 ), True )
155155 )
156156
157+ def use_gil_target (self ) -> None :
158+ self .context = EmitterContext (
159+ NameGenerator ([["mod" ]]), True , target_python = TargetPython ((3 , 14 ), False )
160+ )
161+
157162 def test_goto (self ) -> None :
158163 self .assert_emit (Goto (BasicBlock (2 )), "goto CPyL2;" )
159164
@@ -523,8 +528,8 @@ def test_list_append(self) -> None:
523528 """cpy_r_r0 = PyList_Append(cpy_r_l, cpy_r_o);""" ,
524529 )
525530
526- @unittest .skipIf (IS_FREE_THREADED , "free threaded builds use CPyTagged_GetAttr" )
527531 def test_get_attr (self ) -> None :
532+ self .use_gil_target ()
528533 self .assert_emit (
529534 GetAttr (self .r , "y" , 1 ),
530535 """cpy_r_r0 = ((mod___AObject *)cpy_r_r)->_y;
@@ -536,8 +541,8 @@ def test_get_attr(self) -> None:
536541 """ ,
537542 )
538543
539- @unittest .skipUnless (IS_FREE_THREADED , "requires a free threaded build" )
540544 def test_get_attr_int_free_threaded (self ) -> None :
545+ self .use_free_threaded_target ()
541546 self .assert_emit (
542547 GetAttr (self .r , "y" , 1 ),
543548 """\
@@ -548,8 +553,8 @@ def test_get_attr_int_free_threaded(self) -> None:
548553 """ ,
549554 )
550555
551- @unittest .skipUnless (IS_FREE_THREADED , "requires a free threaded build" )
552556 def test_get_attr_int_merged_free_threaded (self ) -> None :
557+ self .use_free_threaded_target ()
553558 op = GetAttr (self .r , "y" , 1 )
554559 branch = Branch (op , BasicBlock (8 ), BasicBlock (9 ), Branch .IS_ERROR )
555560 branch .traceback_entry = ("foobar" , 123 )
@@ -589,8 +594,8 @@ def test_get_attr_ref_free_threaded(self) -> None:
589594 """ ,
590595 )
591596
592- @unittest .skipIf (IS_FREE_THREADED , "free threaded builds use CPyTagged_GetAttr" )
593597 def test_get_attr_merged (self ) -> None :
598+ self .use_gil_target ()
594599 op = GetAttr (self .r , "y" , 1 )
595600 branch = Branch (op , BasicBlock (8 ), BasicBlock (9 ), Branch .IS_ERROR )
596601 branch .traceback_entry = ("foobar" , 123 )
@@ -630,8 +635,8 @@ def test_get_attr_nullable_with_tuple(self) -> None:
630635 """ ,
631636 )
632637
633- @unittest .skipIf (IS_FREE_THREADED , "free threaded builds use CPyTagged_SetAttr" )
634638 def test_set_attr (self ) -> None :
639+ self .use_gil_target ()
635640 self .assert_emit (
636641 SetAttr (self .r , "y" , self .m , 1 ),
637642 """if (((mod___AObject *)cpy_r_r)->_y != CPY_INT_TAG) {
@@ -652,8 +657,8 @@ def test_set_attr_ref_free_threaded(self) -> None:
652657 """ ,
653658 )
654659
655- @unittest .skipUnless (IS_FREE_THREADED , "requires a free threaded build" )
656660 def test_set_attr_int_free_threaded (self ) -> None :
661+ self .use_free_threaded_target ()
657662 self .assert_emit (
658663 SetAttr (self .r , "y" , self .m , 1 ),
659664 """\
@@ -662,8 +667,8 @@ def test_set_attr_int_free_threaded(self) -> None:
662667 """ ,
663668 )
664669
665- @unittest .skipUnless (IS_FREE_THREADED , "requires a free threaded build" )
666670 def test_set_attr_int_init_free_threaded (self ) -> None :
671+ self .use_free_threaded_target ()
667672 op = SetAttr (self .r , "y" , self .m , 1 )
668673 op .mark_as_initializer ()
669674 self .assert_emit (op , "CPyTagged_InitAttr(&((mod___AObject *)cpy_r_r)->_y, cpy_r_m);" )
@@ -676,8 +681,8 @@ def test_set_attr_non_refcounted(self) -> None:
676681 """ ,
677682 )
678683
679- @unittest .skipIf (IS_FREE_THREADED , "free threaded builds use CPyTagged_SetAttr" )
680684 def test_set_attr_no_error (self ) -> None :
685+ self .use_gil_target ()
681686 op = SetAttr (self .r , "y" , self .m , 1 )
682687 op .error_kind = ERR_NEVER
683688 self .assert_emit (
0 commit comments