From 2318de328a198733441962c9107642f5d86dd6a2 Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Thu, 14 May 2020 17:55:47 +0100 Subject: [PATCH] Regression test suite: get rid of unportable 'mktemp -dt' The regression test suite used 'mktemp -dt' to create temporary directories, but that is not portable, e.g. it does not work on macOS, FreebSD or NetBSD. Installing a compatible 'mktemp' in another location in $PATH did not work either, as the regression test suite resets $PATH. src/cmd/ksh93/tests/*: - Replace many uses of 'mktemp -dt' by a portable and reasonably safe way to create a temporary directory. (cherry picked from commit 71f4c43703e3eff034009b4c8f4110bd32f4e209) --- src/cmd/ksh93/tests/alias.sh | 10 ++++++++-- src/cmd/ksh93/tests/arith.sh | 10 ++++++++-- src/cmd/ksh93/tests/arrays.sh | 10 ++++++++-- src/cmd/ksh93/tests/attributes.sh | 10 ++++++++-- src/cmd/ksh93/tests/basic.sh | 10 ++++++++-- src/cmd/ksh93/tests/bracket.sh | 10 ++++++++-- src/cmd/ksh93/tests/builtins.sh | 12 +++++++++--- src/cmd/ksh93/tests/coprocess.sh | 10 ++++++++-- src/cmd/ksh93/tests/exit.sh | 10 ++++++++-- src/cmd/ksh93/tests/functions.sh | 10 ++++++++-- src/cmd/ksh93/tests/glob.sh | 10 ++++++++-- src/cmd/ksh93/tests/grep.sh | 10 ++++++++-- src/cmd/ksh93/tests/heredoc.sh | 10 ++++++++-- src/cmd/ksh93/tests/io.sh | 10 ++++++++-- src/cmd/ksh93/tests/locale.sh | 10 ++++++++-- src/cmd/ksh93/tests/math.sh | 10 ++++++++-- src/cmd/ksh93/tests/nameref.sh | 10 ++++++++-- src/cmd/ksh93/tests/namespace.sh | 10 ++++++++-- src/cmd/ksh93/tests/options.sh | 10 ++++++++-- src/cmd/ksh93/tests/path.sh | 10 ++++++++-- src/cmd/ksh93/tests/readcsv.sh | 10 ++++++++-- src/cmd/ksh93/tests/restricted.sh | 10 ++++++++-- src/cmd/ksh93/tests/return.sh | 10 ++++++++-- src/cmd/ksh93/tests/select.sh | 10 ++++++++-- src/cmd/ksh93/tests/shtests | 20 ++++++++++++++++---- src/cmd/ksh93/tests/sigchld.sh | 11 +++++++++-- src/cmd/ksh93/tests/signal.sh | 10 ++++++++-- src/cmd/ksh93/tests/subshell.sh | 10 ++++++++-- src/cmd/ksh93/tests/tilde.sh | 10 ++++++++-- src/cmd/ksh93/tests/types.sh | 10 ++++++++-- src/cmd/ksh93/tests/variables.sh | 10 ++++++++-- 31 files changed, 258 insertions(+), 65 deletions(-) diff --git a/src/cmd/ksh93/tests/alias.sh b/src/cmd/ksh93/tests/alias.sh index 5a75fa311..79dbe4ef2 100755 --- a/src/cmd/ksh93/tests/alias.sh +++ b/src/cmd/ksh93/tests/alias.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.alias.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT alias foo='print hello' if [[ $(foo) != hello ]] diff --git a/src/cmd/ksh93/tests/arith.sh b/src/cmd/ksh93/tests/arith.sh index 288b4c5ab..404259739 100755 --- a/src/cmd/ksh93/tests/arith.sh +++ b/src/cmd/ksh93/tests/arith.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.arith.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT 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 7845f7352..200eb8e66 100755 --- a/src/cmd/ksh93/tests/arrays.sh +++ b/src/cmd/ksh93/tests/arrays.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.arrays.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT function fun { diff --git a/src/cmd/ksh93/tests/attributes.sh b/src/cmd/ksh93/tests/attributes.sh index fdf79e54e..2f51b7bab 100755 --- a/src/cmd/ksh93/tests/attributes.sh +++ b/src/cmd/ksh93/tests/attributes.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.attributes.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT r=readonly u=Uppercase l=Lowercase i=22 i8=10 L=abc L5=def uL5=abcdef xi=20 x=export t=tagged H=hostname LZ5=026 RZ5=026 Z5=123 lR5=ABcdef R5=def n=l diff --git a/src/cmd/ksh93/tests/basic.sh b/src/cmd/ksh93/tests/basic.sh index f8b4794e7..7abbc9578 100755 --- a/src/cmd/ksh93/tests/basic.sh +++ b/src/cmd/ksh93/tests/basic.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.basic.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT # test basic file operations like redirection, pipes, file expansion set -- \ diff --git a/src/cmd/ksh93/tests/bracket.sh b/src/cmd/ksh93/tests/bracket.sh index 41809f6f1..39937adb7 100755 --- a/src/cmd/ksh93/tests/bracket.sh +++ b/src/cmd/ksh93/tests/bracket.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.bracket.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT null='' if [[ ! -z $null ]] diff --git a/src/cmd/ksh93/tests/builtins.sh b/src/cmd/ksh93/tests/builtins.sh index 4ad461f4a..e082cafa3 100755 --- a/src/cmd/ksh93/tests/builtins.sh +++ b/src/cmd/ksh93/tests/builtins.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.builtins.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT # test shell builtin commands builtin getconf @@ -187,7 +193,7 @@ mkdir -p $tmp/a/b/c 2>/dev/null || err_exit "mkdir -p failed" $SHELL -c "cd $tmp/a/b; cd c" 2>/dev/null || err_exit "initial script relative cd fails" trap 'print TERM' TERM -exp=$'trap -- \'print TERM\' TERM\ntrap -- \'cd /; rm -rf '$tmp$'\' EXIT' +exp=$'trap -- \'print TERM\' TERM\ntrap -- \'cd / && rm -rf "$tmp"\' EXIT' got=$(trap) [[ $got == $exp ]] || err_exit "\$(trap) failed -- expected \"$exp\", got \"$got\"" exp='print TERM' diff --git a/src/cmd/ksh93/tests/coprocess.sh b/src/cmd/ksh93/tests/coprocess.sh index 93a47e8dd..0764f9e77 100755 --- a/src/cmd/ksh93/tests/coprocess.sh +++ b/src/cmd/ksh93/tests/coprocess.sh @@ -29,8 +29,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.coprocess.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT 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/exit.sh b/src/cmd/ksh93/tests/exit.sh index d2b91b735..bf71721d2 100755 --- a/src/cmd/ksh93/tests/exit.sh +++ b/src/cmd/ksh93/tests/exit.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.exit.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT function abspath { diff --git a/src/cmd/ksh93/tests/functions.sh b/src/cmd/ksh93/tests/functions.sh index a7a607ba7..f6f322e8d 100755 --- a/src/cmd/ksh93/tests/functions.sh +++ b/src/cmd/ksh93/tests/functions.sh @@ -33,8 +33,14 @@ read -n4 c < $0 2> /dev/null ulimit -c 0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.functions.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT integer foo=33 bar=bye diff --git a/src/cmd/ksh93/tests/glob.sh b/src/cmd/ksh93/tests/glob.sh index 5b7930e17..66f9c7ac6 100755 --- a/src/cmd/ksh93/tests/glob.sh +++ b/src/cmd/ksh93/tests/glob.sh @@ -27,8 +27,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer aware=0 contrary=0 Errors=0 ignorant=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.glob.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT function test_glob { diff --git a/src/cmd/ksh93/tests/grep.sh b/src/cmd/ksh93/tests/grep.sh index 480f82366..1f5695f95 100755 --- a/src/cmd/ksh93/tests/grep.sh +++ b/src/cmd/ksh93/tests/grep.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.grep.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT function grep { diff --git a/src/cmd/ksh93/tests/heredoc.sh b/src/cmd/ksh93/tests/heredoc.sh index 436b4361f..db00d6838 100755 --- a/src/cmd/ksh93/tests/heredoc.sh +++ b/src/cmd/ksh93/tests/heredoc.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.heredoc.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT f=$tmp/here1 g=$tmp/here2 diff --git a/src/cmd/ksh93/tests/io.sh b/src/cmd/ksh93/tests/io.sh index c4a5fdf6a..c2fca3d88 100755 --- a/src/cmd/ksh93/tests/io.sh +++ b/src/cmd/ksh93/tests/io.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.io.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT unset HISTFILE diff --git a/src/cmd/ksh93/tests/locale.sh b/src/cmd/ksh93/tests/locale.sh index 30dbf7e59..1eeab1346 100755 --- a/src/cmd/ksh93/tests/locale.sh +++ b/src/cmd/ksh93/tests/locale.sh @@ -30,8 +30,14 @@ integer Errors=0 unset LANG ${!LC_*} -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.locale.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT cd $tmp || exit a=$($SHELL -c '/' 2>&1 | sed -e "s,.*: *,," -e "s, *\[.*,,") diff --git a/src/cmd/ksh93/tests/math.sh b/src/cmd/ksh93/tests/math.sh index 59884f5a4..c68495827 100755 --- a/src/cmd/ksh93/tests/math.sh +++ b/src/cmd/ksh93/tests/math.sh @@ -34,8 +34,14 @@ set -o nounset typeset tmp # create temporary test directory -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.math.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT cd $tmp || exit function test_arithmetric_expression_accesss_array_element_through_nameref diff --git a/src/cmd/ksh93/tests/nameref.sh b/src/cmd/ksh93/tests/nameref.sh index e3b0f88b0..81e4df563 100755 --- a/src/cmd/ksh93/tests/nameref.sh +++ b/src/cmd/ksh93/tests/nameref.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.nameref.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT function checkref { diff --git a/src/cmd/ksh93/tests/namespace.sh b/src/cmd/ksh93/tests/namespace.sh index 77769a3fa..67aaae9f3 100755 --- a/src/cmd/ksh93/tests/namespace.sh +++ b/src/cmd/ksh93/tests/namespace.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.namespace.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT foo=abc typeset -C bar=(x=3 y=4 t=7) diff --git a/src/cmd/ksh93/tests/options.sh b/src/cmd/ksh93/tests/options.sh index c5b4c2e20..6673137f8 100755 --- a/src/cmd/ksh93/tests/options.sh +++ b/src/cmd/ksh93/tests/options.sh @@ -33,8 +33,14 @@ export LC_ALL=C ENV= ulimit -c 0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.options.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT if [[ $( ${SHELL-ksh} -s hello<<-\! print $1 diff --git a/src/cmd/ksh93/tests/path.sh b/src/cmd/ksh93/tests/path.sh index e7affb09f..781e8ee34 100755 --- a/src/cmd/ksh93/tests/path.sh +++ b/src/cmd/ksh93/tests/path.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.path.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT cd $tmp || exit type /xxxxxx > out1 2> out2 diff --git a/src/cmd/ksh93/tests/readcsv.sh b/src/cmd/ksh93/tests/readcsv.sh index 0aebc568a..691317322 100755 --- a/src/cmd/ksh93/tests/readcsv.sh +++ b/src/cmd/ksh93/tests/readcsv.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.readcsv.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT tmp1=$tmp/tmp1.csv tmp2=$tmp/tmp2.csv diff --git a/src/cmd/ksh93/tests/restricted.sh b/src/cmd/ksh93/tests/restricted.sh index 5699105d2..320181edb 100755 --- a/src/cmd/ksh93/tests/restricted.sh +++ b/src/cmd/ksh93/tests/restricted.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.restricted.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT # test restricted shell pwd=$PWD diff --git a/src/cmd/ksh93/tests/return.sh b/src/cmd/ksh93/tests/return.sh index 8c243f5f3..b52b51751 100755 --- a/src/cmd/ksh93/tests/return.sh +++ b/src/cmd/ksh93/tests/return.sh @@ -30,8 +30,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.return.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT unset HISTFILE diff --git a/src/cmd/ksh93/tests/select.sh b/src/cmd/ksh93/tests/select.sh index 07d0bde1b..ac37b5927 100755 --- a/src/cmd/ksh93/tests/select.sh +++ b/src/cmd/ksh93/tests/select.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.select.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT PS3='ABC ' diff --git a/src/cmd/ksh93/tests/shtests b/src/cmd/ksh93/tests/shtests index 8321897c9..66e6b03c9 100755 --- a/src/cmd/ksh93/tests/shtests +++ b/src/cmd/ksh93/tests/shtests @@ -275,8 +275,14 @@ then s=${SHELL:##*sh} fi if (( compile )) then if whence $SHCOMP > /dev/null - then tmp=$(mktemp -dt) || { echo mktemp -dt failed >&2; exit 1; } - trap "cd /; rm -rf $tmp" EXIT + then tmp=$( + d=${TMPDIR:-/tmp}/ksh93.shtests.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd + ) || { + echo 'mkdir failed' >&2 + exit 1 + } + trap 'cd / && rm -rf "$tmp"' EXIT elif (( compile > 1 )) then echo $0: --compile: $SHCOMP not found >&2 exit 1 @@ -288,8 +294,14 @@ then if [[ -x $SHELL-g ]] then SHELL=$SHELL-g fi if [[ ! $tmp ]] - then tmp=$(mktemp -dt) || { echo mktemp -dt failed >&2; exit 1; } - trap "cd /; rm -rf $tmp" EXIT + then tmp=$( + d=${TMPDIR:-/tmp}/ksh93.shtests.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd + ) || { + echo 'mkdir failed' >&2 + exit 1 + } + trap 'cd / && rm -rf "$tmp"' EXIT fi valxml=$tmp/valgrind.xml valgrind+=" --xml-file=$valxml" diff --git a/src/cmd/ksh93/tests/sigchld.sh b/src/cmd/ksh93/tests/sigchld.sh index d4dcee6c9..0a5dcb050 100755 --- a/src/cmd/ksh93/tests/sigchld.sh +++ b/src/cmd/ksh93/tests/sigchld.sh @@ -29,6 +29,15 @@ alias err_exit='err_exit $LINENO' float DELAY=${1:-0.2} integer FOREGROUND=10 BACKGROUND=2 Errors=0 +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.sigchld.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT + s=$($SHELL -c ' integer i foreground=0 background=0 float delay='$DELAY' d=0 s=0 @@ -146,8 +155,6 @@ done (( d==2000 )) || err_exit "trap '' CHLD causes side effects d=$d" trap - CHLD -tmp=$(mktemp -dt) -trap 'rm -rf $tmp' EXIT x=$($SHELL 2> /dev/null -ic '/bin/notfound; sleep .5 & sleep 1;jobs') [[ $x == *Done* ]] || err_exit 'SIGCHLD blocked after notfound' x=$($SHELL 2> /dev/null -ic 'kill -0 12345678901234567876; sleep .5 & sleep 1;jobs') diff --git a/src/cmd/ksh93/tests/signal.sh b/src/cmd/ksh93/tests/signal.sh index c6e150bb0..d5effeca2 100755 --- a/src/cmd/ksh93/tests/signal.sh +++ b/src/cmd/ksh93/tests/signal.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.signal.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT cd $tmp || err_exit "cd $tmp failed" diff --git a/src/cmd/ksh93/tests/subshell.sh b/src/cmd/ksh93/tests/subshell.sh index 5b774c242..c9d3f21bc 100755 --- a/src/cmd/ksh93/tests/subshell.sh +++ b/src/cmd/ksh93/tests/subshell.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 Error_fd=2 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.subshell.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT builtin getconf bincat=$(PATH=$(getconf PATH) whence -p cat) diff --git a/src/cmd/ksh93/tests/tilde.sh b/src/cmd/ksh93/tests/tilde.sh index b0447238b..518056e44 100755 --- a/src/cmd/ksh93/tests/tilde.sh +++ b/src/cmd/ksh93/tests/tilde.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.tilde.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT if $SHELL -c '[[ ~root == /* ]]' then x=$(print -r -- ~root) diff --git a/src/cmd/ksh93/tests/types.sh b/src/cmd/ksh93/tests/types.sh index b0cbfc661..3751c5c9c 100755 --- a/src/cmd/ksh93/tests/types.sh +++ b/src/cmd/ksh93/tests/types.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.types.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT integer n=2 diff --git a/src/cmd/ksh93/tests/variables.sh b/src/cmd/ksh93/tests/variables.sh index 6eec31b68..debe8f575 100755 --- a/src/cmd/ksh93/tests/variables.sh +++ b/src/cmd/ksh93/tests/variables.sh @@ -28,8 +28,14 @@ alias err_exit='err_exit $LINENO' Command=${0##*/} integer Errors=0 -tmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } -trap "cd /; rm -rf $tmp" EXIT +tmp=$( + d=${TMPDIR:-/tmp}/ksh93.variables.$$.${RANDOM:-0} + mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd +) || { + err_exit 'mkdir failed' + exit 1 +} +trap 'cd / && rm -rf "$tmp"' EXIT [[ ${.sh.version} == "$KSH_VERSION" ]] || err_exit '.sh.version != KSH_VERSION' unset ss