diff options
Diffstat (limited to 'unit-tests/test/script/parser/scope-if.test')
-rw-r--r-- | unit-tests/test/script/parser/scope-if.test | 681 |
1 files changed, 353 insertions, 328 deletions
diff --git a/unit-tests/test/script/parser/scope-if.test b/unit-tests/test/script/parser/scope-if.test index e04c47e..4f524cf 100644 --- a/unit-tests/test/script/parser/scope-if.test +++ b/unit-tests/test/script/parser/scope-if.test @@ -1,365 +1,450 @@ -: if-true +# file : unit-tests/test/script/parser/scope-if.test +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +: if : -$* -s <<EOI >>EOO -if true foo -{ - cmd -} -EOI { - ? true foo + : true + : + $* -s <<EOI >>EOO + if true foo { cmd } -} -EOO + EOI + { + ? true foo + { + cmd + } + } + EOO -: if-false -: -$* -s <<EOI >>EOO -if false foo -{ - cmd -} -EOI -{ - ? false foo -} -EOO + : false + : + $* -s <<EOI >>EOO + if false foo + { + cmd + } + EOI + { + ? false foo + } + EOO -: ifn-true -: -$* -s <<EOI >>EOO -if! true -{ - cmd -} -EOI -{ - ? true -} -EOO + : not-true + : + $* -s <<EOI >>EOO + if! true + { + cmd + } + EOI + { + ? true + } + EOO -: ifn-false -: -$* -s <<EOI >>EOO -if! false -{ - cmd -} -EOI -{ - ? false + : not-false + : + $* -s <<EOI >>EOO + if! false { cmd } + EOI + { + ? false + { + cmd + } + } + EOO + + : eos-inside + : + $* <<EOI 2>>EOE != 0 + if + { + EOI + testscript:3:1: error: expected '}' at the end of the scope + EOE + } -EOO -: elif-true +: elif : -$* -s <<EOI >>EOO -if false -{ - cmd -} -elif true { - cmd1 -} -EOI -{ - ? false - ? true + : true + : + $* -s <<EOI >>EOO + if false + { + cmd + } + elif true { cmd1 } -} -EOO + EOI + { + ? false + ? true + { + cmd1 + } + } + EOO -: elif-false -: -$* -s <<EOI >>EOO -if false -{ - cmd -} -elif false -{ - cmd -} -EOI -{ - ? false - ? false -} -EOO + : false + : + $* -s <<EOI >>EOO + if false + { + cmd + } + elif false + { + cmd + } + EOI + { + ? false + ? false + } + EOO -: elifn-false -: -$* -s <<EOI >>EOO -if false -{ - cmd -} -elif! false -{ - cmd1 -} -EOI -{ - ? false - ? false + : not-false + : + $* -s <<EOI >>EOO + if false + { + cmd + } + elif! false { cmd1 } -} -EOO + EOI + { + ? false + ? false + { + cmd1 + } + } + EOO -: elifn-true -: -$* -s <<EOI >>EOO -if false -{ - cmd -} -elif! true -{ - cmd -} -EOI -{ - ? false - ? true -} -EOO + : not-true + : + $* -s <<EOI >>EOO + if false + { + cmd + } + elif! true + { + cmd + } + EOI + { + ? false + ? true + } + EOO -: else-true -: -$* -s <<EOI >>EOO -if false -{ - cmd -} -else -{ - cmd1 -} -EOI -{ - ? false + : after-else + : + $* <<EOI 2>>EOE != 0 + if false { - cmd1 + cmd + } + else + { + cmd + } + elif true + { + cmd } + EOI + testscript:9:1: error: 'elif' after 'else' + EOE } -EOO -: else-false +: else : -$* -s <<EOI >>EOO -if true -{ - cmd1 -} -else { - cmd -} -EOI -{ - ? true + : true + : + $* -s <<EOI >>EOO + if false + { + cmd + } + else { cmd1 } -} -EOO - -: if-chain -: -$* -s <<EOI >>EOO -if false -{ - cmd -} -elif false -{ - cmd - cmd -} -elif false -{ - cmd -} -elif true -{ - cmd1 - cmd2 -} -elif false -{ - cmd -} -else -{ - cmd - cmd -} -EOI -{ - ? false - ? false - ? false - ? true + EOI { + ? false { cmd1 } + } + EOO + + : false + : + $* -s <<EOI >>EOO + if true + { + cmd1 + } + else + { + cmd + } + EOI + { + ? true { - cmd2 + cmd1 } } -} -EOO + EOO -: nested-take -: -$* -s <<EOI >>EOO -if true -{ - cmd1 + : chain + : + $* -s <<EOI >>EOO if false { cmd } elif false { - if true - { - cmd - } + cmd + cmd } - else + elif false + { + cmd + } + elif true { + cmd1 cmd2 } - cmd3 -} -EOI -{ - ? true + elif false { - { - cmd1 - } + cmd + } + else + { + cmd + cmd + } + EOI + { + ? false ? false ? false + ? true { { + cmd1 + } + { cmd2 } } - { - cmd3 - } } -} -EOO + EOO -: nested-skip -: -$* -s <<EOI >>EOO -if false -{ - cmd1 + : scope-expected + : + $* <<EOI 2>>EOE != 0 + if + { + cmd + } + else + cmd + EOI + testscript:5:1: error: expected scope after 'else' + EOE + + : after-else + : + $* <<EOI 2>>EOE != 0 if false { cmd } - elif false + else { - if true - { - cmd - } + cmd } else { - cmd2 + cmd } - cmd3 + EOI + testscript:9:1: error: 'else' after 'else' + EOE } -else -{ - cmd -} -EOI + +: nested +: { - ? false + : take + : + $* -s <<EOI >>EOO + if true { + cmd1 + if false { cmd } + elif false + { + if true + { + cmd + } + } + else + { + cmd2 + } + cmd3 } -} -EOO + EOI + { + ? true + { + { + cmd1 + } + ? false + ? false + { + { + cmd2 + } + } + { + cmd3 + } + } + } + EOO -: demote-group -: Chain remains a group -: -$* -s <<EOI >>EOO -if false -{ - cmd -} -elif true -{ - cmd1 - cmd2 -} -else -{ - cmd -} -EOI -{ - ? false - ? true + : skip + : + $* -s <<EOI >>EOO + if false { + cmd1 + if false { - cmd1 + cmd } + elif false + { + if true + { + cmd + } + } + else { cmd2 } + cmd3 + } + else + { + cmd + } + EOI + { + ? false + { + { + cmd + } + } } + EOO } -EOO -: demote-test -: Chain demoted to test +: demote : -$* -s <<EOI >>EOO -if false { - cmd -} -elif true -{ - cmd1 -} -else -{ - cmd -} -EOI -{ - ? false - ? true + : group + : Chain remains a group + : + $* -s <<EOI >>EOO + if false + { + cmd + } + elif true + { + cmd1 + cmd2 + } + else + { + cmd + } + EOI + { + ? false + ? true + { + { + cmd1 + } + { + cmd2 + } + } + } + EOO + + : test + : Chain demoted to test + : + $* -s <<EOI >>EOO + if false + { + cmd + } + elif true { cmd1 } + else + { + cmd + } + EOI + { + ? false + ? true + { + cmd1 + } + } + EOO } -EOO : line-index : Make sure command line index spans setup/if/teardown @@ -467,63 +552,3 @@ EOI } } EOO - -: eos-inside -: -$* <<EOI 2>>EOE != 0 -if -{ -EOI -testscript:3:1: error: expected '}' at the end of the scope -EOE - -: scope-expected -: -$* <<EOI 2>>EOE != 0 -if -{ - cmd -} -else -cmd -EOI -testscript:5:1: error: expected scope after 'else' -EOE - -: else-after-else -: -$* <<EOI 2>>EOE != 0 -if false -{ - cmd -} -else -{ - cmd -} -else -{ - cmd -} -EOI -testscript:9:1: error: 'else' after 'else' -EOE - -: elif-after-else -: -$* <<EOI 2>>EOE != 0 -if false -{ - cmd -} -else -{ - cmd -} -elif true -{ - cmd -} -EOI -testscript:9:1: error: 'elif' after 'else' -EOE |