From 64925384c9cf5e0d986e183577da286bb3207ce7 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Tue, 25 Jul 2017 14:55:05 +0200 Subject: ash: add a few tests from hush-vars/* Signed-off-by: Denys Vlasenko --- shell/ash_test/ash-vars/param_expand_alt.tests | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 shell/ash_test/ash-vars/param_expand_alt.tests (limited to 'shell/ash_test/ash-vars/param_expand_alt.tests') diff --git a/shell/ash_test/ash-vars/param_expand_alt.tests b/shell/ash_test/ash-vars/param_expand_alt.tests new file mode 100755 index 000000000..c9c4249af --- /dev/null +++ b/shell/ash_test/ash-vars/param_expand_alt.tests @@ -0,0 +1,28 @@ +# First try some invalid patterns. Do in subshell due to parsing error. +# (set argv0 to "SHELL" to avoid "/path/to/shell: blah" in error messages) +"$THIS_SH" -c 'echo ${+} ; echo moo' SHELL +"$THIS_SH" -c 'echo ${:+} ; echo moo' SHELL + +# now some funky ones. +# ${V+word} "if V unset, then substitute nothing, else substitute word" +# ${V:+word} "if V unset or '', then substitute nothing, else substitute word" +# bash doesn't accept ${#+}. ash prints 0 (not $#). +echo _${#+}_ _${#:+}_ +# Forms with non-empty word work as expected in both ash and bash. +echo _${#+z}_ _${#:+z}_ + +# now some valid ones +set -- +echo _$1 _${1+} _${1:+} _${1+word} _${1:+word} + +set -- aaaa +echo _$1 _${1+} _${1:+} _${1+word} _${1:+word} + +unset f +echo _$f _${f+} _${f:+} _${f+word} _${f:+word} + +f= +echo _$f _${f+} _${f:+} _${f+word} _${f:+word} + +f=fff +echo _$f _${f+} _${f:+} _${f+word} _${f:+word} -- cgit v1.2.3