mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-03-09 14:34:16 +02:00
*** empty log message ***
This commit is contained in:
@@ -29,33 +29,47 @@ fail=0
|
||||
|
||||
# Now, try it with `mv', with combinations of --force, no-f and
|
||||
# existing-destination and not.
|
||||
for cmd in mv 'cp -p' cp; do
|
||||
for force in '' -f; do
|
||||
for existing_dest in yes no; do
|
||||
for g_perm in r w x rw wx xr rwx; do
|
||||
for o_perm in r w x rw wx xr rwx; do
|
||||
touch src || exit 1
|
||||
chmod u=r,go= src || exit 1
|
||||
rm -f dest
|
||||
test $existing_dest = yes && {
|
||||
touch dest || exit 1
|
||||
chmod u=rw,g=$g_perm,o=$o_perm dest || exit 1
|
||||
}
|
||||
$cmd $force src dest || exit 1
|
||||
test "$cmd" = mv && test -f src && exit 1
|
||||
test "$cmd" = cp && { test -f src || exit 1; }
|
||||
set X `ls -l dest`
|
||||
shift
|
||||
case "$cmd:$force:$existing_dest" in
|
||||
cp::yes)
|
||||
_g_perm=`echo rwx|sed 's/[^'$g_perm']/-/g'`
|
||||
_o_perm=`echo rwx|sed 's/[^'$o_perm']/-/g'`
|
||||
expected_perms=-rw-$_g_perm$_o_perm;;
|
||||
*) expected_perms=-r--------;;
|
||||
esac
|
||||
test x$1 = x$expected_perms || exit 1
|
||||
# Perform only one iteration when there's no existing destination.
|
||||
test $existing_dest = no && break 3
|
||||
for u in 31 37 2; do
|
||||
echo umask: $u
|
||||
umask $u
|
||||
for cmd in mv 'cp -p' cp; do
|
||||
for force in '' -f; do
|
||||
for existing_dest in yes no; do
|
||||
for g_perm in r w x rw wx xr rwx; 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 X `ls -l src`
|
||||
shift
|
||||
expected_perms=$1
|
||||
rm -f dest
|
||||
test $existing_dest = yes && {
|
||||
touch dest || exit 1
|
||||
chmod u=rw,g=$g_perm,o=$o_perm dest || exit 1
|
||||
}
|
||||
$cmd $force src dest || exit 1
|
||||
test "$cmd" = mv && test -f src && exit 1
|
||||
test "$cmd" = cp && { test -f src || exit 1; }
|
||||
set X `ls -l dest`
|
||||
shift
|
||||
|
||||
case "$cmd:$force:$existing_dest" in
|
||||
cp::yes)
|
||||
_g_perm=`echo rwx|sed 's/[^'$g_perm']/-/g'`
|
||||
_o_perm=`echo rwx|sed 's/[^'$o_perm']/-/g'`
|
||||
expected_perms=-rw-$_g_perm$_o_perm
|
||||
;;
|
||||
cp::no|cp:-f:*)
|
||||
test $u = 37 &&
|
||||
expected_perms=`echo $expected_perms|sed 's/.....$/-----/'`
|
||||
test $u = 31 &&
|
||||
expected_perms=`echo $expected_perms|sed 's/..\(..\).$/--\1-/'`
|
||||
;;
|
||||
esac
|
||||
test x$1 = x$expected_perms || exit 1
|
||||
# Perform only one iteration when there's no existing destination.
|
||||
test $existing_dest = no && break 3
|
||||
done
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user