| 1 |
#!/bin/bash |
|---|
| 2 |
|
|---|
| 3 |
TYPES="standard mcs mls" |
|---|
| 4 |
ILKS="strict targeted" |
|---|
| 5 |
POLVER="`checkpolicy -V |cut -f 1 -d ' '`" |
|---|
| 6 |
SETFILES="/usr/sbin/setfiles" |
|---|
| 7 |
SE_LINK="time -p /usr/bin/semodule_link" |
|---|
| 8 |
|
|---|
| 9 |
die() { |
|---|
| 10 |
if [ "$1" -eq "1" ]; then |
|---|
| 11 |
echo "failed with options: $2" |
|---|
| 12 |
fi |
|---|
| 13 |
|
|---|
| 14 |
exit 1 |
|---|
| 15 |
} |
|---|
| 16 |
|
|---|
| 17 |
cleanup_mon() { |
|---|
| 18 |
make MONOLITHIC=y bare |
|---|
| 19 |
} |
|---|
| 20 |
|
|---|
| 21 |
cleanup_mod() { |
|---|
| 22 |
make MONOLITHIC=n bare |
|---|
| 23 |
} |
|---|
| 24 |
|
|---|
| 25 |
set_ilk() { |
|---|
| 26 |
if [[ $1 != "targeted" ]]; then |
|---|
| 27 |
sed -i -e '/^anaconda/s/module$/off/' policy/modules.conf |
|---|
| 28 |
sed -i -e '/^firstboot/s/module$/off/' policy/modules.conf |
|---|
| 29 |
sed -i -e '/^unconfined/s/module$/off/' policy/modules.conf |
|---|
| 30 |
fi |
|---|
| 31 |
egrep "^(unconfined|firstboot|anaconda)" policy/modules.conf |
|---|
| 32 |
} |
|---|
| 33 |
|
|---|
| 34 |
do_test() { |
|---|
| 35 |
local OPTS="" |
|---|
| 36 |
|
|---|
| 37 |
for i in $TYPES; do |
|---|
| 38 |
for j in $ILKS; do |
|---|
| 39 |
# Monolithic tests |
|---|
| 40 |
trap cleanup_mon SIGINT SIGQUIT |
|---|
| 41 |
OPTS="TYPE=$i MONOLITHIC=y QUIET=y DIRECT_INITRC=y" |
|---|
| 42 |
[ ! -z "$1" ] && OPTS="$OPTS DISTRO=$1" |
|---|
| 43 |
echo "**** Options: $OPTS ****" |
|---|
| 44 |
echo -ne "\033]0;mon $i $j $1\007" |
|---|
| 45 |
make $OPTS conf || die "$?" "$OPTS" |
|---|
| 46 |
set_ilk $j |
|---|
| 47 |
make $OPTS || die "$?" "$OPTS" |
|---|
| 48 |
make $OPTS file_contexts || die "$?" "$OPTS" |
|---|
| 49 |
$SETFILES -q -c policy.$POLVER file_contexts || die "$?" "$OPTS" |
|---|
| 50 |
cleanup_mon |
|---|
| 51 |
|
|---|
| 52 |
# Loadable module tests |
|---|
| 53 |
trap cleanup_mod SIGINT SIGQUIT |
|---|
| 54 |
OPTS="TYPE=$i MONOLITHIC=n QUIET=y DIRECT_INITRC=y" |
|---|
| 55 |
[ ! -z "$1" ] && OPTS="$OPTS DISTRO=$1" |
|---|
| 56 |
echo "**** Options: $OPTS ****" |
|---|
| 57 |
echo -ne "\033]0;mod $i $j $1\007" |
|---|
| 58 |
make $OPTS conf || die "$?" "$OPTS" |
|---|
| 59 |
set_ilk $j |
|---|
| 60 |
make $OPTS base || die "$?" "$OPTS" |
|---|
| 61 |
make $OPTS -j3 modules || die "$?" "$OPTS" |
|---|
| 62 |
make $OPTS validate || die "$?" "$OPTS" |
|---|
| 63 |
cleanup_mod |
|---|
| 64 |
done |
|---|
| 65 |
done |
|---|
| 66 |
} |
|---|
| 67 |
|
|---|
| 68 |
[ -z "$1" ] \ |
|---|
| 69 |
&& distro="redhat" \ |
|---|
| 70 |
|| d |
|---|
| 71 |
|
|---|
| 72 |
cleanup_mon |
|---|
| 73 |
cleanup_mod |
|---|
| 74 |
|
|---|
| 75 |
if [ -z "$1" ]; then |
|---|
| 76 |
do_test redhat |
|---|
| 77 |
else |
|---|
| 78 |
do_test $1 |
|---|
| 79 |
fi |
|---|
| 80 |
|
|---|
| 81 |
echo "Completed successfully." |
|---|