summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am1
-rwxr-xr-xtests/misc/chcon11
-rwxr-xr-xtests/misc/selinux11
-rw-r--r--tests/test-lib.sh15
4 files changed, 23 insertions, 15 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c22b62edf..daf2e5a9f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -32,6 +32,7 @@ root_tests = \
cp/special-bits \
ls/nameless-uid \
misc/chcon \
+ misc/selinux \
mkdir/writable-under-readonly \
mv/sticky-to-xpart \
rm/fail-2eperm \
diff --git a/tests/misc/chcon b/tests/misc/chcon
index e637893ef..d7a9c5f31 100755
--- a/tests/misc/chcon
+++ b/tests/misc/chcon
@@ -9,16 +9,7 @@ fi
. $top_srcdir/tests/test-lib.sh
require_root_
require_selinux_
-
-# When mcstransd is running, you'll see only the 3-component
-# version of file-system context strings. Detect that,
-# and if it's running, skip this test.
-ctx=$(stat --printf='%C\n' .) || framework_failure
-case $ctx in
- *:*:*:*) ;; # four components is ok
- *) # anything else probably means mcstransd is running
- skip_test_ "unexpected context '$ctx'; turn off mcstransd" ;;
-esac
+skip_if_mcstransd_is_running_
mkdir -p d/sub/s2 || framework_failure
touch f g d/sub/1 d/sub/2 || framework_failure
diff --git a/tests/misc/selinux b/tests/misc/selinux
index e94666492..87b3af250 100755
--- a/tests/misc/selinux
+++ b/tests/misc/selinux
@@ -11,8 +11,9 @@ if test "$VERBOSE" = yes; then
fi
. $top_srcdir/tests/test-lib.sh
-skip_if_root_
+require_root_
require_selinux_
+skip_if_mcstransd_is_running_
# Create a regular file, dir, fifo.
touch f || framework_failure
@@ -21,10 +22,10 @@ mkfifo p || framework_failure
fail=0
-ctx=root:object_r:tmp_t
-# FIXME, what if $ctx is no different from the default. Not likely.
-# give each a different context, via chcon
-chcon $ctx f d p 2>/dev/null ||
+# special context that works both with and without mcstransd
+ctx=root:object_r:tmp_t:s0
+
+chcon $ctx f d p ||
skip_test_ '"chcon '$ctx' ..." failed'
# inspect that context with both ls -Z and stat.
diff --git a/tests/test-lib.sh b/tests/test-lib.sh
index 5ff301c6f..2083d0c15 100644
--- a/tests/test-lib.sh
+++ b/tests/test-lib.sh
@@ -226,6 +226,21 @@ mkfifo_or_skip_()
fi
}
+skip_if_mcstransd_is_running_()
+{
+ test $# = 0 || framework_failure
+
+ # When mcstransd is running, you'll see only the 3-component
+ # version of file-system context strings. Detect that,
+ # and if it's running, skip this test.
+ local ctx=$(stat --printf='%C\n' .) || framework_failure
+ case $ctx in
+ *:*:*:*) ;; # four components is ok
+ *) # anything else probably means mcstransd is running
+ skip_test_ "unexpected context '$ctx'; turn off mcstransd" ;;
+ esac
+}
+
# Skip the current test if umask doesn't work as usual.
# This test should be run in the temporary directory that ends
# up being removed via the trap commands.