@@ -623,6 +623,10 @@ def test_finally_in_loop(self):
623623
624624
625625 def test_break_through_finally (self ):
626+ if env .PYBEHAVIOR .finally_jumps_back :
627+ arcz = ".1 12 23 34 3D 45 56 67 68 7A 7D 8A A3 A7 BC CD D."
628+ else :
629+ arcz = ".1 12 23 34 3D 45 56 67 68 7A 8A A3 AD BC CD D."
626630 self .check_coverage ("""\
627631 a, c, d, i = 1, 1, 1, 99
628632 try:
@@ -638,11 +642,15 @@ def test_break_through_finally(self):
638642 d = 12 # C
639643 assert a == 5 and c == 10 and d == 1 # D
640644 """ ,
641- arcz = ".1 12 23 34 3D 45 56 67 68 7A 8A A3 AD BC CD D." ,
645+ arcz = arcz ,
642646 arcz_missing = "3D BC CD" ,
643647 )
644648
645649 def test_continue_through_finally (self ):
650+ if env .PYBEHAVIOR .finally_jumps_back :
651+ arcz = ".1 12 23 34 3D 45 56 67 68 73 7A 8A A3 A7 BC CD D."
652+ else :
653+ arcz = ".1 12 23 34 3D 45 56 67 68 7A 8A A3 BC CD D."
646654 self .check_coverage ("""\
647655 a, b, c, d, i = 1, 1, 1, 1, 99
648656 try:
@@ -658,7 +666,7 @@ def test_continue_through_finally(self):
658666 d = 12 # C
659667 assert (a, b, c, d) == (5, 8, 10, 1) # D
660668 """ ,
661- arcz = ".1 12 23 34 3D 45 56 67 68 7A 8A A3 BC CD D." ,
669+ arcz = arcz ,
662670 arcz_missing = "BC CD" ,
663671 )
664672
@@ -794,6 +802,10 @@ def test_multiple_except_clauses(self):
794802 )
795803
796804 def test_return_finally (self ):
805+ if env .PYBEHAVIOR .finally_jumps_back :
806+ arcz = ".1 12 29 9A AB BC C-1 -23 34 45 5-2 57 75 38 8-2"
807+ else :
808+ arcz = ".1 12 29 9A AB BC C-1 -23 34 45 57 7-2 38 8-2"
797809 self .check_coverage ("""\
798810 a = [1]
799811 def check_token(data):
@@ -808,10 +820,26 @@ def check_token(data):
808820 assert check_token(True) == 5
809821 assert a == [1, 7]
810822 """ ,
811- arcz = ".1 12 29 9A AB BC C-1 -23 34 45 57 7-2 38 8-2" ,
823+ arcz = arcz ,
812824 )
813825
814826 def test_except_jump_finally (self ):
827+ if env .PYBEHAVIOR .finally_jumps_back :
828+ arcz = (
829+ ".1 1Q QR RS ST TU U. "
830+ ".2 23 34 45 56 4O 6L "
831+ "78 89 9A AL LA AO 8B BC CD DL LD D4 BE EF FG GL LG G. EH HI IJ JL HL "
832+ "L4 LM "
833+ "MN NO O."
834+ )
835+ else :
836+ arcz = (
837+ ".1 1Q QR RS ST TU U. "
838+ ".2 23 34 45 56 4O 6L "
839+ "78 89 9A AL 8B BC CD DL BE EF FG GL EH HI IJ JL HL "
840+ "LO L4 L. LM "
841+ "MN NO O."
842+ )
815843 self .check_coverage ("""\
816844 def func(x):
817845 a = f = g = 2
@@ -842,18 +870,30 @@ def func(x):
842870 assert func('continue') == (12, 21, 2, 3) # R
843871 assert func('return') == (15, 2, 2, 0) # S
844872 assert func('raise') == (18, 21, 23, 0) # T
873+ assert func('other') == (2, 21, 2, 3) # U 30
845874 """ ,
846- arcz =
847- ".1 1Q QR RS ST T. "
848- ".2 23 34 45 56 4O 6L "
849- "78 89 9A AL 8B BC CD DL BE EF FG GL EH HI IJ JL HL "
850- "LO L4 L. LM "
851- "MN NO O." ,
852- arcz_missing = "6L HL" ,
875+ arcz = arcz ,
876+ arcz_missing = "6L" ,
853877 arcz_unpredicted = "67" ,
854878 )
855879
856880 def test_else_jump_finally (self ):
881+ if env .PYBEHAVIOR .finally_jumps_back :
882+ arcz = (
883+ ".1 1S ST TU UV VW W. "
884+ ".2 23 34 45 56 6A 78 8N 4Q "
885+ "AB BC CN NC CQ AD DE EF FN NF F4 DG GH HI IN NI I. GJ JK KL LN JN "
886+ "N4 NO "
887+ "OP PQ Q."
888+ )
889+ else :
890+ arcz = (
891+ ".1 1S ST TU UV VW W. "
892+ ".2 23 34 45 56 6A 78 8N 4Q "
893+ "AB BC CN AD DE EF FN DG GH HI IN GJ JK KL LN JN "
894+ "N4 NQ N. NO "
895+ "OP PQ Q."
896+ )
857897 self .check_coverage ("""\
858898 def func(x):
859899 a = f = g = 2
@@ -886,14 +926,10 @@ def func(x):
886926 assert func('continue') == (14, 23, 2, 3) # T
887927 assert func('return') == (17, 2, 2, 0) # U
888928 assert func('raise') == (20, 23, 25, 0) # V
929+ assert func('other') == (2, 23, 2, 3) # W 32
889930 """ ,
890- arcz =
891- ".1 1S ST TU UV V. "
892- ".2 23 34 45 56 6A 78 8N 4Q "
893- "AB BC CN AD DE EF FN DG GH HI IN GJ JK KL LN JN "
894- "NQ N4 N. NO "
895- "OP PQ Q." ,
896- arcz_missing = "78 8N JN" ,
931+ arcz = arcz ,
932+ arcz_missing = "78 8N" ,
897933 arcz_unpredicted = "" ,
898934 )
899935
0 commit comments