diff options
author | Denis Vlasenko | 2007-05-14 16:19:34 +0000 |
---|---|---|
committer | Denis Vlasenko | 2007-05-14 16:19:34 +0000 |
commit | 03eb8bf6ce2cef8f30402b7c2b18e8479f9da1ea (patch) | |
tree | 2ca7e7d1fba638187467c1597f2746b0163c9e76 /shell/hush_test | |
parent | 602d13cba552fadb8481283aa7872a4b9f206c48 (diff) | |
download | busybox-03eb8bf6ce2cef8f30402b7c2b18e8479f9da1ea.zip busybox-03eb8bf6ce2cef8f30402b7c2b18e8479f9da1ea.tar.gz |
hush: move towards more correct variable expansion
hush: fix a few cases in FOR v IN ... construct
unfortunately, code growth is big - ~600 bytes
Diffstat (limited to 'shell/hush_test')
-rw-r--r-- | shell/hush_test/hush-bugs/quote3.right | 8 | ||||
-rw-r--r-- | shell/hush_test/hush-bugs/quote3.tests | 12 | ||||
-rw-r--r-- | shell/hush_test/hush-vars/var_subst_in_for.right | 40 | ||||
-rw-r--r-- | shell/hush_test/hush-vars/var_subst_in_for.tests | 40 |
4 files changed, 100 insertions, 0 deletions
diff --git a/shell/hush_test/hush-bugs/quote3.right b/shell/hush_test/hush-bugs/quote3.right new file mode 100644 index 0000000..11443f5 --- /dev/null +++ b/shell/hush_test/hush-bugs/quote3.right @@ -0,0 +1,8 @@ +Testing: in $empty"" +.. +Testing: in "$*" +.abc d e. +Testing: in "$@" +.abc. +.d e. +Finished diff --git a/shell/hush_test/hush-bugs/quote3.tests b/shell/hush_test/hush-bugs/quote3.tests new file mode 100644 index 0000000..c52e040 --- /dev/null +++ b/shell/hush_test/hush-bugs/quote3.tests @@ -0,0 +1,12 @@ +if test $# = 0; then + exec "$THIS_SH" quote3.tests abc "d e" +fi + +echo 'Testing: in $empty""' +empty='' +for a in $empty""; do echo ".$a."; done +echo 'Testing: in "$*"' +for a in "$*"; do echo ".$a."; done +echo 'Testing: in "$@"' +for a in "$@"; do echo ".$a."; done +echo Finished diff --git a/shell/hush_test/hush-vars/var_subst_in_for.right b/shell/hush_test/hush-vars/var_subst_in_for.right new file mode 100644 index 0000000..c8aca1c --- /dev/null +++ b/shell/hush_test/hush-vars/var_subst_in_for.right @@ -0,0 +1,40 @@ +Testing: in x y z +.x. +.y. +.z. +Testing: in u $empty v +.u. +.v. +Testing: in u " $empty" v +.u. +. . +.v. +Testing: in u $empty $empty$a v +.u. +.a. +.v. +Testing: in $a_b +.a. +.b. +Testing: in $* +.abc. +.d. +.e. +Testing: in $@ +.abc. +.d. +.e. +Testing: in -$*- +.-abc. +.d. +.e-. +Testing: in -$@- +.-abc. +.d. +.e-. +Testing: in $a_b -$a_b- +.a. +.b. +.-a. +.b-. +Finished diff --git a/shell/hush_test/hush-vars/var_subst_in_for.tests b/shell/hush_test/hush-vars/var_subst_in_for.tests new file mode 100644 index 0000000..4d1c112 --- /dev/null +++ b/shell/hush_test/hush-vars/var_subst_in_for.tests @@ -0,0 +1,40 @@ +if test $# = 0; then + exec "$THIS_SH" var_subst_in_for.tests abc "d e" +fi + +echo 'Testing: in x y z' +for a in x y z; do echo ".$a."; done + +echo 'Testing: in u $empty v' +empty='' +for a in u $empty v; do echo ".$a."; done + +echo 'Testing: in u " $empty" v' +empty='' +for a in u " $empty" v; do echo ".$a."; done + +echo 'Testing: in u $empty $empty$a v' +a='a' +for a in u $empty $empty$a v; do echo ".$a."; done + +echo 'Testing: in $a_b' +a_b='a b' +for a in $a_b; do echo ".$a."; done + +echo 'Testing: in $*' +for a in $*; do echo ".$a."; done + +echo 'Testing: in $@' +for a in $@; do echo ".$a."; done + +echo 'Testing: in -$*-' +for a in -$*-; do echo ".$a."; done + +echo 'Testing: in -$@-' +for a in -$@-; do echo ".$a."; done + +echo 'Testing: in $a_b -$a_b-' +a_b='a b' +for a in $a_b -$a_b-; do echo ".$a."; done + +echo Finished |