summaryrefslogtreecommitdiff
path: root/shell/hush_test/hush-misc
diff options
context:
space:
mode:
authorDenis Vlasenko2009-04-06 18:08:35 +0000
committerDenis Vlasenko2009-04-06 18:08:35 +0000
commitcd418a26700629ad3f240ef6fd2e351ec0c2f87e (patch)
tree5964e28502c10867fdb76037b9879950c300ee3b /shell/hush_test/hush-misc
parent8f8d013afc3ec24056f2180ec38e469615632094 (diff)
downloadbusybox-cd418a26700629ad3f240ef6fd2e351ec0c2f87e.zip
busybox-cd418a26700629ad3f240ef6fd2e351ec0c2f87e.tar.gz
hush: fix a bunch of obscure while/until/continue bugs
function old new delta run_list 1159 1214 +55 done_pipe 106 123 +17 done_command 86 98 +12 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/0 up/down: 84/0) Total: 84 bytes
Diffstat (limited to 'shell/hush_test/hush-misc')
-rw-r--r--shell/hush_test/hush-misc/continue2.right1
-rw-r--r--shell/hush_test/hush-misc/continue2.tests3
-rw-r--r--shell/hush_test/hush-misc/continue3.right2
-rw-r--r--shell/hush_test/hush-misc/continue3.tests3
-rw-r--r--shell/hush_test/hush-misc/until1.right3
-rw-r--r--shell/hush_test/hush-misc/until1.tests11
-rw-r--r--shell/hush_test/hush-misc/while2.right2
-rw-r--r--shell/hush_test/hush-misc/while2.tests2
8 files changed, 27 insertions, 0 deletions
diff --git a/shell/hush_test/hush-misc/continue2.right b/shell/hush_test/hush-misc/continue2.right
new file mode 100644
index 0000000..49d3ebd
--- /dev/null
+++ b/shell/hush_test/hush-misc/continue2.right
@@ -0,0 +1 @@
+Ok:1
diff --git a/shell/hush_test/hush-misc/continue2.tests b/shell/hush_test/hush-misc/continue2.tests
new file mode 100644
index 0000000..c2df071
--- /dev/null
+++ b/shell/hush_test/hush-misc/continue2.tests
@@ -0,0 +1,3 @@
+e=''
+(while test $e && exit 1; true; do e=1; continue; done)
+echo Ok:$?
diff --git a/shell/hush_test/hush-misc/continue3.right b/shell/hush_test/hush-misc/continue3.right
new file mode 100644
index 0000000..aa47d0d
--- /dev/null
+++ b/shell/hush_test/hush-misc/continue3.right
@@ -0,0 +1,2 @@
+0
+0
diff --git a/shell/hush_test/hush-misc/continue3.tests b/shell/hush_test/hush-misc/continue3.tests
new file mode 100644
index 0000000..0aff867
--- /dev/null
+++ b/shell/hush_test/hush-misc/continue3.tests
@@ -0,0 +1,3 @@
+# Test that "continue" does affect exitcode (sets to 0)
+e=''
+while echo $?; test $e && exit; true; do e=1; false; continue; done
diff --git a/shell/hush_test/hush-misc/until1.right b/shell/hush_test/hush-misc/until1.right
new file mode 100644
index 0000000..be2daad
--- /dev/null
+++ b/shell/hush_test/hush-misc/until1.right
@@ -0,0 +1,3 @@
+1
+1
+Ok:0
diff --git a/shell/hush_test/hush-misc/until1.tests b/shell/hush_test/hush-misc/until1.tests
new file mode 100644
index 0000000..10ab283
--- /dev/null
+++ b/shell/hush_test/hush-misc/until1.tests
@@ -0,0 +1,11 @@
+x=1
+until test "$x" = 4; do echo $x; x=4; done
+
+# We had a bug in multi-line form
+x=1
+until test "$x" = 4; do
+ echo $x
+ x=4
+done
+
+echo Ok:$?
diff --git a/shell/hush_test/hush-misc/while2.right b/shell/hush_test/hush-misc/while2.right
new file mode 100644
index 0000000..07207cc
--- /dev/null
+++ b/shell/hush_test/hush-misc/while2.right
@@ -0,0 +1,2 @@
+Hello
+OK:0
diff --git a/shell/hush_test/hush-misc/while2.tests b/shell/hush_test/hush-misc/while2.tests
new file mode 100644
index 0000000..2247adc
--- /dev/null
+++ b/shell/hush_test/hush-misc/while2.tests
@@ -0,0 +1,2 @@
+while echo Hello; false; do echo NOT SHOWN; done
+echo OK:$?