1*b30d1939SAndy FiddamanNOTE regression tests for --regress enabled ksh 2*b30d1939SAndy Fiddaman 3*b30d1939SAndy FiddamanUNIT ksh-regress 4*b30d1939SAndy Fiddaman 5*b30d1939SAndy FiddamanEXPORT HOME=. ENV=.env.sh LC_ALL=C HISTFILE= 6*b30d1939SAndy Fiddaman 7*b30d1939SAndy FiddamanTEST mode suid/sgid combinations 8*b30d1939SAndy Fiddaman 9*b30d1939SAndy Fiddaman# these tests are the product { all modes combinations } X { tests } 10*b30d1939SAndy Fiddaman 11*b30d1939SAndy Fiddamandefaults=( 12*b30d1939SAndy Fiddaman "etc=$HOME" 13*b30d1939SAndy Fiddaman "source" 14*b30d1939SAndy Fiddaman) 15*b30d1939SAndy Fiddamanmodes=( 16*b30d1939SAndy Fiddaman interactive 17*b30d1939SAndy Fiddaman login 18*b30d1939SAndy Fiddaman privileged 19*b30d1939SAndy Fiddaman rc 20*b30d1939SAndy Fiddaman restricted 21*b30d1939SAndy Fiddaman) 22*b30d1939SAndy Fiddamantests=( 23*b30d1939SAndy Fiddaman "" 24*b30d1939SAndy Fiddaman "euid=0" 25*b30d1939SAndy Fiddaman "euid=0 p_suid=0" 26*b30d1939SAndy Fiddaman "euid=0 p_suid=99999" 27*b30d1939SAndy Fiddaman "euid=1" 28*b30d1939SAndy Fiddaman "euid=1 p_suid=0" 29*b30d1939SAndy Fiddaman "euid=1 p_suid=99999" 30*b30d1939SAndy Fiddaman "egid=1" 31*b30d1939SAndy Fiddaman "egid=1 p_suid=0" 32*b30d1939SAndy Fiddaman "egid=1 p_suid=99999" 33*b30d1939SAndy Fiddaman) 34*b30d1939SAndy Fiddaman 35*b30d1939SAndy Fiddamaninteger n=1 m=${#modes[@]} 36*b30d1939SAndy Fiddamand= 37*b30d1939SAndy Fiddamanfor o in ${defaults[@]} 38*b30d1939SAndy Fiddamando d="$d --regress=$o" 39*b30d1939SAndy Fiddamandone 40*b30d1939SAndy Fiddamanfor ((b=0; b<m; b++)) 41*b30d1939SAndy Fiddamando (( n *= 3 )) 42*b30d1939SAndy Fiddamandone 43*b30d1939SAndy Fiddamanfor (( b=0; b<n; b++ )) 44*b30d1939SAndy Fiddamando k= 45*b30d1939SAndy Fiddaman z=$(printf "%0$m..3u" $b) 46*b30d1939SAndy Fiddaman for (( i=0; i<m; i++ )) 47*b30d1939SAndy Fiddaman do case $z in 48*b30d1939SAndy Fiddaman 1*) k="$k --no${modes[i]}" ;; 49*b30d1939SAndy Fiddaman 2*) k="$k --${modes[i]}" ;; 50*b30d1939SAndy Fiddaman esac 51*b30d1939SAndy Fiddaman z=${z#?} 52*b30d1939SAndy Fiddaman done 53*b30d1939SAndy Fiddaman for t in "${tests[@]}" 54*b30d1939SAndy Fiddaman do o=$d 55*b30d1939SAndy Fiddaman for r in $t 56*b30d1939SAndy Fiddaman do o="$o --regress=$r" 57*b30d1939SAndy Fiddaman done 58*b30d1939SAndy Fiddaman o="$o $k" 59*b30d1939SAndy Fiddaman 60*b30d1939SAndy FiddamanEXEC $o <<! 61*b30d1939SAndy Fiddamanset --state 62*b30d1939SAndy Fiddaman! 63*b30d1939SAndy Fiddaman 64*b30d1939SAndy Fiddaman done 65*b30d1939SAndy Fiddamandone 66*b30d1939SAndy Fiddaman 67*b30d1939SAndy FiddamanTEST privileged/noprivileged sequence 68*b30d1939SAndy Fiddaman 69*b30d1939SAndy FiddamanEXEC --regress=etc=. --regress=euid=1 --privileged <<! 70*b30d1939SAndy Fiddamanset --state; set --noprivileged; set --state; set --privileged; set --state; set --noprivileged; set --state 71*b30d1939SAndy Fiddaman! 72