From cd418a26700629ad3f240ef6fd2e351ec0c2f87e Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Mon, 6 Apr 2009 18:08:35 +0000 Subject: 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 --- shell/hush_test/hush-misc/continue2.right | 1 + shell/hush_test/hush-misc/continue2.tests | 3 +++ shell/hush_test/hush-misc/continue3.right | 2 ++ shell/hush_test/hush-misc/continue3.tests | 3 +++ shell/hush_test/hush-misc/until1.right | 3 +++ shell/hush_test/hush-misc/until1.tests | 11 +++++++++++ shell/hush_test/hush-misc/while2.right | 2 ++ shell/hush_test/hush-misc/while2.tests | 2 ++ 8 files changed, 27 insertions(+) create mode 100644 shell/hush_test/hush-misc/continue2.right create mode 100644 shell/hush_test/hush-misc/continue2.tests create mode 100644 shell/hush_test/hush-misc/continue3.right create mode 100644 shell/hush_test/hush-misc/continue3.tests create mode 100644 shell/hush_test/hush-misc/until1.right create mode 100644 shell/hush_test/hush-misc/until1.tests create mode 100644 shell/hush_test/hush-misc/while2.right create mode 100644 shell/hush_test/hush-misc/while2.tests (limited to 'shell/hush_test/hush-misc') diff --git a/shell/hush_test/hush-misc/continue2.right b/shell/hush_test/hush-misc/continue2.right new file mode 100644 index 000000000..49d3ebd3a --- /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 000000000..c2df07195 --- /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 000000000..aa47d0d46 --- /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 000000000..0aff867cd --- /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 000000000..be2daad95 --- /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 000000000..10ab28381 --- /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 000000000..07207cc84 --- /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 000000000..2247adc74 --- /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:$? -- cgit v1.2.3