busybox/shell/ash_test/ash-vars/unset.tests
Denys Vlasenko b28d4c3462 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>
2017-07-25 16:29:36 +02:00

41 lines
609 B
Plaintext
Executable File

# 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