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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user