1
0
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:
Jim Meyering
2000-08-13 13:03:41 +00:00
parent 27289e8b53
commit 262dbfe2f6

View File

@@ -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