From 728b075cb5e0df9c386f8377e0f6961e5ccc5143 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Tue, 16 Jun 2020 17:08:39 +0300 Subject: Add env script pseudo-builtin Also disable C++ recipe tests when cross-testing. --- libbuild2/test/script/parser+env.test.testscript | 77 ++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 libbuild2/test/script/parser+env.test.testscript (limited to 'libbuild2/test') diff --git a/libbuild2/test/script/parser+env.test.testscript b/libbuild2/test/script/parser+env.test.testscript new file mode 100644 index 0000000..b1e864c --- /dev/null +++ b/libbuild2/test/script/parser+env.test.testscript @@ -0,0 +1,77 @@ +# file : libbuild2/test/script/parser+env.test.testscript +# license : MIT; see accompanying LICENSE file + +: unset +: +{ + $* <'env -u a -- cmd' >'env -u a -- cmd' : short-opt + $* <'env --unset a -- cmd' >'env -u a -- cmd' : long-opt + $* <'env --unset=a -- cmd' >'env -u a -- cmd' : long-opt-eq + $* <'env -u a -u b -- cmd' >'env -u a -u b -- cmd' : mult-opt + $* <'env -u "a b" -- cmd' >"env -u 'a b' -- cmd" : quote + + : invalid-opt + : + $* <'env -w a -- cmd' 2>>EOE != 0 + testscript:1:5: error: env: expected variable assignment instead of '-w' + EOE + + : no-val + : + $* <'env -u -- cmd' 2>>EOE != 0 + testscript:1:8: error: env: missing value for option '-u' + EOE + + : empty-val + : + $* <'env --unset= -- cmd' 2>>EOE != 0 + testscript:1:5: error: env: empty value for option '--unset' + EOE + + : invalid-val + : + $* <'env --unset=a=b -- cmd' 2>>EOE != 0 + testscript:1:5: error: env: invalid value 'a=b' for option '--unset': contains '=' + EOE + + : no-sep + : + $* <'env -u a cmd' 2>>EOE != 0 + testscript:1:13: error: env: expected option, variable, or '--' separator instead of + EOE + + $* <'env && cmd' 2>>EOE != 0 + testscript:1:5: error: env: expected option, variable, or '--' separator instead of '&&' + EOE +} + +: set +: +{ + $* <'env a=b -- cmd' >'env a=b -- cmd' : var + $* <'env -u a b=c -- cmd' >'env -u a - b=c -- cmd' : opt-var + $* <'env a="b c" -- cmd' >"env a='b c' -- cmd" : quote + $* <'env "a b"=c -- cmd' >"env 'a b=c' -- cmd" : quote-name + + : double-quote + : + $* <>EOF + env a="'a\"'" -- cmd + EOF + + : expected-assign + : + $* <'env a -- cmd' 2>>EOE != 0 + testscript:1:5: error: env: expected variable assignment instead of 'a' + EOE +} + +: non-first +: +$* <'cmd1 && env -u a b=c -- cmd2' >'cmd1 && env -u a - b=c -- cmd2' + +: no-cmd +: +$* <'env -u a --' 2>>EOE != 0 + testscript:1:12: error: env: expected program name instead of + EOE -- cgit v1.1