diff options
Diffstat (limited to 'libbuild2/build/script/parser+body.test.testscript')
-rw-r--r-- | libbuild2/build/script/parser+body.test.testscript | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/libbuild2/build/script/parser+body.test.testscript b/libbuild2/build/script/parser+body.test.testscript new file mode 100644 index 0000000..11c2609 --- /dev/null +++ b/libbuild2/build/script/parser+body.test.testscript @@ -0,0 +1,133 @@ +# file : libbuild2/build/script/parser+body.test.testscript +# license : MIT; see accompanying LICENSE file + +test.options += -b + +: lines +: +$* <<EOI >>EOO + s = 'foo' + if echo "$s" | sed 's/o/a/p' >>>? 'bar' + f = 'baz' + else + f = 'fox' + end + depdb clear + depdb string "$s" + depdb hash "$f" + foo "$s" "$f" + EOI + foo "$s" "$f" + EOO + +: temp_dir +: +{ + test.options += -t + + : no + : + $* <<EOI >false + foo + EOI + + : yes + : + $* <<EOI >true + foo + f = $~/f + EOI + + : preamble-no + : + $* <<EOI >false + f1 = $~/f2 + depdb string "$f1" + f2 = $~/f3 + depdb string "$f2" + foo "$f1" "$f2" + EOI + + : preamble-yes + : + $* <<EOI >true + f1 = $~/f1 + depdb string "$f1" + f2 = $~/f2 + foo "$f2" + EOI +} + +: command +: +$* <<EOF >>EOF + foo >| 2>- &a &?b + foo >=c 2>~/error:.*/ &!c + foo >>:/~%EOS% + %.* + abc + %xyz.*% + EOS + EOF + +: if-else +: +$* <<EOF >>EOF + if foo + bar + elif fox + if fix + baz + end + biz + end + if! foo + bar + elif! fox + baz + end + EOF + +: quoting +: +$* <<EOI >>EOO + foo 'bar' "baz" '' "" + "$foo" + "foo$bar" + "fo"o + "foo"\" + "foo\\" + "foo\"<" + fo\"o + fo\\o + fo\<o + "fo<o" + 'fo\"o' + f"oo" "ba"r + f"oo" 'ba'r + "fo"'o' + 'foo b"ar baz' + EOI + foo 'bar' "baz" '' "" + "$foo" + "foo$bar" + "foo" + "foo\"" + "foo\\" + "foo\"<" + fo\"o + fo\\o + fo\<o + "fo<o" + 'fo\"o' + "foo bar" + "foo" 'bar' + "foo" + 'foo b"ar baz' + EOO + +: no-newline +: +$* <:'foo' 2>>EOE != 0 + buildfile:11:4: error: expected newline instead of <end of file> + EOE |