diff --git a/test/TEST-06-SELINUX/test.sh b/test/TEST-06-SELINUX/test.sh index a867dea4b7..5d72638ec6 100755 --- a/test/TEST-06-SELINUX/test.sh +++ b/test/TEST-06-SELINUX/test.sh @@ -7,7 +7,6 @@ IMAGE_NAME="selinux" TEST_NO_NSPAWN=1 # Requirements: -# Fedora 23 # selinux-policy-targeted # selinux-policy-devel @@ -21,38 +20,41 @@ SETUP_SELINUX=yes KERNEL_APPEND="${KERNEL_APPEND:=} selinux=1 security=selinux" test_append_files() { - ( - local workspace="${1:?}" - local policy_headers_dir=/usr/share/selinux/devel - local modules_dir=/var/lib/selinux + local workspace="${1:?}" + local policy_headers_dir=/usr/share/selinux/devel + local modules_dir=/var/lib/selinux - setup_selinux - # Make sure we never expand this to "/..." - rm -rf "${workspace:?}/$modules_dir" + setup_selinux + # 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" - exit 1 - fi + if ! cp -ar "$modules_dir" "$workspace/$modules_dir"; then + dfatal "Failed to copy $modules_dir" + exit 1 + fi - rm -rf "${workspace:?}/$policy_headers_dir" - inst_dir /usr/share/selinux + rm -rf "${workspace:?}/$policy_headers_dir" + inst_dir /usr/share/selinux - if ! cp -ar "$policy_headers_dir" "$workspace/$policy_headers_dir"; then - dfatal "Failed to copy $policy_headers_dir" - exit 1 - fi + if ! cp -ar "$policy_headers_dir" "$workspace/$policy_headers_dir"; then + dfatal "Failed to copy $policy_headers_dir" + exit 1 + fi - 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" - image_install -o sesearch - image_install runcon - image_install checkmodule semodule semodule_package m4 make load_policy sefcontext_compile - image_install -o /usr/libexec/selinux/hll/pp # Fedora/RHEL/... - image_install -o /usr/lib/selinux/hll/pp # Debian/Ubuntu/... - ) + 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" + image_install -o sesearch + image_install runcon + image_install checkmodule semodule semodule_package m4 make load_policy sefcontext_compile + image_install -o /usr/libexec/selinux/hll/pp # Fedora/RHEL/... + image_install -o /usr/lib/selinux/hll/pp # Debian/Ubuntu/... + + if ! chroot "$workspace" make -C /systemd-test-module -f /usr/share/selinux/devel/Makefile clean systemd_test.pp; then + dfatal "Failed to build the systemd test module" + exit 1 + fi } do_test "$@" diff --git a/test/test-functions b/test/test-functions index 057b748f81..3a2a59758f 100644 --- a/test/test-functions +++ b/test/test-functions @@ -1513,8 +1513,8 @@ check_coverage_reports() { return 1 fi - # Create a coverage report that will later be uploaded. Remove info about - # system libraries/headers, as we don't really care about them. + # Create a coverage report that will later be uploaded. Remove info about system + # libraries/headers and generated files, as we don't really care about them. lcov --directory "${root}/${BUILD_DIR:?}" --capture --output-file "${dest}.new" if [[ -f "$dest" ]]; then # If the destination report file already exists, don't overwrite it, but @@ -1526,7 +1526,7 @@ check_coverage_reports() { # report we did during the setup phase (see test_setup()). lcov --add-tracefile "${TESTDIR:?}/coverage-base" --add-tracefile "${dest}.new" -o "${dest}" fi - lcov --remove "$dest" -o "$dest" '/usr/include/*' '/usr/lib/*' + lcov --remove "$dest" -o "$dest" '/usr/include/*' '/usr/lib/*' "${BUILD_DIR:?}/*" rm -f "${dest}.new" # If the test logs contain lines like: diff --git a/test/testsuite-06.units/load-systemd-test-module.service b/test/testsuite-06.units/load-systemd-test-module.service index 3a22c15b25..2d15a62715 100644 --- a/test/testsuite-06.units/load-systemd-test-module.service +++ b/test/testsuite-06.units/load-systemd-test-module.service @@ -9,7 +9,7 @@ Before=sysinit.target shutdown.target autorelabel.service ConditionSecurity=selinux [Service] -ExecStart=sh -x -c 'echo 0 >/sys/fs/selinux/enforce && cd /systemd-test-module && make -f /usr/share/selinux/devel/Makefile clean load' +ExecStart=sh -x -c 'echo 0 >/sys/fs/selinux/enforce && make -C /systemd-test-module -f /usr/share/selinux/devel/Makefile load' Type=oneshot TimeoutSec=0 RemainAfterExit=yes diff --git a/test/units/testsuite-04.sh b/test/units/testsuite-04.sh index 7c1565bf15..3c4c8afd53 100755 --- a/test/units/testsuite-04.sh +++ b/test/units/testsuite-04.sh @@ -8,7 +8,8 @@ trap "journalctl --rotate --vacuum-size=16M" EXIT # Rotation/flush test, see https://github.com/systemd/systemd/issues/19895 journalctl --relinquish-var -for _ in {0..50}; do +[[ "$(systemd-detect-virt -v)" == "qemu" ]] && ITERATIONS=10 || ITERATIONS=50 +for ((i = 0; i < ITERATIONS; i++)); do dd if=/dev/urandom bs=1M count=1 | base64 | systemd-cat done journalctl --rotate