diff options
Diffstat (limited to 'libbuild2/build/script/parser+depdb.test.testscript')
-rw-r--r-- | libbuild2/build/script/parser+depdb.test.testscript | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/libbuild2/build/script/parser+depdb.test.testscript b/libbuild2/build/script/parser+depdb.test.testscript new file mode 100644 index 0000000..573ba6d --- /dev/null +++ b/libbuild2/build/script/parser+depdb.test.testscript @@ -0,0 +1,139 @@ +# file : libbuild2/build/script/parser+depdb.test.testscript +# license : MIT; see accompanying LICENSE file + +test.options += -d + +: clear +: +{ + : multiple + : + $* <<EOI 2>>EOE != 0 + depdb clear + depdb clear + EOI + buildfile:12:1: error: multiple 'depdb clear' builtin calls + buildfile:11:1: info: previous call is here + EOE + + : after-string + : + $* <<EOI 2>>EOE != 0 + a = b + depdb string "$a" + depdb clear + EOI + buildfile:13:1: error: 'depdb clear' should be the first 'depdb' builtin call + buildfile:12:1: info: first 'depdb' call is here + EOE +} + +: preamble +: +{ + : no-body + : + $* <<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 + s = 'foo' + if echo "$s" | sed 's/o/a/p' >>>? 'bar' + f = 'baz' + else + f = 'fox' + end + depdb string "$s" + depdb hash "$f" + EOO + + : temp_dir + : + { + test.options += -t + + : no + : + $* <<EOI >false + f = foo + depdb hash "$f" + f = $~/f + foo "$f" + EOI + + : yes + : + $* <<EOI >true + f = $~/f + depdb hash "$f" + foo "$f" + EOI + + : yes-mult + : + $* <<EOI >true + f = $~/f + depdb hash "$f" + s = "abc" + depdb string "$s" + foo "$f" + EOI + } +} + +: impure-function +: +{ + : var-assignment + : + $* <<EOI 2>>~%EOE% != 0 + v = $getenv('VAR') + EOI + buildfile:11:6: error: call to impure function getenv is only allowed in depdb preamble + % info: .+% + EOE + + : quoted + : + $* <<EOI 2>>~%EOE% != 0 + v = "$getenv('VAR')" + EOI + buildfile:11:7: error: call to impure function getenv is only allowed in depdb preamble + % info: .*% + EOE + + : if-cond + : + $* <<EOI 2>>~%EOE% != 0 + if ($getenv('VAR') == 'yes') + foo + end + EOI + buildfile:11:6: error: call to impure function getenv is only allowed in depdb preamble + % info: .+% + EOE + + : command + : + $* <<EOI 2>>~%EOE% != 0 + $getenv('VAR') + EOI + buildfile:11:2: error: call to impure function getenv is only allowed in depdb preamble + % info: .+% + EOE + + : non-functions + : + { + $* <'$getenv' : var + $* <'$getenv (v ? a : b)' : eval + } +} |