diff options
author | Jim Meyering <meyering@redhat.com> | 2008-05-05 15:17:42 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2008-05-06 08:21:30 +0200 |
commit | d3dc29c0bef01d16918dfb3b792ef6ed674f7eb9 (patch) | |
tree | 2e1dc9c8ae1083cccdc2e11b00c2c41a96a105bc | |
parent | 6ec3a4f03356a79a49f03e4b8c4d59bca30ca671 (diff) | |
download | coreutils-d3dc29c0bef01d16918dfb3b792ef6ed674f7eb9.tar.xz |
tests: skip another test if mcstransd is running
* tests/test-lib.sh (skip_if_mcstransd_is_running_): New function,
extracted from...
* tests/misc/chcon: ...here. Use function, not open-coded test.
* tests/misc/selinux: Use the function here, too.
Require root, not non-root.
* tests/Makefile.am (root_tests): Add misc/selinux.
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rwxr-xr-x | tests/misc/chcon | 11 | ||||
-rwxr-xr-x | tests/misc/selinux | 11 | ||||
-rw-r--r-- | tests/test-lib.sh | 15 |
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. |