summaryrefslogtreecommitdiff
path: root/shell/hush_test
diff options
context:
space:
mode:
authorMike Frysinger2009-03-30 06:50:54 +0000
committerMike Frysinger2009-03-30 06:50:54 +0000
commitd690f68554f1c1301975bc0ab0e479e6870b3589 (patch)
treeedf70533e5a6d316f618fcb1002d14b02dcb3cfe /shell/hush_test
parent5f9f1506ad298c94e816780a3e2d5692d002fb81 (diff)
downloadbusybox-d690f68554f1c1301975bc0ab0e479e6870b3589.zip
busybox-d690f68554f1c1301975bc0ab0e479e6870b3589.tar.gz
implement `unset` semantics as required by POSIX
Diffstat (limited to 'shell/hush_test')
-rw-r--r--shell/hush_test/hush-vars/unset.right19
-rwxr-xr-xshell/hush_test/hush-vars/unset.tests36
2 files changed, 55 insertions, 0 deletions
diff --git a/shell/hush_test/hush-vars/unset.right b/shell/hush_test/hush-vars/unset.right
new file mode 100644
index 0000000..8dea7c4
--- /dev/null
+++ b/shell/hush_test/hush-vars/unset.right
@@ -0,0 +1,19 @@
+hush: unset: -: invalid option
+1
+hush: unset: -m: invalid option
+1
+0
+___
+0 f g
+0 g
+0
+___
+0 f g
+0
+0 f g
+0
+___
+hush: HUSH_VERSION: readonly variable
+1 f g
+hush: HUSH_VERSION: readonly variable
+1
diff --git a/shell/hush_test/hush-vars/unset.tests b/shell/hush_test/hush-vars/unset.tests
new file mode 100755
index 0000000..f59ce59
--- /dev/null
+++ b/shell/hush_test/hush-vars/unset.tests
@@ -0,0 +1,36 @@
+# check invalid options are rejected
+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
+unset HUSH_VERSION
+echo $? $f $g
+unset f HUSH_VERSION g
+echo $? $f $g