NOTE regression tests for --regress enabled ksh UNIT ksh-regress EXPORT HOME=. ENV=.env.sh LC_ALL=C HISTFILE= TEST mode suid/sgid combinations # these tests are the product { all modes combinations } X { tests } defaults=( "etc=$HOME" "source" ) modes=( interactive login privileged rc restricted ) tests=( "" "euid=0" "euid=0 p_suid=0" "euid=0 p_suid=99999" "euid=1" "euid=1 p_suid=0" "euid=1 p_suid=99999" "egid=1" "egid=1 p_suid=0" "egid=1 p_suid=99999" ) integer n=1 m=${#modes[@]} d= for o in ${defaults[@]} do d="$d --regress=$o" done for ((b=0; b<m; b++)) do (( n *= 3 )) done for (( b=0; b<n; b++ )) do k= z=$(printf "%0$m..3u" $b) for (( i=0; i<m; i++ )) do case $z in 1*) k="$k --no${modes[i]}" ;; 2*) k="$k --${modes[i]}" ;; esac z=${z#?} done for t in "${tests[@]}" do o=$d for r in $t do o="$o --regress=$r" done o="$o $k" EXEC $o <<! set --state ! done done TEST privileged/noprivileged sequence EXEC --regress=etc=. --regress=euid=1 --privileged <<! set --state; set --noprivileged; set --state; set --privileged; set --state; set --noprivileged; set --state !