diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-25 16:29:36 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2017-07-25 16:29:36 +0200 |
commit | b28d4c3462e6b0e66322503f5ef0b941e0bb9cb8 (patch) | |
tree | d25bf78558574cdd8de6b802cf6486f66dfc6db9 /shell/ash_test/ash-vars | |
parent | be669fa1fdff6f751c8cdd3fc18a9fa7a7f46cd3 (diff) | |
download | busybox-w32-b28d4c3462e6b0e66322503f5ef0b941e0bb9cb8.tar.gz busybox-w32-b28d4c3462e6b0e66322503f5ef0b941e0bb9cb8.tar.bz2 busybox-w32-b28d4c3462e6b0e66322503f5ef0b941e0bb9cb8.zip |
ash: [VAR] Move unsetvar functionality into setvareq
Upstream commit:
Date: Tue, 25 May 2010 20:55:05 +0800
[VAR] Move unsetvar functionality into setvareq
This patch moves the unsetvar code into setvareq so that we can
no have a pathological case of an unset variable hanging around
unless it has a bit pinning it like VEXPORT.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
function old new delta
setvareq 227 303 +76
expmeta 517 521 +4
localcmd 364 366 +2
unsetcmd 96 76 -20
unsetvar 129 7 -122
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/2 up/down: 82/-142) Total: -60 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash_test/ash-vars')
-rw-r--r-- | shell/ash_test/ash-vars/readonly0.right | 2 | ||||
-rw-r--r-- | shell/ash_test/ash-vars/unset.right | 17 | ||||
-rwxr-xr-x | shell/ash_test/ash-vars/unset.tests | 40 |
3 files changed, 58 insertions, 1 deletions
diff --git a/shell/ash_test/ash-vars/readonly0.right b/shell/ash_test/ash-vars/readonly0.right index f3a6bde9e..ecc4054f8 100644 --- a/shell/ash_test/ash-vars/readonly0.right +++ b/shell/ash_test/ash-vars/readonly0.right | |||
@@ -10,4 +10,4 @@ Fail:2 | |||
10 | ./readonly0.tests: export: line 27: a: is read only | 10 | ./readonly0.tests: export: line 27: a: is read only |
11 | Fail:2 | 11 | Fail:2 |
12 | 12 | ||
13 | Fail:1 | 13 | ./readonly0.tests: unset: line 44: a: is read only |
diff --git a/shell/ash_test/ash-vars/unset.right b/shell/ash_test/ash-vars/unset.right new file mode 100644 index 000000000..77d5abe9e --- /dev/null +++ b/shell/ash_test/ash-vars/unset.right | |||
@@ -0,0 +1,17 @@ | |||
1 | ./unset.tests: unset: line 3: -: bad variable name | ||
2 | 2 | ||
3 | ./unset.tests: unset: line 5: illegal option -m | ||
4 | 2 | ||
5 | 0 | ||
6 | ___ | ||
7 | 0 f g | ||
8 | 0 g | ||
9 | 0 | ||
10 | ___ | ||
11 | 0 f g | ||
12 | 0 | ||
13 | 0 f g | ||
14 | 0 | ||
15 | ___ | ||
16 | ./unset.tests: unset: line 36: VAR_RO: is read only | ||
17 | 2 f g | ||
diff --git a/shell/ash_test/ash-vars/unset.tests b/shell/ash_test/ash-vars/unset.tests new file mode 100755 index 000000000..11b392744 --- /dev/null +++ b/shell/ash_test/ash-vars/unset.tests | |||
@@ -0,0 +1,40 @@ | |||
1 | # check invalid options are rejected | ||
2 | # bash: in posix mode, aborts if non-interactive; using subshell to avoid that | ||
3 | (unset -) | ||
4 | echo $? | ||
5 | (unset -m a b c) | ||
6 | echo $? | ||
7 | |||
8 | # check funky usage | ||
9 | unset | ||
10 | echo $? | ||
11 | |||
12 | # check normal usage | ||
13 | echo ___ | ||
14 | f=f g=g | ||
15 | echo $? $f $g | ||
16 | unset f | ||
17 | echo $? $f $g | ||
18 | unset g | ||
19 | echo $? $f $g | ||
20 | |||
21 | echo ___ | ||
22 | f=f g=g | ||
23 | echo $? $f $g | ||
24 | unset f g | ||
25 | echo $? $f $g | ||
26 | f=f g=g | ||
27 | echo $? $f $g | ||
28 | unset -v f g | ||
29 | echo $? $f $g | ||
30 | |||
31 | # check read only vars | ||
32 | echo ___ | ||
33 | f=f g=g | ||
34 | VAR_RO=1 | ||
35 | readonly VAR_RO | ||
36 | (unset VAR_RO) | ||
37 | echo $? $f $g | ||
38 | # not testing "do variables survive error halfway through unset" since unset aborts | ||
39 | # unset f VAR_RO g | ||
40 | #echo $? $f $g | ||