diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2020-12-08 22:40:54 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2020-12-11 18:58:13 +0300 |
commit | cb558e4bd2b817bc72275c2bbd90dfe9fe380af9 (patch) | |
tree | 83bb92e3dc8a7744b30a9c9cfd12106780f24691 /tests/test/script/runner/export.testscript | |
parent | ff0bf71889b041be794e8bd47d5be57f6eb07ad1 (diff) |
Add export script pseudo-builtin
Diffstat (limited to 'tests/test/script/runner/export.testscript')
-rw-r--r-- | tests/test/script/runner/export.testscript | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/tests/test/script/runner/export.testscript b/tests/test/script/runner/export.testscript new file mode 100644 index 0000000..f965005 --- /dev/null +++ b/tests/test/script/runner/export.testscript @@ -0,0 +1,133 @@ +# file : tests/test/script/runner/export.testscript +# license : MIT; see accompanying LICENSE file + +.include ../common.testscript + +: group +: +{ + : add + : + $c <<EOI && $b + { + +export foo=bar + + $* -v foo >'bar' + } + EOI + + : change + : + $c <<EOI && $b + { + +export foo=bar + +export foo=baz + + $* -v foo >'baz' + } + EOI + + : remove + : + $c <<EOI && $b + { + +export foo=bar + +export --unset foo + + $* -v foo >'<none>' + } + EOI + + : clear + : + { + : added + : + $c <<EOI && $b + { + +export foo=bar + +export --clear foo + + $* -v foo >'<none>' + } + EOI + + : removed + : + $c <<EOI && $b + { + +export foo=bar + +export --unset foo + +export --clear foo + + $* -v foo >'<none>' + } + EOI + + : non-existent + : + $c <<EOI && $b + { + +export --clear foo + + $* -v foo >'<none>' + } + EOI + } + + : override + : + $c <<EOI && $b + +export foo=bar + + { + +export --unset foo + + export foo=baz; + $* -v foo >'baz' + + -$* -v foo >'<none>' + } + + -$* -v foo >'bar' + EOI +} + +: test +: +{ + : override + : + $c <<EOI && $b + { + export foo=bar; + env foo=baz -- $* -v foo >'baz'; + $* -v foo >'bar' + } + EOI +} + +: invalid +: +{ + : set + : + $c <'export foo' && $b 2>>~%EOE% != 0 + testscript:1:1: error: export: expected variable assignment instead of 'foo' + %.+ + EOE + + : unset + : + $c <'export --unset foo=abc' && $b 2>>~%EOE% != 0 + testscript:1:1: error: export: invalid value 'foo=abc' for option -u|--unset: contains '=' + %.+ + EOE + + : clear + : + $c <'export --clear foo=abc' && $b 2>>~%EOE% != 0 + testscript:1:1: error: export: invalid value 'foo=abc' for option -c|--clear: contains '=' + %.+ + EOE +} |