From 16a51961c383187604b714121591c18d69156801 Mon Sep 17 00:00:00 2001 From: rocky Date: Sat, 1 Feb 2020 20:32:23 -0500 Subject: [PATCH] Add tests based on recent runtests.sh failures... These run quicker and are distilled to simple examples. --- .../bytecode_2.7_run/05_control_flow_bugs.pyc | Bin 0 -> 1460 bytes .../05_control_flow_bugs.pyc-notyet | Bin 0 -> 1257 bytes .../bytecode_3.6_run/05_control_flow_bugs.pyc | Bin 0 -> 1085 bytes .../bytecode_3.7_run/05_control_flow_bugs.pyc | Bin 0 -> 1089 bytes .../operation_logic/05_control_flow_bugs.py | 59 ++++++++++++++++++ 5 files changed, 59 insertions(+) create mode 100644 test/bytecode_2.7_run/05_control_flow_bugs.pyc create mode 100644 test/bytecode_3.5_run/05_control_flow_bugs.pyc-notyet create mode 100644 test/bytecode_3.6_run/05_control_flow_bugs.pyc create mode 100644 test/bytecode_3.7_run/05_control_flow_bugs.pyc create mode 100644 test/simple_source/operation_logic/05_control_flow_bugs.py diff --git a/test/bytecode_2.7_run/05_control_flow_bugs.pyc b/test/bytecode_2.7_run/05_control_flow_bugs.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4f7b0194c8c7fa880dc255aec99f62b455ae566e GIT binary patch literal 1460 zcmb_a&2G~`5T02lCUN4lji>}ds*2P@BoN`RKqW*|@gq(-q==wO5T&sjSxxL@ZHojY z7vRW&x8TqN@4^%C4t)V;#&&8XZZyeGX6M`a`MzD_+_rvhJ^CH90IkfD4)$;?HmbDle3Frzd*A-jPoSxOi5B0V{9KRw`- zWDJ_W$VKSKij}3s+pGvdm_e36(;QS`l(VV=eak_VRT0P*=ttJH28WF`y0n2Jldb1` zi%-bR?!f{;KY#^_mAgEp$PN#&1n^C6NlpZ?M3@@TrG&$VLCI~8t;aHjm5yu7+^aGEAv;{HYE_tCho{ZdH7{q$uHiL<)`;iy;y-_gq2F<&>y+PndIvDj% zM#0D4aXbv~Oy*IEGW(7r1x>C}B?GvIRV*tLE%bQracdbY8IfPE$J2=lyyMA5g#&V! zp@P{%R^i3_+psiXVSsLmHhZv;%X&;lrh728Wp9A&ZIVNg99*)Uv}WqkKjF)WDA5zJaT6v21POO{7&U+e!2f%0~fn literal 0 HcmV?d00001 diff --git a/test/bytecode_3.5_run/05_control_flow_bugs.pyc-notyet b/test/bytecode_3.5_run/05_control_flow_bugs.pyc-notyet new file mode 100644 index 0000000000000000000000000000000000000000..0002edd6cfaca233a3cfdc4bf536106c1bf850bc GIT binary patch literal 1257 zcmY*X%Wl(95S_WU^R^R0rGhF|MM6SR5e1=^E>J12E?9I^q(G%&rLh}DP3-nM5lxkD zfImQd1RG$%#~`neSViIoV8zVXPEF!F9-lMsxr?@4`MSLE=C=v(3vxgDhHX00cLeb0 zLHGc$58#uoz%$@INd?CWqFXRRc!xrn;8{YMLOsb*h0LoU)Ip9aW>itAvm90WpZb`i z%2}?mczsDJuL53Gs#V}ish$Zvl&X@{Ke8Yh%LYmeN)qZ%&cK38_oUxNO#3BwVK3bi zgU!^ytAS?&&&>ee;5hW~+#Jc`W^srjFrn%~o#&_qv+Q+6s82bHz=lvwp}u8#ufkqy zp{vq;@|(|7-sdKXvwJWF(Dz}AB4xeDgxus*7XSh63R$5&Um%xZZ`}@Ivlu1 zgYd0;IPOJvP9|}w<9QOQK#`&v3BWqmu&fGLLCxrl!Iv|-lCYz>2+it@FYC-AF>jd> zE=XG5B8A&g(m2AigBDyEFf~BmmO*U5lqRX*0hyfI@?m5jZKAkwU8E>U&Jt@Jy=BJO ziBZRRwr_dk;c#*}1^dM%^gte=s^!ea)nGz(O7`jS& zjECCJu%wq<8%H`k_k&g9qb3PJ106b5Wnh!ub)_4G_Lu@_Y^TaXru=-ABG)oxWqY?} z%3@>ZaYT2BZ^?75LoGv*aJh-{Y?85-9u7lqJn*;Vs;m%RD=*>vZ`CTxcmwHJH9JB7 E0i=4(_W%F@ literal 0 HcmV?d00001 diff --git a/test/bytecode_3.6_run/05_control_flow_bugs.pyc b/test/bytecode_3.6_run/05_control_flow_bugs.pyc new file mode 100644 index 0000000000000000000000000000000000000000..55ad983311780a4fc705e7c5d385579aae024fbb GIT binary patch literal 1085 zcmYk4!D9#jEw;Js@8ko4(IPAsm8?9j{xqCdy{HE4cssN>=j6hssp9{)G zG(sl=Urq4YY1c>-M$(BKh>3?VvnWIwvKBXyz=}G(mGV=1yE1lC$E?EgdWz%nfX3>i zgv^;{u&S(8Gl%!4yZDlcUfs>OnX$?E^uW`@et&e~+eio5{2)vQ4bzNt+`kTxR1t_> zSaBt)G8;j&Rz-FJ%eML)$*8P3rDe3WPf@@m7ruvjLy>w-qd;0sd6}eLRMe&wpstW< zm9^mQ8Qb`5P^Jj^sSn4@BhR>HD(7tK`JO!fksr XR>A$^BF`?*FV*-OV|ji>XpR2^mzT{k literal 0 HcmV?d00001 diff --git a/test/bytecode_3.7_run/05_control_flow_bugs.pyc b/test/bytecode_3.7_run/05_control_flow_bugs.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cf33c6595000902f5f0303298dbcc9c24303a451 GIT binary patch literal 1089 zcmYk4&u-H|5XNWLcIu=_YD$C(m8z;js1bPk=b^&BjSKqITPiHAL~;R$B(DKz-0JIrZ{N>F@gm%PWQcu-au^fwmJuS-a4v zV&=E4ci>RS0?5Cd1X|X)a;(ld31(FR*rH`Ot>)F2RIjyEzJc>hcLR0`D77+SaF#Pu%I}=v#Lx0 z+LkGzU?)#%)8yyFoGeYr>ds!>wLdbeK1y(Ap?f% Zwnt+X+%GQj?DqUpjju6==U0T*_&?0#%{Kr5 literal 0 HcmV?d00001 diff --git a/test/simple_source/operation_logic/05_control_flow_bugs.py b/test/simple_source/operation_logic/05_control_flow_bugs.py new file mode 100644 index 00000000..0eb1a7ad --- /dev/null +++ b/test/simple_source/operation_logic/05_control_flow_bugs.py @@ -0,0 +1,59 @@ +# From 3.6.10 test_binascii.py +# Bug was getting "while c and noise" parsed correclty +# and not put into the "ifelsesmt" + +# RUNNABLE! +def addnoise(c, noise): + while c and noise: + if c < 3: + c = 2 + else: + c = 3 + noise = False + return c + +assert addnoise(0, True) == 0 +assert addnoise(1, False) == 1 +assert addnoise(2, True) == 2 +assert addnoise(3, True) == 3 +assert addnoise(4, True) == 3 +assert addnoise(5, False) == 5 + +# From 3.6.10 test_dbm_dumb.py +# Bug was getting attaching "else" to the right "if" in the +# presense of a loop. +def test_random(a, r): + x = 0 + for dummy in r: + if dummy: + if a: + x += 2 + else: + x += 1 + return x + +assert test_random(True, [1]) == 2 +assert test_random(True, [1, 1]) == 4 +assert test_random(False, [1]) == 0 +assert test_random(False, [1, 1]) == 0 + +# From 2.7.17 test_frozen.py +# Bug was getting making sure we have "try" not +# "try"/"else" +def test_frozen(a, b): + try: + x = 1 / a + except: + x = 2 + + try: + x += 3 / b + except: + x += 4 + + return x + +assert test_frozen(1, 1) == 4.0 +assert test_frozen(0, 1) == 5.0 +assert test_frozen(0.5, 0) == 6.0 +assert test_frozen(0, 0.5) == 8.0