mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-24 06:54:13 +00:00
72 lines
1.1 KiB
Text
72 lines
1.1 KiB
Text
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
|
|||
!
|