about summary refs log tree commit diff
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