X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tests%2Fmore-exp.tests;h=d01d96864b213baa2271f783dc13c7884f6afca9;hb=cce855bc5b117cb7ae70064131120687bc69fac0;hp=7f8ae50d2c0a178c8a14d5175404acc49ae1548e;hpb=e8ce775db824de329b81293b4e5d8fbd65624528;p=platform%2Fupstream%2Fbash.git diff --git a/tests/more-exp.tests b/tests/more-exp.tests index 7f8ae50..d01d968 100644 --- a/tests/more-exp.tests +++ b/tests/more-exp.tests @@ -189,6 +189,12 @@ expect '' recho "x$*y" expect '' recho "xy$*" +expect '' +recho x"$*"y +expect '' +recho xy"$*" +expect '' +recho "$*"xy expect '<>' recho "$*" expect nothing @@ -196,15 +202,44 @@ recho $* unset undef ; set "" +expect '<>' +recho ${undef-"$*"} +expect '' +recho ${undef-"x$*y"} +expect '' +recho ${undef-"$*xy"} +expect '' +recho ${undef-"xy$*"} +expect '' +recho ${undef-x"$*"y} +expect '' +recho ${undef-xy"$*"} +expect '' +recho ${undef-"$*"xy} +expect '<>' +recho "${undef-$*}" +expect nothing +recho ${undef-$*} + +expect '<>' recho ${undef-"$zzz"} +expect '' recho x${undef-"$zzz"} +expect '' recho x${undef-"$@"} +expect nothing recho ${undef-"$@"} +expect '' recho ${undef-"$zzz"}x +expect '' recho ${undef-"$@"}x +expect '' recho "$@"x +expect '' recho "$zzz"x +expect '<^?>' recho ${undef-} +expect '<^?>' recho ${undef-""} yyy="" @@ -301,3 +336,101 @@ recho ${abc:-G { I } K } # should echo a* unset foo recho "${foo:-"a"}*" + +f () +{ + echo "Number of args: $#" + echo "<\${*-x}>: <${*-x}>" + echo "<\${@-x}>: <${@-x}>" +} + +f +f '' +f '' '' + +set 1 2 3 4 5 + +expect '<5>' +recho ${#} +expect '<5>' +recho ${#:foo} +expect '<5>' +recho ${#:-foo} +expect '<5>' +recho ${#-posparams} +expect '<5>' +recho ${#:-posparams} + +expect '<0>' +recho ${#!} + +expect nothing +recho $! +expect nothing +recho ${!} + +expect nothing +recho $8 +expect nothing +recho ${8} + +shift $# + +expect '<0>' +recho ${#} +expect '<0>' +recho ${#:foo} +expect '<0>' +recho ${#:-foo} +expect '<0>' +recho ${#-posparams} +expect '<0>' +recho ${#:-posparams} + +expect '' +recho ${!-posparams} +expect '' +recho ${!:-posparams} + +expect '<2>' +recho ${#-} + +expect '<0>' +recho ${#-posparams} + +expect '<0>' +recho ${#?:-xyz} + +expect '<1>' +recho ${#?} + +set a b c d e + +expect '<5>' +recho ${#} +expect '<5>' +recho ${#?:-xyz} + +shift $# + +expect '<0>' +recho ${#:-foo} + +expect a bad substitution error +recho ${#:} +expect a bad substitution error +recho ${#/} +expect a bad substitution error +recho ${#%} +expect a bad substitution error +recho ${#=} +expect a bad substitution error +recho ${#+} +expect a bad substitution error +recho ${#1xyz} + +expect a math syntax error +recho ${#:%} + +expect '<0>' +recho ${#:-}