summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Test/01grammar.ztst311
1 files changed, 0 insertions, 311 deletions
diff --git a/Test/01grammar.ztst b/Test/01grammar.ztst
deleted file mode 100644
index b400b3fce..000000000
--- a/Test/01grammar.ztst
+++ /dev/null
@@ -1,311 +0,0 @@
-#
-# This file contains tests corresponding to the `Shell Grammar' texinfo node.
-#
-
-%prep
-
- mkdir basic.tmp && cd basic.tmp
- touch foo bar
-
-%test
-#
-# Tests for `Simple Commands and Pipelines'
-#
- echo foo | cat | sed 's/foo/bar/'
-0:Basic pipeline handling
->bar
-
- false | true
-0:Exit status of pipeline with builtins (true)
-
- true | false
-1:Exit status of pipeline with builtins (false)
-
- fn() { local foo; read foo; print $foo; }
- coproc fn
- print -p coproc test output
- read -p bar
- print $bar
-0:Basic coprocess handling
->coproc test output
-
- true | false && print true || print false
-0:Basic sublist (i)
->false
-
- false | true && print true || print false
-0:Basic sublist (ii)
->true
-
- (cd /NonExistentDirectory >&/dev/null) || print false
-0:Basic subshell list with error
->false
-
- { cd /NonExistentDirectory >&/dev/null } || print false
-0:Basic current shell list with error
->false
-
-#
-# Tests for `Precommand Modifiers'
-#
- - $ZTST_testdir/../Src/zsh -fc "[[ \$0 = \"-$ZTST_testdir/../Src/zsh\" ]]"
-0:`-' precommand modifier
-
- echo f*
- noglob echo f*
-0:`noglob' precommand modifier
->foo
->f*
-
- (exec /bin/sh; echo bar)
-0:`exec' precommand modifier
-
- cat() { echo Function cat executed; }
- command cat && unfunction cat
-0:`command' precommand modifier
-<External command cat executed
->External command cat executed
-
- cd() { echo Not cd at all; }
- builtin cd . && unfunction cd
-0:`builtin' precommand modifier
-
-#
-# Tests for `Complex Commands'
-#
-
- if true; then
- print true-1
- elif true; then
- print true-2
- else
- print false
- fi
-0:`if ...' (i)
->true-1
-
- if false; then
- print true-1
- elif true; then
- print true-2
- else
- print false
- fi
-0:`if ...' (ii)
->true-2
-
- if false; then
- print true-1
- elif false; then
- print true-2
- else
- print false
- fi
-0:`if ...' (iii)
->false
-
- if true;
- :
- fi
-1d:`if ...' (iv)
-?ZTST_execchunk:-1: parse error near `fi'
-
- for name in word to term; do
- print $name
- done
-0:`for' loop
->word
->to
->term
-
- for (( name = 0; name < 3; name++ )); do
- print $name
- done
-0:arithmetic `for' loop
->0
->1
->2
-
- name=0
- while (( name < 3 )); do
- print $name
- (( name++ ))
- done
-0:`while' loop
->0
->1
->2
-
- name=0
- until (( name == 3 )); do
- print $name
- (( name++ ))
- done
-0:`until' loop
->0
->1
->2
-
- repeat 3 do
- echo over and over
- done
-0:`repeat' loop
->over and over
->over and over
->over and over
-
- word=Trinity
- case $word in
- Michaelmas) print 0
- ;;
- Hilary) print 1
- ;;
- Trinity) print 2
- ;;
- *) print 3
- ;;
- esac
-0:`case' loop, old syntax
->2
-
- word=Trinity
- case $word in
- (Michaelmas) print 0
- ;;
- (Hilary) print 1
- ;;
- (Trinity) print 2
- ;;
- (*) print 3
- ;;
- esac
-0:`case' loop, new syntax
->2
-
- word=Hilary
- case $word in
- (Michaelmas) print 0
- ;;
- (Hilary) print 1
- ;&
- (Trinity) print 2
- ;&
- (*) print 3
- ;;
- esac
-0:`case' loop, new syntax, cascaded
->1
->2
->3
-
-## This doesn't work, because zsh tries to read from the terminal
-## even in a non-interactive shell. The manual implies it always reads
-## from stdin, even in an interactive shell.
-# PS3="input> "
-# select name in one two three; do
-# print $name
-# done
-#0:`select' loop
-#<2
-#>1) one 2) two 3) three
-#>input>
-#>two
-
- function name1 name2 () { print This is $0; }
- name2
- name1 name2() { print This is still $0; }
- name2
-0:`function' keyword
->This is name2
->This is still name2
-
- (time cat) >&/dev/null
-0:`time' keyword (status only)
-
- if [[ -f foo && -d . && -n $ZTST_testdir ]]; then
- true
- else
- false
- fi
-0:basic [[ ... ]] test
-
-#
-# Tests for `Alternate Forms For Complex Commands'
-#
-
- 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'
->true
-
- for name ( word1 word2 word3 ) print $name
-0:Form of `for' with parentheses.
->word1
->word2
->word3
-
- for name in alpha beta gamma; print $name
-0:Short form of `for'
->alpha
->beta
->gamma
-
- for (( val = 2; val < 10; val *= val )) print $val
-0:Short arithmetic `for'
->2
->4
-
- foreach name ( verbiage words periphrasis )
- print $name
- end
-0:Csh-like `for'
->verbiage
->words
->periphrasis
-
-# see comment with braces used in if loops
- val=0;
- while (( val < 2 )) { print $((val++)); }
-0:Alternative `while'
->0
->1
-
- val=2;
- until (( val == 0 )) { print $((val--)); }
-0:Alternative `until'
->2
->1
-
- repeat 3 print Hip hip hooray
-0:Short `repeat'
->Hip hip hooray
->Hip hip hooray
->Hip hip hooray
-
- 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