diff options
author | Jim Meyering <jim@meyering.net> | 2000-08-13 13:03:41 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2000-08-13 13:03:41 +0000 |
commit | 262dbfe2f65a8e5277d62ed21da074d8ffb07f70 (patch) | |
tree | 1e2f7864052cd88f7d73aa2d0c0268432ddbf040 /tests/cp/perm | |
parent | 27289e8b537620ba0b2abb6f3f4d71d2c24bc6a9 (diff) | |
download | coreutils-262dbfe2f65a8e5277d62ed21da074d8ffb07f70.tar.xz |
*** empty log message ***
Diffstat (limited to 'tests/cp/perm')
-rwxr-xr-x | tests/cp/perm | 68 |
1 files changed, 41 insertions, 27 deletions
diff --git a/tests/cp/perm b/tests/cp/perm index 4bc3cddbc..44a839f22 100755 --- a/tests/cp/perm +++ b/tests/cp/perm @@ -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 |