Blob Blame History Raw
#!/bin/bash

DISTROS="redhat gentoo debian suse"
TYPES="strict strict-mls strict-mcs targeted targeted-mls targeted-mcs"
POLVER="`checkpolicy -V |cut -f 1 -d ' '`"
SETFILES="/usr/sbin/setfiles"
SE_LINK="/usr/bin/semodule_link"

do_monolithic_test() {
	local OPTS=""

	for i in $TYPES; do
		OPTS="TYPE=$i QUIET=@ DIRECT_INITRC=y"
		[ ! -z "$1" ] && OPTS="$OPTS DISTRO=$1"
		make $OPTS 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
		make $OPTS bare || exit 1
	done
}

do_modular_test() {
	local OPTS=""

	for i in $TYPES; do
		OPTS="TYPE=$i MONOLITHIC=n QUIET=@ DIRECT_INITRC=y"
		[ ! -z "$1" ] && OPTS="$OPTS DISTRO=$1"
		make $OPTS bare || exit 1
		echo "**** Options: $OPTS ****"
		make $OPTS conf || exit 1
		make $OPTS || exit 1
		make $OPTS base modules || exit 1
		mv base.pp tmp
		$SE_LINK tmp/base.pp *.pp || exit 1
		make $OPTS bare || exit 1
	done
}

# Monolithic tests

do_monolithic_test

for i in $DISTROS; do
	do_monolithic_test $i
done

# Loadable module tests

do_modular_test

for i in $DISTROS; do
	do_modular_test $i
done

echo "Completed successfully."