diff options
Diffstat (limited to 'shell/hush_test/hush-vars/param_expand_indicate_error.tests')
-rwxr-xr-x | shell/hush_test/hush-vars/param_expand_indicate_error.tests | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/shell/hush_test/hush-vars/param_expand_indicate_error.tests b/shell/hush_test/hush-vars/param_expand_indicate_error.tests new file mode 100755 index 000000000..6b431d311 --- /dev/null +++ b/shell/hush_test/hush-vars/param_expand_indicate_error.tests @@ -0,0 +1,40 @@ +# do all of these in subshells since it's supposed to error out + +# first try some invalid patterns +hush -c 'echo ${?}' +hush -c 'echo ${:?}' + +# then some funky ones +hush -c 'echo ${#?}' +hush -c 'echo ${#:?}' + +# now some valid ones +hush -c 'set --; echo _$1' +hush -c 'set --; echo _${1?}' +hush -c 'set --; echo _${1:?}' +hush -c 'set --; echo _${1?word}' +hush -c 'set --; echo _${1:?word}' + +hush -c 'set -- aaaa; echo _$1' +hush -c 'set -- aaaa; echo _${1?}' +hush -c 'set -- aaaa; echo _${1:?}' +hush -c 'set -- aaaa; echo _${1?word}' +hush -c 'set -- aaaa; echo _${1:?word}' + +hush -c 'unset f; echo _$f' +hush -c 'unset f; echo _${f?}' +hush -c 'unset f; echo _${f:?}' +hush -c 'unset f; echo _${f?word}' +hush -c 'unset f; echo _${f:?word}' + +hush -c 'f=; echo _$f' +hush -c 'f=; echo _${f?}' +hush -c 'f=; echo _${f:?}' +hush -c 'f=; echo _${f?word}' +hush -c 'f=; echo _${f:?word}' + +hush -c 'f=fff; echo _$f' +hush -c 'f=fff; echo _${f?}' +hush -c 'f=fff; echo _${f:?}' +hush -c 'f=fff; echo _${f?word}' +hush -c 'f=fff; echo _${f:?word}' |