aboutsummaryrefslogtreecommitdiff
path: root/shell/ash_test/ash-vars
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2017-07-25 16:29:36 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2017-07-25 16:29:36 +0200
commitb28d4c3462e6b0e66322503f5ef0b941e0bb9cb8 (patch)
treed25bf78558574cdd8de6b802cf6486f66dfc6db9 /shell/ash_test/ash-vars
parentbe669fa1fdff6f751c8cdd3fc18a9fa7a7f46cd3 (diff)
downloadbusybox-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.right2
-rw-r--r--shell/ash_test/ash-vars/unset.right17
-rwxr-xr-xshell/ash_test/ash-vars/unset.tests40
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
11Fail:2 11Fail:2
12 12
13Fail: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
22
3./unset.tests: unset: line 5: illegal option -m
42
50
6___
70 f g
80 g
90
10___
110 f g
120
130 f g
140
15___
16./unset.tests: unset: line 36: VAR_RO: is read only
172 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 -)
4echo $?
5(unset -m a b c)
6echo $?
7
8# check funky usage
9unset
10echo $?
11
12# check normal usage
13echo ___
14f=f g=g
15echo $? $f $g
16unset f
17echo $? $f $g
18unset g
19echo $? $f $g
20
21echo ___
22f=f g=g
23echo $? $f $g
24unset f g
25echo $? $f $g
26f=f g=g
27echo $? $f $g
28unset -v f g
29echo $? $f $g
30
31# check read only vars
32echo ___
33f=f g=g
34VAR_RO=1
35readonly VAR_RO
36(unset VAR_RO)
37echo $? $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