1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-02-20 22:32:17 +02:00

tests: cp/perm (usually not run) was failing on systems with SELinux

* tests/cp/perm: Use stat to get the permission string, not ls.
This test was run only when RUN_VERY_EXPENSIVE_TESTS=yes was set
in the environment.  It would fail on SELinux-enable systems
because ls-generated permission strings would not match, e.g.,
"test _-rw-r--r--+ = _-rw-r--r--" would fail.
This commit is contained in:
Jim Meyering
2008-04-24 12:43:20 +02:00
parent cca6a8d7e5
commit 8dc387dba5

View File

@@ -41,9 +41,7 @@ for u in 31 37 2; do
for o_perm in r w x rw wx xr rwx; do
touch src || exit 1
chmod u=r,g=rx,o= src || exit 1
set _ `ls -l src`
shift
expected_perms=$1
expected_perms=$(stat --format=%A src)
rm -f dest
test $existing_dest = yes && {
touch dest || exit 1
@@ -52,8 +50,7 @@ for u in 31 37 2; do
$cmd $force src dest || exit 1
test "$cmd" = mv && test -f src && exit 1
test "$cmd" = cp && { test -f src || exit 1; }
set _ `ls -l dest`
shift
actual_perms=$(stat --format=%A dest)
case "$cmd:$force:$existing_dest" in
cp:*:yes)
@@ -68,7 +65,7 @@ for u in 31 37 2; do
expected_perms=`echo $expected_perms|sed 's/..\(..\).$/--\1-/'`
;;
esac
test _$1 = _$expected_perms || exit 1
test _$actual_perms = _$expected_perms || exit 1
# Perform only one iteration when there's no existing destination.
test $existing_dest = no && break 3
done