2020-03-04 12:35:06 +03:00
#!/usr/bin/env bash
2017-08-07 22:09:21 +03:00
set -e
2021-04-19 14:01:59 +03:00
2016-01-31 12:01:43 +03:00
TEST_DESCRIPTION = "SELinux tests"
2019-12-12 11:37:19 +03:00
IMAGE_NAME = "selinux"
2017-08-04 15:34:14 +03:00
TEST_NO_NSPAWN = 1
2016-01-31 12:01:43 +03:00
# Requirements:
# Fedora 23
# selinux-policy-targeted
# selinux-policy-devel
2018-03-23 11:48:15 +03:00
# Check if selinux-policy-devel is installed, and if it isn't bail out early instead of failing
2018-06-05 22:27:01 +03:00
test -f /usr/share/selinux/devel/include/system/systemd.if || exit 0
2018-03-23 11:48:15 +03:00
2021-04-19 14:01:59 +03:00
# shellcheck source=test/test-functions
. " ${ TEST_BASE_DIR : ? } /test-functions "
2016-01-31 12:01:43 +03:00
SETUP_SELINUX = yes
2021-04-19 14:01:59 +03:00
KERNEL_APPEND = " ${ KERNEL_APPEND : = } selinux=1 security=selinux "
2016-01-31 12:01:43 +03:00
2021-01-07 00:42:28 +03:00
test_append_files( ) {
2016-01-31 12:01:43 +03:00
(
2021-04-19 14:01:59 +03:00
local workspace = " ${ 1 : ? } "
local policy_headers_dir = /usr/share/selinux/devel
local modules_dir = /var/lib/selinux
2021-01-07 00:42:28 +03:00
setup_selinux
2021-04-19 14:01:59 +03:00
# Make sure we never expand this to "/..."
rm -rf " ${ workspace : ? } / $modules_dir "
if ! cp -ar " $modules_dir " " $workspace / $modules_dir " ; then
dfatal " Failed to copy $modules_dir "
2016-01-31 12:01:43 +03:00
exit 1
fi
2021-04-19 14:01:59 +03:00
rm -rf " ${ workspace : ? } / $policy_headers_dir "
2016-01-31 12:01:43 +03:00
inst_dir /usr/share/selinux
2021-04-19 14:01:59 +03:00
if ! cp -ar " $policy_headers_dir " " $workspace / $policy_headers_dir " ; then
dfatal " Failed to copy $policy_headers_dir "
2016-01-31 12:01:43 +03:00
exit 1
fi
2021-04-19 14:01:59 +03:00
mkdir " $workspace /systemd-test-module "
cp systemd_test.te " $workspace /systemd-test-module "
cp systemd_test.if " $workspace /systemd-test-module "
cp systemd_test.fc " $workspace /systemd-test-module "
2016-01-31 12:01:43 +03:00
dracut_install -o sesearch
dracut_install runcon
2021-05-19 11:49:56 +03:00
dracut_install checkmodule semodule semodule_package m4 make load_policy sefcontext_compile
2020-03-31 14:19:13 +03:00
dracut_install -o /usr/libexec/selinux/hll/pp # Fedora/RHEL/...
dracut_install -o /usr/lib/selinux/hll/pp # Debian/Ubuntu/...
2019-07-08 22:11:32 +03:00
)
2016-01-31 12:01:43 +03:00
}
2021-04-26 20:20:18 +03:00
do_test " $@ "