From: Jim Meyering Date: Thu, 24 Apr 2008 10:43:20 +0000 (+0200) Subject: tests: cp/perm (usually not run) was failing on systems with SELinux X-Git-Tag: v6.12~92 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8dc387dba567da10e2e90107fd044baaef580145;p=thirdparty%2Fcoreutils.git 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. --- diff --git a/tests/cp/perm b/tests/cp/perm index b24221f031..b482c173d0 100755 --- a/tests/cp/perm +++ b/tests/cp/perm @@ -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