summaryrefslogtreecommitdiff
path: root/shell/ash_test/ash-vars/unset.tests
diff options
context:
space:
mode:
authorDenys Vlasenko2017-07-25 16:29:36 +0200
committerDenys Vlasenko2017-07-25 16:29:36 +0200
commitb28d4c3462e6b0e66322503f5ef0b941e0bb9cb8 (patch)
treed25bf78558574cdd8de6b802cf6486f66dfc6db9 /shell/ash_test/ash-vars/unset.tests
parentbe669fa1fdff6f751c8cdd3fc18a9fa7a7f46cd3 (diff)
downloadbusybox-b28d4c3462e6b0e66322503f5ef0b941e0bb9cb8.zip
busybox-b28d4c3462e6b0e66322503f5ef0b941e0bb9cb8.tar.gz
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/unset.tests')
-rwxr-xr-xshell/ash_test/ash-vars/unset.tests40
1 files changed, 40 insertions, 0 deletions
diff --git a/shell/ash_test/ash-vars/unset.tests b/shell/ash_test/ash-vars/unset.tests
new file mode 100755
index 0000000..11b3927
--- /dev/null
+++ b/shell/ash_test/ash-vars/unset.tests
@@ -0,0 +1,40 @@
+# check invalid options are rejected
+# bash: in posix mode, aborts if non-interactive; using subshell to avoid that
+(unset -)
+echo $?
+(unset -m a b c)
+echo $?
+
+# check funky usage
+unset
+echo $?
+
+# check normal usage
+echo ___
+f=f g=g
+echo $? $f $g
+unset f
+echo $? $f $g
+unset g
+echo $? $f $g
+
+echo ___
+f=f g=g
+echo $? $f $g
+unset f g
+echo $? $f $g
+f=f g=g
+echo $? $f $g
+unset -v f g
+echo $? $f $g
+
+# check read only vars
+echo ___
+f=f g=g
+VAR_RO=1
+readonly VAR_RO
+(unset VAR_RO)
+echo $? $f $g
+# not testing "do variables survive error halfway through unset" since unset aborts
+# unset f VAR_RO g
+#echo $? $f $g