diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-10-18 11:46:35 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-10-18 11:46:35 +0200 |
commit | f37eb3999bce2ea46fef0214e33279b81609e596 (patch) | |
tree | bef567d0a9fe53cd1397b9b8e1a97c994cdb6d5d /shell/hush_test | |
parent | 7673e7fda42a2665f8528d531e9596f264643149 (diff) | |
download | busybox-w32-f37eb3999bce2ea46fef0214e33279b81609e596.tar.gz busybox-w32-f37eb3999bce2ea46fef0214e33279b81609e596.tar.bz2 busybox-w32-f37eb3999bce2ea46fef0214e33279b81609e596.zip |
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 <vda.linux@googlemail.com>
Diffstat (limited to 'shell/hush_test')
-rw-r--r-- | shell/hush_test/hush-misc/empty_args.right | 6 | ||||
-rwxr-xr-x | shell/hush_test/hush-misc/empty_args.tests | 9 | ||||
-rw-r--r-- | shell/hush_test/hush-psubst/emptytick.right | 7 | ||||
-rwxr-xr-x | shell/hush_test/hush-psubst/emptytick.tests | 8 |
4 files changed, 26 insertions, 4 deletions
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 @@ | |||
1 | Null 0th arg: | ||
2 | hush: can't execute '': No such file or directory | ||
3 | 127 | ||
4 | Null 1st arg: | ||
5 | 0 | ||
6 | 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 @@ | |||
1 | echo Null 0th arg: | ||
2 | "" | ||
3 | echo $? | ||
4 | echo Null 1st arg: | ||
5 | # printf without args would print usage info | ||
6 | printf "" | ||
7 | echo $? | ||
8 | echo Null arg in exec: | ||
9 | 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 @@ | |||
1 | 0 | 1 | 0 |
2 | 0 | 2 | 0 |
3 | hush: can't execute '': No such file or directory | ||
3 | 0 | 4 | 0 |
5 | hush: can't execute '': No such file or directory | ||
4 | 0 | 6 | 0 |
5 | 0 | 7 | 0 |
6 | 0 | 8 | 0 |
7 | 0 | 9 | 0 |
8 | 0 | 10 | 0 |
11 | hush: can't execute '': No such file or directory | ||
9 | 0 | 12 | 0 |
13 | hush: can't execute '': No such file or directory | ||
10 | 0 | 14 | 0 |
11 | 0 | 15 | 0 |
12 | 0 | 16 | 0 |
13 | 0 | 17 | hush: can't execute '': No such file or directory |
14 | 0 | ||
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 @@ | |||
1 | true; ``; echo $? | 1 | true; ``; echo $? |
2 | false; ``; echo $? | 2 | false; ``; echo $? |
3 | # UNFIXED BUG. bash sets $? to 127: | ||
3 | true; `""`; echo $? | 4 | true; `""`; echo $? |
5 | # bash sets $? to 127: | ||
4 | false; `""`; echo $? | 6 | false; `""`; echo $? |
5 | true; ` `; echo $? | 7 | true; ` `; echo $? |
6 | false; ` `; echo $? | 8 | false; ` `; echo $? |
7 | 9 | ||
8 | true; $(); echo $? | 10 | true; $(); echo $? |
9 | false; $(); echo $? | 11 | false; $(); echo $? |
12 | # bash sets $? to 127: | ||
10 | true; $(""); echo $? | 13 | true; $(""); echo $? |
14 | # bash sets $? to 127: | ||
11 | false; $(""); echo $? | 15 | false; $(""); echo $? |
12 | true; $( ); echo $? | 16 | true; $( ); echo $? |
13 | false; $( ); echo $? | 17 | false; $( ); echo $? |
14 | 18 | ||
15 | true; exec ''; echo $? | 19 | exec ''; echo $? |
16 | false; exec ''; echo $? | 20 | echo Not reached |