From bb9b9fb4b3b37480f6bcfa6e0f410a90c985c449 Mon Sep 17 00:00:00 2001 From: rocky Date: Sun, 16 Oct 2022 18:24:48 -0400 Subject: [PATCH] Improve "if/else" in "for" test --- .../07_for_if_else-continue.pyc | Bin 962 -> 1551 bytes .../bug27+/07_for_if_else-continue.py | 20 ++++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/test/bytecode_2.7_run/07_for_if_else-continue.pyc b/test/bytecode_2.7_run/07_for_if_else-continue.pyc index e4894c380486739a4e84ddc28e0ec8960f35589f..616fa031de83bdb0c2510e8c072ed96fbb4eabba 100644 GIT binary patch literal 1551 zcmb`G-A)rh6oAice}NVngNfdlAsSm_0Of`Ye+fdwm}&}!gv4x?-D$gaJ5y(-f(hIR zx5iiT!Yg0M2k-?vXO_0x1i3JFcTQ*Kd~<$hbHA&zPtIS5Azb`&`2QS-`N04pfCGRI zP8ggsIA9RXL*%)64g@0=zGoiEo(JX`*gQlzIAidI5g-cCaTqdDp5}zL9ahL-#SG@= zgne~bX$ljlb?(SukzQO9{L{hZX&Aj{VGJOJe>r$20~cV*GG;NhyvQi2*=aay8MR}} z8xEe!z{P3H*_fq+DT<{GVV!$rFy9b^R6X5$4fTwmF3)H<^DE7Ls;RCHY zI_Ptp8j-Y@!>$N>vFt2`9wO9j8k;!GD-_3@a02k+{UbQ_;KT!c8%`K}a5n(GGFcm~ zJqn6_EYUjczAgbS@!iL*-3Hlh#w6nciU!^%utgNXU?61V^p-XQC$*D@4cq`H%qq@I z+#e*uH)^Ouv3fY{tgYW)eX#DgmG?m)%%yNNJ%kEHluv{LTq88m|;BgViNz+^> zS8tkoJI!}nTq?`kDoNClh|;3Wqk6*_p>3?>mexwU;renhr--V!TMF!E>P;^ zjtrI7BE&9ZkDCp;iI#-#M=JFFR-QIUG?f%B`XXBH+LG7~FaxLD(?c<7`M-Y=WwiRZ cucBcho{}$f14WTl<|^|`td7s}_*r6q00w?U>Hq)$ literal 962 zcmb`E&u-H|5XNWiG-)CIBSEhyy;(vbP!;u3wV<|$UQA_zDpf)zU2jq=jyLSCMUm1& zfhXa>3-SVdvq{yaa6w>uza7nvXJ>vB{#?HIKpjX)vnRm*0?Yn@WJIUX8fAjM2|5kD z9e6t=6_BdYK+spg#xNkeM{a?#kUd}EM9g&nk_;EgewYtHhWaeSEZ}NB02%HCe4h)z zUvHxYuJ;k7d!F0Y*yw@jjao3RD*A1CuH-N;2OE-m3$b|L$Fe(+i{~^UI(Xlv%YY^U znFi~npmLQyHproW-y!;$p2CUmWFl}gXNv7Q=X(=(kK%WStx~&IUl)b`q_Rlh#H~PH zTC0r9b$MuvHW63h_^{{Ics+~YATM@{1C(_gn~%nYO0BMpRGqVGu(|!X^K?7yYm?^v zR25dWr7m4wR_e+4Gw@G;eCDC7aYnH$>S8GfMH72N{Ep!SK^MnU46ko6-0A+$Joc|? z;o4iM{)$k-ReB}~Gf9|g!ifGSkWFS`A3{73;8>j@SrTi)@{o>7sf|$*1H|~^r~#j2 zNz+WrG<7xDu`X4@M&ePk)iss!J$U-BdYH*g<^MR(MdaTZ>8vW$F5hLFkh*BzZ?0?z Get!YW;k$qU diff --git a/test/simple_source/bug27+/07_for_if_else-continue.py b/test/simple_source/bug27+/07_for_if_else-continue.py index 3944232a..d1e421fe 100644 --- a/test/simple_source/bug27+/07_for_if_else-continue.py +++ b/test/simple_source/bug27+/07_for_if_else-continue.py @@ -1,15 +1,17 @@ # Issue #413 on 2.7 # Bug in handling CONTINUE in else block of if-then-else in a for loop +# Bug was "if" and "else" jump back to loop getting detected. +# RUNNABLE! """This program is self-checking!""" -def test1(a, r = None): +def test1(a, r = []): for b in a: if b: - r = b + r.append(3) else: + r.append(5) continue - raise AssertionError("CONTINUE not followed") - if b: + if r == []: pass return r @@ -27,7 +29,13 @@ def test2(a, r = None): raise AssertionError("CONTINUE not followed") return r -assert test1([True]) == True, "Incorrect flow" +assert test1([], []) == [], "For loop not taken" +assert test1([False], []) == [5], "if 'else' should have been taken" +assert test1([True], []) == [3], "if 'then' should have been taken" +assert test1([True, True], []) == [3, 3], "if should have been taken" +assert test1([True, False], []) == [3, 5], "if and then 'else' should have been taken" +assert test1([False, True], []) == [5, 3], "if else and then 'then' should have been taken" +assert test1([False, False], []) == [5, 5], "if else should have been taken twice" +assert test1([True, True], []) == [3, 3], "if 'then' should have been taken twice" assert test2([True]) is None, "Incorrect flow" -assert test1([False]) is None, "Incorrect flow" assert test2([False]) is None, "Incorrect flow"