Alphabetized try-exception & added fall through test cases

This commit is contained in:
Xinlong Hu
2025-07-01 12:42:11 -05:00
parent 69e52a9c83
commit fe68c6a27b
+383 -244
View File
@@ -1,218 +1,11 @@
def TryExcept():
def a_TryExcept():
try:
print(1)
except:
print(2)
print(3)
def TryExceptMulti():
try:
print(1)
except a:
print(2)
except b:
print(3)
except c:
print(4)
print(5)
def TryExceptMultiFallback():
try:
print(1)
except a:
print(2)
except b:
print(3)
except:
print(4)
print(5)
def TryExceptMultiNamed():
try:
print(1)
except A as a:
print(2)
except B as b:
print(3)
except C as c:
print(4)
print(5)
def TryExceptMultiNamedFallback():
try:
print(1)
except A as a:
print(2)
except B as b:
print(3)
except:
print(4)
print(5)
def TryExceptMultiNamedAndUnnamed():
try:
print(1)
except A as a:
print(2)
except b:
print(3)
except:
print(4)
print(5)
def TryExceptElseBare():
try:
print(1)
except:
print(2)
else:
print(3)
print(4)
def TryExceptElseMulti():
try:
print(1)
except a:
print(2)
except b:
print(3)
else:
print(4)
print(5)
def TryExceptElseMultiFallback():
try:
print(1)
except a:
print(2)
except b:
print(3)
except:
print(4)
else:
print(5)
print(6)
def TryExceptElseNamed():
try:
print(1)
except A as a:
print(2)
except B as b:
print(3)
else:
print(4)
print(5)
def TryExceptElseMultiNamedAndUnnamed():
try:
print(1)
except A as a:
print(2)
except b:
print(3)
except:
print(4)
else:
print(5)
print(6)
def TryFinallyBare():
try:
print(1)
finally:
print(2)
print(3)
def TryExceptFinallyBare():
try:
print(1)
except:
print(2)
finally:
print(3)
print(4)
##### NOT YET IMPLEMENTED #####
##### crashes cflow.py #####
##def TryExceptFinallyBareSpecific():
## try:
## print(1)
## except a:
## print(2)
## finally:
## print(3)
## print(4)
##
##def TryExceptMultiFinally():
## try:
## print(1)
## except a:
## print(2)
## except b:
## print(3)
## finally:
## print(4)
## print(5)
##
## Broken
##def TryExceptMultiFallbackFinally():
## try:
## print(1)
## except a:
## print(2)
## except:
## print(3)
## finally:
## print(4)
## print(5)
def TryExceptMultiNamedFinally():
try:
print(1)
except A as a:
print(2)
except B as b:
print(3)
finally:
print(4)
print(5)
def TryExceptMultiNamedFallbackFinally():
try:
print(1)
except A as a:
print(2)
except:
print(3)
finally:
print(4)
print(5)
def TryExceptMultiNamedAndUnnamedFinally():
try:
print(1)
except A as a:
print(2)
except b:
print(3)
except:
print(4)
finally:
print(5)
print(6)
def TryExceptElseFinallyBare():
try:
print(1)
except:
print(2)
else:
print(3)
finally:
print(4)
print(5)
def TryExceptBareNested():
def b_TryExceptBareNested():
try:
print(1)
except:
@@ -222,47 +15,41 @@ def TryExceptBareNested():
except:
print(4)
def TryExceptReturn():
try:
print(1)
return 2
except:
print(2)
# Not currently working, see https://github.com/syssec-utd/pylingual/issues/24#issuecomment-3005215427
def TryExceptRaise():
def b1_TryExceptBareNestedFallthrough():
try:
print(1)
except:
print(2)
raise Exc
def TryExceptRaiseNamed():
try:
print(1)
except A as a:
print(2)
raise Exc
### Expected to fail on 3.10- has the same issue as TryExceptFinally
def TryExceptBareNestedNamed():
try:
print(1)
except A as a:
print(2)
try:
print(3)
except:
print(4)
print(5)
def TryExceptReturnNamed():
def b2_TryExceptBareNestedEarlyFallthrough():
try:
print(1)
return 2
except A as a:
except:
print(2)
try:
print(3)
except:
print(4)
print(5)
def TryExceptBareNestedMulti():
def b3_TryExceptBareNestedDoubleFallthrough():
try:
print(1)
except:
print(2)
try:
print(3)
except:
print(4)
print(5)
print(6)
def c_TryExceptBareMultiNested():
try:
print(1)
except a:
@@ -278,7 +65,349 @@ def TryExceptBareNestedMulti():
except:
print(7)
def TryExceptReturnMulti():
def c1_TryExceptBareMultiNestedFallthrough():
try:
print(1)
except a:
print(2)
try:
print(3)
except:
print(4)
print(5)
except b:
print(6)
try:
print(7)
except:
print(8)
def c2_TryExceptBareMultiNestedFallthrough2():
try:
print(1)
except a:
print(2)
try:
print(3)
except:
print(4)
print(5)
except b:
print(6)
try:
print(7)
except:
print(8)
print(9)
def c3_TryExceptBareMultiNestedEarlyFallthrough():
try:
print(1)
except a:
print(2)
try:
print(3)
except:
print(4)
except b:
print(5)
try:
print(6)
except:
print(7)
print(8)
def c4_TryExceptBareMultiNestedAllFallthrough():
try:
print(1)
except a:
print(2)
try:
print(3)
except:
print(4)
print(5)
except b:
print(6)
try:
print(7)
except:
print(8)
print(9)
print(10)
def d_TryExceptBareNestedNamed():
try:
print(1)
except A as a:
print(2)
try:
print(3)
except:
print(4)
def d1_TryExceptBareNestedNamedFallthrough():
try:
print(1)
except A as a:
print(2)
try:
print(3)
except:
print(4)
print(5)
def d2_TryExceptBareNestedNamedEarlyFallthrough():
try:
print(1)
except A as a:
print(2)
try:
print(3)
except:
print(4)
print(5)
def d3_TryExceptBareNestedNamedDoubleFallthrough():
try:
print(1)
except A as a:
print(2)
try:
print(3)
except:
print(4)
print(5)
print(6)
def e_TryExceptElseBare():
try:
print(1)
except:
print(2)
else:
print(3)
print(4)
def f_TryExceptElseFinallyBare():
try:
print(1)
except:
print(2)
else:
print(3)
finally:
print(4)
print(5)
def g_TryExceptElseMulti():
try:
print(1)
except a:
print(2)
except b:
print(3)
else:
print(4)
print(5)
def h_TryExceptElseMultiFallback():
try:
print(1)
except a:
print(2)
except b:
print(3)
except:
print(4)
else:
print(5)
print(6)
def i_TryExceptElseMultiNamedAndUnnamed():
try:
print(1)
except A as a:
print(2)
except b:
print(3)
except:
print(4)
else:
print(5)
print(6)
def j_TryExceptElseNamed():
try:
print(1)
except A as a:
print(2)
except B as b:
print(3)
else:
print(4)
print(5)
def k_TryExceptFinallyBare():
try:
print(1)
except:
print(2)
finally:
print(3)
print(4)
def l_TryExceptFinallyBareSpecific():
try:
print(1)
except a:
print(2)
finally:
print(3)
print(4)
def m_TryExceptMulti():
try:
print(1)
except a:
print(2)
except b:
print(3)
except c:
print(4)
print(5)
def n_TryExceptMultiFallback():
try:
print(1)
except a:
print(2)
except b:
print(3)
except:
print(4)
print(5)
def o_TryExceptMultiFallbackFinally():
try:
print(1)
except a:
print(2)
except:
print(3)
finally:
print(4)
print(5)
def p_TryExceptMultiNamed():
try:
print(1)
except A as a:
print(2)
except B as b:
print(3)
except C as c:
print(4)
print(5)
def q_TryExceptMultiNamedAndUnnamed():
try:
print(1)
except A as a:
print(2)
except b:
print(3)
except:
print(4)
print(5)
def r_TryExceptMultiNamedAndUnnamedFinally():
try:
print(1)
except A as a:
print(2)
except b:
print(3)
except:
print(4)
finally:
print(5)
print(6)
def s_TryExceptMultiNamedFallback():
try:
print(1)
except A as a:
print(2)
except:
print(3)
print(4)
def t_TryExceptMultiNamedFallbackFinally():
try:
print(1)
except A as a:
print(2)
except:
print(3)
finally:
print(4)
print(5)
def u_TryExceptMultiNamedFinally():
try:
print(1)
except A as a:
print(2)
except B as b:
print(3)
finally:
print(4)
print(5)
def v_TryExceptMultiFinally():
try:
print(1)
except a:
print(2)
except b:
print(3)
finally:
print(4)
print(5)
def w_TryExceptRaise():
try:
print(1)
except:
print(2)
raise Exc
def x_TryExceptRaiseMulti():
try:
print(1)
except a:
print(2)
raise Exc
except b:
print(3)
raise Exc
def y_TryExceptRaiseNamed():
try:
print(1)
except A as a:
print(2)
raise Exc
def z_TryExceptReturn():
try:
print(1)
return 2
except:
print(2)
def aa_TryExceptReturnMulti():
try:
print(1)
return 2
@@ -287,12 +416,22 @@ def TryExceptReturnMulti():
except b:
print(3)
def TryExceptRaiseMulti():
def ab_TryExceptReturnNamed():
try:
print(1)
except a:
return 2
except A as a:
print(2)
raise Exc
except b:
print(3)
raise Exc
def ac_TryFinallyBareFallthrough():
try:
print(1)
finally:
print(2)
print(3)
def ad_TryFinallyBare():
try:
print(1)
finally:
print(2)