diff --git a/tools/regression.sh b/tools/regression.sh new file mode 100755 index 0000000..85864f8 --- /dev/null +++ b/tools/regression.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +DISTROS="redhat gentoo debian suse" +STRICT_TYPES="strict strict-mls" +TARG_TYPES="targeted targeted-mls" +POLVER="`checkpolicy -V |cut -f 1 -d ' '`" +SETFILES="/usr/sbin/setfiles" + +do_test() { + local OPTS="" + + for i in $STRICT_TYPES; do + OPTS="TYPE=$i QUIET=@" + [ ! -z "$1" ] && OPTS="$OPTS DISTRO=$1" + make bare || exit 1 + echo "**** Options: $OPTS ****" + make $OPTS conf || exit 1 + make $OPTS || exit 1 + make $OPTS file_contexts || exit 1 + $SETFILES -q -c policy.$POLVER file_contexts || exit 1 + done + + # need a specific config for targeted policy + for i in $TARG_TYPES; do + OPTS="TYPE=$i QUIET=@" + [ ! -z "$1" ] && OPTS="$OPTS DISTRO=$1" + make bare || exit 1 + echo "**** Options: $OPTS ****" + cp policy/modules.conf.targeted_example policy/modules.conf + make $OPTS conf || exit 1 + make $OPTS || exit 1 + make $OPTS file_contexts || exit 1 + $SETFILES -q -c policy.$POLVER file_contexts|| exit 1 + done +} + +# first to generic test +do_test + +# now distro-specitic test +for i in $DISTROS; do + do_test $i +done + +# clean up +make bare +echo "Completed successfully."