From f37eb3999bce2ea46fef0214e33279b81609e596 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sun, 18 Oct 2009 11:46:35 +0200 Subject: hush: fix handling of empty arguments function old new delta builtin_exec 25 83 +58 parse_stream 2242 2261 +19 run_pipe 1782 1787 +5 static.pseudo_null_str - 3 +3 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 3/0 up/down: 85/0) Total: 85 bytes Signed-off-by: Denys Vlasenko --- shell/hush_test/hush-misc/empty_args.right | 6 ++++++ shell/hush_test/hush-misc/empty_args.tests | 9 +++++++++ shell/hush_test/hush-psubst/emptytick.right | 7 +++++-- shell/hush_test/hush-psubst/emptytick.tests | 8 ++++++-- 4 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 shell/hush_test/hush-misc/empty_args.right create mode 100755 shell/hush_test/hush-misc/empty_args.tests (limited to 'shell/hush_test') diff --git a/shell/hush_test/hush-misc/empty_args.right b/shell/hush_test/hush-misc/empty_args.right new file mode 100644 index 000000000..38ed8b8be --- /dev/null +++ b/shell/hush_test/hush-misc/empty_args.right @@ -0,0 +1,6 @@ +Null 0th arg: +hush: can't execute '': No such file or directory +127 +Null 1st arg: +0 +Null arg in exec: diff --git a/shell/hush_test/hush-misc/empty_args.tests b/shell/hush_test/hush-misc/empty_args.tests new file mode 100755 index 000000000..efce5494a --- /dev/null +++ b/shell/hush_test/hush-misc/empty_args.tests @@ -0,0 +1,9 @@ +echo Null 0th arg: +"" +echo $? +echo Null 1st arg: +# printf without args would print usage info +printf "" +echo $? +echo Null arg in exec: +exec printf "" diff --git a/shell/hush_test/hush-psubst/emptytick.right b/shell/hush_test/hush-psubst/emptytick.right index d4b70c58a..1f60ecfda 100644 --- a/shell/hush_test/hush-psubst/emptytick.right +++ b/shell/hush_test/hush-psubst/emptytick.right @@ -1,14 +1,17 @@ 0 0 +hush: can't execute '': No such file or directory 0 +hush: can't execute '': No such file or directory 0 0 0 0 0 +hush: can't execute '': No such file or directory 0 +hush: can't execute '': No such file or directory 0 0 0 -0 -0 +hush: can't execute '': No such file or directory diff --git a/shell/hush_test/hush-psubst/emptytick.tests b/shell/hush_test/hush-psubst/emptytick.tests index af3a1836c..a269f025a 100755 --- a/shell/hush_test/hush-psubst/emptytick.tests +++ b/shell/hush_test/hush-psubst/emptytick.tests @@ -1,16 +1,20 @@ true; ``; echo $? false; ``; echo $? +# UNFIXED BUG. bash sets $? to 127: true; `""`; echo $? +# bash sets $? to 127: false; `""`; echo $? true; ` `; echo $? false; ` `; echo $? true; $(); echo $? false; $(); echo $? +# bash sets $? to 127: true; $(""); echo $? +# bash sets $? to 127: false; $(""); echo $? true; $( ); echo $? false; $( ); echo $? -true; exec ''; echo $? -false; exec ''; echo $? +exec ''; echo $? +echo Not reached -- cgit v1.2.3