diff --git a/src/cmd/ksh93/tests/_common b/src/cmd/ksh93/tests/_common new file mode 100644 index 000000000..a3dfbc72e --- /dev/null +++ b/src/cmd/ksh93/tests/_common @@ -0,0 +1,31 @@ +######################################################################## +# # +# This file is part of the ksh 93u+m package # +# Copyright (c) 1982-2012 AT&T Intellectual Property # +# Copyright (c) 2021 Contributors to ksh 93u+m # +# # +# and is licensed under the # +# Eclipse Public License, Version 1.0 # +# # +# A copy of the License is available at # +# http://www.eclipse.org/org/documents/epl-v10.html # +# (with md5 checksum b35adb5213ca9657e911e9befb180842) # +# # +# Martijn Dekker # +# # +######################################################################## + +_message() +{ + print -r $'\t'"${Command}[$1]: ${@:2}" >&2 +} +alias err_exit='_message "$((Errors++,LINENO))"' # inaccurate err_exit name kept for historical integrity :) +alias warning='_message "$LINENO" "warning:"' + +Command=${0##*/} +integer Errors=0 + +if ! [[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] +then print -r "$Command: \$tmp not set; run this from shtests. Aborting." >&2 + exit 1 +fi diff --git a/src/cmd/ksh93/tests/alias.sh b/src/cmd/ksh93/tests/alias.sh index e6a23e56c..2d51f988e 100755 --- a/src/cmd/ksh93/tests/alias.sh +++ b/src/cmd/ksh93/tests/alias.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" alias foo='print hello' if [[ $(foo) != hello ]] diff --git a/src/cmd/ksh93/tests/append.sh b/src/cmd/ksh93/tests/append.sh index 7db618c43..b65e38597 100755 --- a/src/cmd/ksh93/tests/append.sh +++ b/src/cmd/ksh93/tests/append.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" { x=abc diff --git a/src/cmd/ksh93/tests/arith.sh b/src/cmd/ksh93/tests/arith.sh index 46656a728..31ae75ea3 100755 --- a/src/cmd/ksh93/tests/arith.sh +++ b/src/cmd/ksh93/tests/arith.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" trap '' FPE # NOTE: osf.alpha requires this (no ieee math) diff --git a/src/cmd/ksh93/tests/arrays.sh b/src/cmd/ksh93/tests/arrays.sh index 4e27367f2..29dcd365b 100755 --- a/src/cmd/ksh93/tests/arrays.sh +++ b/src/cmd/ksh93/tests/arrays.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" function fun { diff --git a/src/cmd/ksh93/tests/arrays2.sh b/src/cmd/ksh93/tests/arrays2.sh index 4701565fd..bc5dcda3c 100755 --- a/src/cmd/ksh93/tests/arrays2.sh +++ b/src/cmd/ksh93/tests/arrays2.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" for ((i=0; i < 4; i++ )) do for ((j=0; j < 5; j++ )) diff --git a/src/cmd/ksh93/tests/attributes.sh b/src/cmd/ksh93/tests/attributes.sh index 3a2f936e6..69e51df25 100755 --- a/src/cmd/ksh93/tests/attributes.sh +++ b/src/cmd/ksh93/tests/attributes.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" # ====== # as of 93u+, typeset -xu/-xl failed to change case in a value (rhbz#1188377) diff --git a/src/cmd/ksh93/tests/basic.sh b/src/cmd/ksh93/tests/basic.sh index 7d8f52a53..920fa8e2a 100755 --- a/src/cmd/ksh93/tests/basic.sh +++ b/src/cmd/ksh93/tests/basic.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" bincat=$(whence -p cat) binecho=$(whence -p echo) diff --git a/src/cmd/ksh93/tests/bracket.sh b/src/cmd/ksh93/tests/bracket.sh index 95771aee7..de5663546 100755 --- a/src/cmd/ksh93/tests/bracket.sh +++ b/src/cmd/ksh93/tests/bracket.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" null='' if [[ ! -z $null ]] @@ -83,7 +73,7 @@ fi chmod 000 $file if [[ $(id -u) == '0' ]] -then print -u2 "\t${Command}[$LINENO]: warning: running as root: skipping tests involving r/w permissions" +then warning "running as root: skipping tests involving r/w permissions" else if [[ -r $file ]] then err_exit "-r: $file should not be readable" fi diff --git a/src/cmd/ksh93/tests/builtins.sh b/src/cmd/ksh93/tests/builtins.sh index 5e7330f2b..50e8484bb 100755 --- a/src/cmd/ksh93/tests/builtins.sh +++ b/src/cmd/ksh93/tests/builtins.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" bincat=$(whence -p cat) @@ -808,7 +798,7 @@ e=$? # https://bugzilla.redhat.com/1102627 if [[ $(id -u) == '0' ]] -then print -u2 "\t${Command}[$LINENO]: warning: running as root: skipping tests involving directory search (x) permission" +then warning "running as root: skipping tests involving directory search (x) permission" else mkdir -m 600 "$tmp/no_x_dir" expect=": cd: $tmp/no_x_dir: [Permission denied]" diff --git a/src/cmd/ksh93/tests/case.sh b/src/cmd/ksh93/tests/case.sh index f28d56e18..21afcf065 100755 --- a/src/cmd/ksh93/tests/case.sh +++ b/src/cmd/ksh93/tests/case.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" bar=foo2 bam=foo[3] diff --git a/src/cmd/ksh93/tests/comvar.sh b/src/cmd/ksh93/tests/comvar.sh index f9d070545..16044d460 100755 --- a/src/cmd/ksh93/tests/comvar.sh +++ b/src/cmd/ksh93/tests/comvar.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" #test for compound variables Command=${0##*/} diff --git a/src/cmd/ksh93/tests/comvario.sh b/src/cmd/ksh93/tests/comvario.sh index 0f344406b..9bb65637f 100755 --- a/src/cmd/ksh93/tests/comvario.sh +++ b/src/cmd/ksh93/tests/comvario.sh @@ -19,20 +19,7 @@ # # ######################################################################## -# test setup -function err_exit -{ - print -u2 -n '\t' - print -u2 -r "${Command}[$1]: ${@:2}" - (( Errors++ )) -} -alias err_exit='err_exit $LINENO' -alias warning='err\_exit $((Errors--,LINENO)) warning:' - -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" # "nounset" disabled for now #set -o nounset diff --git a/src/cmd/ksh93/tests/coprocess.sh b/src/cmd/ksh93/tests/coprocess.sh index 5b8b5e3f5..6d9b39de3 100755 --- a/src/cmd/ksh93/tests/coprocess.sh +++ b/src/cmd/ksh93/tests/coprocess.sh @@ -18,18 +18,8 @@ # # ######################################################################## # test the behavior of co-processes -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" if [[ -d /cygdrive ]] then err_exit cygwin detected - coprocess tests disabled - enable at the risk of wedging your system diff --git a/src/cmd/ksh93/tests/cubetype.sh b/src/cmd/ksh93/tests/cubetype.sh index c4eab976d..0b6176985 100755 --- a/src/cmd/ksh93/tests/cubetype.sh +++ b/src/cmd/ksh93/tests/cubetype.sh @@ -17,20 +17,11 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 +. "${0%/*}/_common" + integer n=2 -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } - typeset -T Box_t=( float -h 'height in inches' x=2 float -h 'width in inches' y=4 diff --git a/src/cmd/ksh93/tests/enum.sh b/src/cmd/ksh93/tests/enum.sh index 6e5fcbb0a..49d432408 100755 --- a/src/cmd/ksh93/tests/enum.sh +++ b/src/cmd/ksh93/tests/enum.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" enum Color_t=(red green blue orange yellow) enum -i Sex_t=(Male Female) diff --git a/src/cmd/ksh93/tests/exit.sh b/src/cmd/ksh93/tests/exit.sh index 64a94f9b5..3fbf91f21 100755 --- a/src/cmd/ksh93/tests/exit.sh +++ b/src/cmd/ksh93/tests/exit.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" function abspath { diff --git a/src/cmd/ksh93/tests/expand.sh b/src/cmd/ksh93/tests/expand.sh index f653469c1..aa3aced65 100755 --- a/src/cmd/ksh93/tests/expand.sh +++ b/src/cmd/ksh93/tests/expand.sh @@ -17,17 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$Line]: "$@" - ((Errors++)) -} -integer Errors=0 -Command=${0##*/} - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" # {...} expansion tests -- ignore if not supported diff --git a/src/cmd/ksh93/tests/functions.sh b/src/cmd/ksh93/tests/functions.sh index 2e25dc3e4..6c38da1b2 100755 --- a/src/cmd/ksh93/tests/functions.sh +++ b/src/cmd/ksh93/tests/functions.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -integer Errors=0 -Command=${0##*/} - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" compiled='' read -n4 c < $0 2> /dev/null diff --git a/src/cmd/ksh93/tests/glob.sh b/src/cmd/ksh93/tests/glob.sh index 17c5cf4fd..90caf06fa 100755 --- a/src/cmd/ksh93/tests/glob.sh +++ b/src/cmd/ksh93/tests/glob.sh @@ -17,17 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -r $'\t'"${Command}[$1] ${@:2}" - ((Errors++)) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer aware=0 contrary=0 Errors=0 ignorant=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" function test_glob { diff --git a/src/cmd/ksh93/tests/grep.sh b/src/cmd/ksh93/tests/grep.sh index f7afbcef3..08e92db56 100755 --- a/src/cmd/ksh93/tests/grep.sh +++ b/src/cmd/ksh93/tests/grep.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" function grep { diff --git a/src/cmd/ksh93/tests/heredoc.sh b/src/cmd/ksh93/tests/heredoc.sh index 87fbd161b..eb6c6e91e 100755 --- a/src/cmd/ksh93/tests/heredoc.sh +++ b/src/cmd/ksh93/tests/heredoc.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" bincat=$(whence -p cat) diff --git a/src/cmd/ksh93/tests/io.sh b/src/cmd/ksh93/tests/io.sh index e7e2b85af..f0d36b767 100755 --- a/src/cmd/ksh93/tests/io.sh +++ b/src/cmd/ksh93/tests/io.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" unset HISTFILE diff --git a/src/cmd/ksh93/tests/jobs.sh b/src/cmd/ksh93/tests/jobs.sh index 577d26465..421608044 100755 --- a/src/cmd/ksh93/tests/jobs.sh +++ b/src/cmd/ksh93/tests/jobs.sh @@ -13,19 +13,8 @@ # Martijn Dekker # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r "${Command}[$1]: ${@:2}" - let Errors++ -} -alias err_exit='err_exit $LINENO' -alias warning='err\_exit $((Errors--,LINENO)) warning:' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" # All the tests here should run with job control on set -o monitor diff --git a/src/cmd/ksh93/tests/leaks.sh b/src/cmd/ksh93/tests/leaks.sh index b800bf90d..d14a1b99e 100755 --- a/src/cmd/ksh93/tests/leaks.sh +++ b/src/cmd/ksh93/tests/leaks.sh @@ -18,19 +18,7 @@ # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' - -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } - +. "${0%/*}/_common" # Determine method for running tests. # The 'vmstate' builtin can be used if ksh was compiled with vmalloc. @@ -75,7 +63,7 @@ then N=16384 { ps -o rss= -p "$$" } -else err\_exit "$LINENO" 'WARNING: cannot find method to measure memory usage; skipping tests' +else warning 'cannot find method to measure memory usage; skipping tests' exit 0 fi diff --git a/src/cmd/ksh93/tests/locale.sh b/src/cmd/ksh93/tests/locale.sh index 192711be3..a9a757d80 100755 --- a/src/cmd/ksh93/tests/locale.sh +++ b/src/cmd/ksh93/tests/locale.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" unset LANG LANGUAGE "${!LC_@}" diff --git a/src/cmd/ksh93/tests/math.sh b/src/cmd/ksh93/tests/math.sh index b13e6c35f..4d29a9508 100755 --- a/src/cmd/ksh93/tests/math.sh +++ b/src/cmd/ksh93/tests/math.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors < 127 && Errors++ )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" set -o nounset diff --git a/src/cmd/ksh93/tests/nameref.sh b/src/cmd/ksh93/tests/nameref.sh index 86e557f44..4beb8ee02 100755 --- a/src/cmd/ksh93/tests/nameref.sh +++ b/src/cmd/ksh93/tests/nameref.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" function checkref { diff --git a/src/cmd/ksh93/tests/namespace.sh b/src/cmd/ksh93/tests/namespace.sh index 3d6027965..b18c72912 100755 --- a/src/cmd/ksh93/tests/namespace.sh +++ b/src/cmd/ksh93/tests/namespace.sh @@ -17,21 +17,11 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" if((!SHOPT_NAMESPACE)) -then err\_exit "$LINENO" 'warning: shell compiled without SHOPT_NAMESPACE; skipping tests' +then warning 'shell compiled without SHOPT_NAMESPACE; skipping tests' exit 0 fi diff --git a/src/cmd/ksh93/tests/options.sh b/src/cmd/ksh93/tests/options.sh index 1ed1af2a1..fff41cdd4 100755 --- a/src/cmd/ksh93/tests/options.sh +++ b/src/cmd/ksh93/tests/options.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" unset HISTFILE export LC_ALL=C ENV=/./dev/null diff --git a/src/cmd/ksh93/tests/path.sh b/src/cmd/ksh93/tests/path.sh index 567407291..4d30d7616 100755 --- a/src/cmd/ksh93/tests/path.sh +++ b/src/cmd/ksh93/tests/path.sh @@ -17,19 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -alias warning='err\_exit $((Errors--,LINENO)) warning:' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" # to avoid spurious test failures with 'whence -a' tests, we need # to remove any duplicate paths to the same directory from $PATH. diff --git a/src/cmd/ksh93/tests/pointtype.sh b/src/cmd/ksh93/tests/pointtype.sh index 0b8c2f032..df1011854 100755 --- a/src/cmd/ksh93/tests/pointtype.sh +++ b/src/cmd/ksh93/tests/pointtype.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" typeset -T Pt_t=( float x=1 diff --git a/src/cmd/ksh93/tests/pty.sh b/src/cmd/ksh93/tests/pty.sh index d92c81fde..4638007da 100755 --- a/src/cmd/ksh93/tests/pty.sh +++ b/src/cmd/ksh93/tests/pty.sh @@ -17,7 +17,8 @@ # David Korn # # # ######################################################################## -: : generated by mkptytests from "posix-sh-*-c.pty" : : + +. "${0%/*}/_common" # These are tests for the interactive shell, run in a pseudoterminal utility # called 'pty', which allows for scripting interactive sessions and which is @@ -31,22 +32,7 @@ # the trickiest part of the tests is avoiding typeahead # in the pty dialogue -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors++ )) -} - -alias err_exit='err_exit $lineno' -alias warning='err\_exit $((Errors--,LINENO)) warning:' - -Command=${0##*/} -integer Errors=0 lineno=1 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } whence -q pty || { warning "pty command not found -- tests skipped"; exit 0; } - case $(uname -s) in Darwin | FreeBSD | Linux ) ;; @@ -54,6 +40,8 @@ Darwin | FreeBSD | Linux ) exit 0 ;; esac +integer lineno=1 + # On some systems, the stty command does not appear to work correctly on a pty pseudoterminal. # To avoid false regressions, we have to set 'erase' and 'kill' on the real terminal. if test -t 0 2>/dev/null # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors++ )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" binecho=$(whence -p echo) diff --git a/src/cmd/ksh93/tests/quoting2.sh b/src/cmd/ksh93/tests/quoting2.sh index 4572d786d..ca19ed6ad 100755 --- a/src/cmd/ksh93/tests/quoting2.sh +++ b/src/cmd/ksh93/tests/quoting2.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" set -o noglob if [[ 'hi there' != "hi there" ]] diff --git a/src/cmd/ksh93/tests/readcsv.sh b/src/cmd/ksh93/tests/readcsv.sh index 77bedcb67..2b7fd6ac8 100755 --- a/src/cmd/ksh93/tests/readcsv.sh +++ b/src/cmd/ksh93/tests/readcsv.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" tmp1=$tmp/tmp1.csv tmp2=$tmp/tmp2.csv diff --git a/src/cmd/ksh93/tests/recttype.sh b/src/cmd/ksh93/tests/recttype.sh index dad3e093f..55788e3aa 100755 --- a/src/cmd/ksh93/tests/recttype.sh +++ b/src/cmd/ksh93/tests/recttype.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" typeset -T Pt_t=( float x=1 diff --git a/src/cmd/ksh93/tests/restricted.sh b/src/cmd/ksh93/tests/restricted.sh index f1eae3614..d5394e935 100755 --- a/src/cmd/ksh93/tests/restricted.sh +++ b/src/cmd/ksh93/tests/restricted.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" binecho=$(whence -p echo) diff --git a/src/cmd/ksh93/tests/return.sh b/src/cmd/ksh93/tests/return.sh index 01db3e350..f4f0a9016 100755 --- a/src/cmd/ksh93/tests/return.sh +++ b/src/cmd/ksh93/tests/return.sh @@ -19,18 +19,7 @@ ######################################################################## # test the behavior of return and exit with functions -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' - -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" unset HISTFILE diff --git a/src/cmd/ksh93/tests/select.sh b/src/cmd/ksh93/tests/select.sh index 487e7e4a9..43eeb714d 100755 --- a/src/cmd/ksh93/tests/select.sh +++ b/src/cmd/ksh93/tests/select.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" PS3='ABC ' diff --git a/src/cmd/ksh93/tests/shtests b/src/cmd/ksh93/tests/shtests index 922caa03f..902f6af31 100755 --- a/src/cmd/ksh93/tests/shtests +++ b/src/cmd/ksh93/tests/shtests @@ -345,9 +345,6 @@ do [[ $i == *.sh ]] || i+='.sh' glob.sh) grep -c '^[[:blank:]]*test_[a-z]\{3,\}' $i ;; *) grep -c err_exit $i ;; esac ) - if (( t > 2 )) - then (( t = t - 2 )) - fi tests[$i]=$t T=test if (( t != 1 )) diff --git a/src/cmd/ksh93/tests/sigchld.sh b/src/cmd/ksh93/tests/sigchld.sh index 716660f5e..6fa5215bb 100755 --- a/src/cmd/ksh93/tests/sigchld.sh +++ b/src/cmd/ksh93/tests/sigchld.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" float DELAY=${1:-0.02} integer FOREGROUND=10 BACKGROUND=2 diff --git a/src/cmd/ksh93/tests/signal.sh b/src/cmd/ksh93/tests/signal.sh index e927081b8..de6f7f5e9 100755 --- a/src/cmd/ksh93/tests/signal.sh +++ b/src/cmd/ksh93/tests/signal.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors++ )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" unset n s t typeset -A SIG diff --git a/src/cmd/ksh93/tests/statics.sh b/src/cmd/ksh93/tests/statics.sh index c1b44ceb0..268b07783 100755 --- a/src/cmd/ksh93/tests/statics.sh +++ b/src/cmd/ksh93/tests/statics.sh @@ -21,18 +21,7 @@ # Written by Roland Mainz # -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors < 127 && Errors++ )) -} -alias err_exit='err_exit $LINENO' - -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" set -o nounset diff --git a/src/cmd/ksh93/tests/subshell.sh b/src/cmd/ksh93/tests/subshell.sh index 450f44fa7..5018854f5 100755 --- a/src/cmd/ksh93/tests/subshell.sh +++ b/src/cmd/ksh93/tests/subshell.sh @@ -17,20 +17,11 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 +. "${0%/*}/_common" + typeset -F SECONDS # for fractional seconds in PS4 -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } - builtin getconf bincat=$(PATH=$(getconf PATH) whence -p cat) binecho=$(PATH=$(getconf PATH) whence -p echo) diff --git a/src/cmd/ksh93/tests/substring.sh b/src/cmd/ksh93/tests/substring.sh index f72985917..74e5c9ead 100755 --- a/src/cmd/ksh93/tests/substring.sh +++ b/src/cmd/ksh93/tests/substring.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" tmpPS4='+ [temp_PS4|L$LINENO|e$?] ' # used to avoid interference to ${.sh.match} from $PS4 set by shtests diff --git a/src/cmd/ksh93/tests/tilde.sh b/src/cmd/ksh93/tests/tilde.sh index 9e50b27d1..2847cc068 100755 --- a/src/cmd/ksh93/tests/tilde.sh +++ b/src/cmd/ksh93/tests/tilde.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r $Command: "$@" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" if $SHELL -c '[[ ~root == /* ]]' then x=$(print -r -- ~root) diff --git a/src/cmd/ksh93/tests/timetype.sh b/src/cmd/ksh93/tests/timetype.sh index ac3ac6f7d..57f406760 100755 --- a/src/cmd/ksh93/tests/timetype.sh +++ b/src/cmd/ksh93/tests/timetype.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" typeset -T Time_t=( integer .=-1 diff --git a/src/cmd/ksh93/tests/treemove.sh b/src/cmd/ksh93/tests/treemove.sh index 0aa5774f7..53685a9dc 100755 --- a/src/cmd/ksh93/tests/treemove.sh +++ b/src/cmd/ksh93/tests/treemove.sh @@ -43,6 +43,8 @@ # Use is subject to license terms. # +. "${0%/*}/_common" + # # This test checks whether "typeset -m" correctly moves local variables # into a global variable tree. @@ -53,19 +55,6 @@ # -- snip -- # -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' - -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } - ## test start typeset -C tree1 tree2 diff --git a/src/cmd/ksh93/tests/types.sh b/src/cmd/ksh93/tests/types.sh index 91ee33a1b..ee63bfe7e 100755 --- a/src/cmd/ksh93/tests/types.sh +++ b/src/cmd/ksh93/tests/types.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" integer n=2 diff --git a/src/cmd/ksh93/tests/variables.sh b/src/cmd/ksh93/tests/variables.sh index bdb40b8e3..febdad9c0 100755 --- a/src/cmd/ksh93/tests/variables.sh +++ b/src/cmd/ksh93/tests/variables.sh @@ -17,18 +17,8 @@ # David Korn # # # ######################################################################## -function err_exit -{ - print -u2 -n "\t" - print -u2 -r "${Command}[$1]: ${@:2}" - let Errors+=1 -} -alias err_exit='err_exit $LINENO' -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" [[ ${.sh.version} == "$KSH_VERSION" ]] || err_exit '.sh.version != KSH_VERSION' unset ss @@ -747,17 +737,14 @@ unset r v x Errors=$? # ensure error count survives subshell ( errmsg=$({ LANG=bad_LOCALE; } 2>&1) - if [[ -z $errmsg ]] - then print -u2 "\t${Command}[$LINENO]: warning: C library does not seem to verify locales: skipping LC_* tests" - exit $Errors - fi x=x for v in LC_ALL LC_CTYPE LC_MESSAGES LC_COLLATE LC_NUMERIC do nameref r=$v unset $v [[ $r ]] && err_exit "unset $v failed -- expected '', got '$r'" - d=$($SHELL -c "$v=$x" 2>&1) - [[ $d ]] || err_exit "$v=$x failed -- expected locale diagnostic" + # Test disabled: some system libraries do not verify the locale, so no diagnostic is printed. + #d=$($SHELL -c "$v=$x" 2>&1) + #[[ $d ]] || err_exit "$v=$x failed -- expected locale diagnostic" { g=$( r=$x; print -- $r ); } 2>/dev/null [[ $g == '' ]] || err_exit "$v=$x failed -- expected '', got '$g'" { g=$( r=C; r=$x; print -- $r ); } 2>/dev/null diff --git a/src/cmd/ksh93/tests/vartree1.sh b/src/cmd/ksh93/tests/vartree1.sh index 09c8f874a..e7d379db4 100755 --- a/src/cmd/ksh93/tests/vartree1.sh +++ b/src/cmd/ksh93/tests/vartree1.sh @@ -19,23 +19,12 @@ ######################################################################## # # variable tree test #001 -# Propose of this test is whether ksh93 handles global variable trees +# Purpose of this test is whether ksh93 handles global variable trees # and function-local variable trees the same way, including "nameref" # and "unset" handling. # -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' - -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" function build_tree { diff --git a/src/cmd/ksh93/tests/vartree2.sh b/src/cmd/ksh93/tests/vartree2.sh index df46d8b41..c5995d71e 100755 --- a/src/cmd/ksh93/tests/vartree2.sh +++ b/src/cmd/ksh93/tests/vartree2.sh @@ -19,23 +19,12 @@ ######################################################################## # # variable tree test #002 -# Propose of this test is whether ksh93 handles global variable trees +# Purpose of this test is whether ksh93 handles global variable trees # and function-local variable trees the same way, including "nameref" # and "unset" handling. # -function err_exit -{ - print -u2 -n "\t" - print -u2 -r ${Command}[$1]: "${@:2}" - (( Errors+=1 )) -} -alias err_exit='err_exit $LINENO' - -Command=${0##*/} -integer Errors=0 - -[[ -d $tmp && -w $tmp && $tmp == "$PWD" ]] || { err\_exit "$LINENO" '$tmp not set; run this from shtests. Aborting.'; exit 1; } +. "${0%/*}/_common" # "built_tree1" and "built_tree2" are identical except the way how they test # whether a variable exists: