From 602d13cba552fadb8481283aa7872a4b9f206c48 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sun, 13 May 2007 18:34:53 +0000 Subject: hush: fix '{ false; echo $?; }' bug. hush: expand testsuite. variable expansion is still very broken --- shell/hush_test/hush-bugs/argv0.right | 1 + shell/hush_test/hush-bugs/argv0.tests | 4 ++++ shell/hush_test/hush-bugs/quote1.right | 1 + shell/hush_test/hush-bugs/quote1.tests | 2 ++ shell/hush_test/hush-bugs/quote2.right | 1 + shell/hush_test/hush-bugs/quote2.tests | 2 ++ shell/hush_test/hush-bugs/starquoted.right | 1 + shell/hush_test/hush-bugs/starquoted.tests | 4 ++++ shell/hush_test/hush-vars/star.right | 5 +++++ shell/hush_test/hush-vars/star.tests | 8 ++++++++ shell/hush_test/hush-vars/var.right | 2 +- shell/hush_test/hush-vars/var.tests | 1 - 12 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 shell/hush_test/hush-bugs/argv0.right create mode 100755 shell/hush_test/hush-bugs/argv0.tests create mode 100644 shell/hush_test/hush-bugs/quote1.right create mode 100755 shell/hush_test/hush-bugs/quote1.tests create mode 100644 shell/hush_test/hush-bugs/quote2.right create mode 100755 shell/hush_test/hush-bugs/quote2.tests create mode 100644 shell/hush_test/hush-bugs/starquoted.right create mode 100755 shell/hush_test/hush-bugs/starquoted.tests create mode 100644 shell/hush_test/hush-vars/star.right create mode 100755 shell/hush_test/hush-vars/star.tests (limited to 'shell/hush_test') diff --git a/shell/hush_test/hush-bugs/argv0.right b/shell/hush_test/hush-bugs/argv0.right new file mode 100644 index 000000000..d86bac9de --- /dev/null +++ b/shell/hush_test/hush-bugs/argv0.right @@ -0,0 +1 @@ +OK diff --git a/shell/hush_test/hush-bugs/argv0.tests b/shell/hush_test/hush-bugs/argv0.tests new file mode 100755 index 000000000..f5c40f6fe --- /dev/null +++ b/shell/hush_test/hush-bugs/argv0.tests @@ -0,0 +1,4 @@ +if test $# = 0; then + exec "$THIS_SH" "$0" arg +fi +echo OK diff --git a/shell/hush_test/hush-bugs/quote1.right b/shell/hush_test/hush-bugs/quote1.right new file mode 100644 index 000000000..cb382054c --- /dev/null +++ b/shell/hush_test/hush-bugs/quote1.right @@ -0,0 +1 @@ +'1' diff --git a/shell/hush_test/hush-bugs/quote1.tests b/shell/hush_test/hush-bugs/quote1.tests new file mode 100755 index 000000000..f55895466 --- /dev/null +++ b/shell/hush_test/hush-bugs/quote1.tests @@ -0,0 +1,2 @@ +a=1 +echo "'$a'" diff --git a/shell/hush_test/hush-bugs/quote2.right b/shell/hush_test/hush-bugs/quote2.right new file mode 100644 index 000000000..3bc9edcd6 --- /dev/null +++ b/shell/hush_test/hush-bugs/quote2.right @@ -0,0 +1 @@ +>1 diff --git a/shell/hush_test/hush-bugs/quote2.tests b/shell/hush_test/hush-bugs/quote2.tests new file mode 100755 index 000000000..bd966f30b --- /dev/null +++ b/shell/hush_test/hush-bugs/quote2.tests @@ -0,0 +1,2 @@ +a=1 +echo ">$a" diff --git a/shell/hush_test/hush-bugs/starquoted.right b/shell/hush_test/hush-bugs/starquoted.right new file mode 100644 index 000000000..fedaf4805 --- /dev/null +++ b/shell/hush_test/hush-bugs/starquoted.right @@ -0,0 +1 @@ +.1 abc d e f. diff --git a/shell/hush_test/hush-bugs/starquoted.tests b/shell/hush_test/hush-bugs/starquoted.tests new file mode 100755 index 000000000..3be2026b7 --- /dev/null +++ b/shell/hush_test/hush-bugs/starquoted.tests @@ -0,0 +1,4 @@ +if test $# = 0; then + exec "$THIS_SH" starquoted.tests 1 abc 'd e f' +fi +for a in "$*"; do echo ".$a."; done diff --git a/shell/hush_test/hush-vars/star.right b/shell/hush_test/hush-vars/star.right new file mode 100644 index 000000000..b33b176b2 --- /dev/null +++ b/shell/hush_test/hush-vars/star.right @@ -0,0 +1,5 @@ +.1. +.abc. +.d. +.e. +.f. diff --git a/shell/hush_test/hush-vars/star.tests b/shell/hush_test/hush-vars/star.tests new file mode 100755 index 000000000..1914dde44 --- /dev/null +++ b/shell/hush_test/hush-vars/star.tests @@ -0,0 +1,8 @@ +if test $# = 0; then + exec "$THIS_SH" star.tests 1 abc 'd e f' +fi +# 'd e f' should be split into 3 separate args: +for a in $*; do echo ".$a."; done + +# must produce .1 abc d e f. Currently does not +#for a in "$*"; do echo ".$a."; done diff --git a/shell/hush_test/hush-vars/var.right b/shell/hush_test/hush-vars/var.right index c13b98e38..14b2314d9 100644 --- a/shell/hush_test/hush-vars/var.right +++ b/shell/hush_test/hush-vars/var.right @@ -1,4 +1,4 @@ http://busybox.net http://busybox.net_abc 1 -0 +1 diff --git a/shell/hush_test/hush-vars/var.tests b/shell/hush_test/hush-vars/var.tests index b0637ea6b..0a63696c9 100755 --- a/shell/hush_test/hush-vars/var.tests +++ b/shell/hush_test/hush-vars/var.tests @@ -6,5 +6,4 @@ echo ${URL}_abc true false; echo $? true -# BUG: prints 0, must be 1 { false; echo $?; } -- cgit v1.2.3