# 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