patch 9.0.1647: insufficient testing for syntax plugins
Problem: Insufficient testing for syntax plugins.
Solution: Add shell file examples. (Charles Campbell) Create a messages
file for easier debugging and reporting the test results.
This commit is contained in:
82
runtime/syntax/testdir/input/sh_08.sh
Normal file
82
runtime/syntax/testdir/input/sh_08.sh
Normal file
@ -0,0 +1,82 @@
|
||||
#!/bin/ksh -p
|
||||
|
||||
# Note that this is special test file for ksh. sh is an extra file.
|
||||
# Note too, that this file contains ONLY things which works for ksh BUT NOT
|
||||
# for sh
|
||||
|
||||
# This all should be OK
|
||||
|
||||
# Several keywords without any quotes!
|
||||
# Case 1a. Several Constants
|
||||
[ -t 0 ] && date
|
||||
Variable1=${VariableA:-This is a Text}
|
||||
Variable2=${VariableA:=This is a Text}
|
||||
Variable3=${VariableA:?This is a Text}
|
||||
echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
|
||||
|
||||
# Case 1b. Variable and Constant
|
||||
[ -t 0 ] && echo "\n`date`" && unset VariableA
|
||||
Variable1=${VariableA:-$HOME This is a Text}
|
||||
Variable2=${VariableA:=$HOME This is a Text}
|
||||
Variable3=${VariableA:?$HOME This is a Text}
|
||||
echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
|
||||
|
||||
# Case 1c. Constant and Variable
|
||||
[ -t 0 ] && echo "\n`date`" && unset VariableA
|
||||
Variable1=${VariableA:-This is a Text in $HOME}
|
||||
Variable2=${VariableA:=This is a Text in $HOME}
|
||||
Variable3=${VariableA:+This is a Text in $HOME} #! :+ is bash-only, error here expected
|
||||
Variable1=${VariableA:-This is a Text in $HOME too}
|
||||
Variable2=${VariableA:=This is a Text in $HOME too}
|
||||
Variable3=${VariableA:+This is a Text in $HOME too}
|
||||
echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
|
||||
|
||||
# Case 1d. More Variables and Constants. Starting with a Variable.
|
||||
[ -t 0 ] && echo "\n`date`" && unset VariableA
|
||||
Variable1=${VariableA:-$SHELL}
|
||||
Variable1=${VariableA:-$SHELL This is a Text in $HOME}
|
||||
Variable2=${VariableA:=$SHELL This is a Text in $HOME}
|
||||
Variable3=${VariableA:+$SHELL This is a Text in $HOME}
|
||||
echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
|
||||
|
||||
# Case 1e. More Constants and Variables. Starting with a Constant.
|
||||
[ -t 0 ] && echo "\n`date`" && unset VariableA
|
||||
Variable1=${VariableA:-"This is a Text in $HOME $SHELL"}
|
||||
Variable1=${VariableA:-This is a Text in $HOME $SHELL}
|
||||
Variable2=${VariableA:=This is a Text in $HOME $SHELL}
|
||||
Variable3=${VariableA:+This is a Text in $HOME $SHELL}
|
||||
echo "$Variable1" ; echo "$Variable2" ; echo "$Variable3"
|
||||
|
||||
# Case 1x. The same with ':'
|
||||
[ -t 0 ] && echo "\n`date`" && unset VariableA
|
||||
: ${VariableA:-This is a Text}
|
||||
: ${VariableA:-$HOME This is a Text}
|
||||
: ${VariableA:-This is a Text in $HOME}
|
||||
: ${VariableA:-$SHELL This is a Text in $HOME}
|
||||
: ${VariableA:-This is a Text in $HOME $SHELL}
|
||||
|
||||
# Case 1y. The same with ':' and without the ':' in the parameter substitution
|
||||
[ -t 0 ] && echo "\n`date`" && unset VariableA
|
||||
: ${VariableA-This is a Text}
|
||||
: ${VariableA-$HOME This is a Text}
|
||||
: ${VariableA-This is a Text in $HOME}
|
||||
: ${VariableA-$SHELL This is a Text in $HOME}
|
||||
: ${VariableA-This is a Text in $HOME $SHELL}
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# This are valid usages for ${Var:?} in ksh!
|
||||
#
|
||||
Variable4=${Variable4:?This is an Error Message}
|
||||
Variable4=${Variable4:?This is an Error Message from `date`}
|
||||
|
||||
: ${Variable4:?This is an Error Message}
|
||||
: ${Variable4:?This is an Error Message from `date`}
|
||||
|
||||
exit $?
|
||||
|
||||
# Michael Soulier
|
||||
if [ $# -ne 1 ]; then
|
||||
echo whatever
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user