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