summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Test/01grammar.ztst56
2 files changed, 35 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index 3fd0c5d1d..73e9bf411 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-03-23 Bart Schaefer <schaefer@zsh.org>
+
+ * 13736: Test/01grammar.ztst: Enable more tests as they seem to
+ work now; add regression test for the fix from 13706.
+
2001-03-23 Sven Wischnowsky <wischnow@zsh.org>
* 13733: Completion/Builtins/_pids: don't auto-start menu
diff --git a/Test/01grammar.ztst b/Test/01grammar.ztst
index b8a8cd268..b45b6d7ab 100644
--- a/Test/01grammar.ztst
+++ b/Test/01grammar.ztst
@@ -41,9 +41,7 @@
0:Basic subshell list with error
>false
-# Can someone convince me the following is really supposed to fail
-# without the semicolon present?
- { cd /NonExistentDirectory >&/dev/null; } || print false
+ { cd /NonExistentDirectory >&/dev/null } || print false
0:Basic current shell list with error
>false
@@ -235,17 +233,13 @@
# Tests for `Alternate Forms For Complex Commands'
#
-## I simply can't get these to work.
-## I suspect that the lists which are allowed here are only syntactically
-## special tests.
-# if true; { print true-1; } elif true; { print true-2; } else { false; }
-# if false; { print true-1; } elif true; { print true-2; } else { false; }
-# if false; { print true-1; } elif false; { print true-2; } else { false; }
-#0:Alternate `if' with braces
-## Are all those semicolons necessary? If not, what are the rules?
-#>true-1
-#>true-2
-#>false
+ if (true) { print true-1 } elif (true) { print true-2 } else { print false }
+ if (false) { print true-1 } elif (true) { print true-2 } else { print false }
+ if (false) { print true-1 } elif (false) { print true-2 } else { print false }
+0:Alternate `if' with braces
+>true-1
+>true-2
+>false
if true; print true
0:Short form of `if'
@@ -295,15 +289,25 @@
>Hip hip hooray
>Hip hip hooray
-## Why doesn't this one work here? It works from the command line
-## or with zsh -fc.
-# case bravo {
-# (alpha) print schmalpha
-# ;;
-# (bravo) print schmavo
-# ;;
-# (charlie) print schmarlie
-# ;;
-# }
-#0:`case' with braces
-#>schmavo
+# Why doesn't this one work here? It works from the command line
+# or with zsh -fc.
+ case bravo {
+ (alpha) print schmalpha
+ ;;
+ (bravo) print schmavo
+ ;;
+ (charlie) print schmarlie
+ ;;
+ }
+0:`case' with braces
+>schmavo
+
+ print 'This test hangs the shell when it fails...' >&8
+ name=0
+# The number 4375 here is chosen to produce more than 16384 bytes of output
+ while (( name < 4375 )); do
+ print -n $name
+ (( name++ ))
+ done < /dev/null | { read name; print done }
+0:Bug regression: `while' loop with redirection and pipeline
+>done