mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-05-25 03:36:31 +02:00
33173e867a
* tests/other-fs-tmpdir: Before, all callers would exit 77 upon failure to find the required dir. Now, exit 77 in this script so callers don't have to. Adjust callers.
81 lines
2.5 KiB
Bash
Executable File
81 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
# move files/directories across file system boundaries
|
|
# and make sure acls are preserved
|
|
|
|
# Copyright (C) 2005-2007 Free Software Foundation, Inc.
|
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
. $srcdir/../acl
|
|
|
|
# Skip this test if cp was built without ACL support:
|
|
grep '^#define USE_ACL 0' $CONFIG_HEADER > /dev/null && \
|
|
{
|
|
echo 1>&2 "$0: insufficient ACL support, so skipping this test"
|
|
(exit 77); exit 77
|
|
}
|
|
|
|
if test "$VERBOSE" = yes; then
|
|
set -x
|
|
mv --version
|
|
getfacl --version
|
|
setfacl --version
|
|
fi
|
|
|
|
. $srcdir/../lang-default
|
|
. $srcdir/../test-lib.sh
|
|
cleanup_() { rm -rf "$other_partition_tmpdir"; }
|
|
. "$abs_top_srcdir/tests/other-fs-tmpdir"
|
|
|
|
touch file || framework_failure
|
|
t1=$other_partition_tmpdir/t1
|
|
touch $t1 || framework_failure
|
|
|
|
skip=no
|
|
# Ensure that setfacl and getfacl work on this file system.
|
|
setfacl -m user:bin:rw file 2> /dev/null || skip=.
|
|
# And on the destination file system.
|
|
setfacl -m user:bin:rw $t1 || skip=$other_partition_tmpdir
|
|
acl1=`getfacl file` || skip=yes
|
|
|
|
test $skip != no &&
|
|
{
|
|
echo "$0: '$skip' is not on a suitable file system for this test" 1>&2
|
|
echo "$0: skipping this test" 1>&2
|
|
(exit 77); exit 77
|
|
}
|
|
|
|
# move the access acl of a file
|
|
mv file $other_partition_tmpdir || fail=1
|
|
acl2=`cd $other_partition_tmpdir && getfacl file` || framework_failure
|
|
test "$acl1" = "$acl2" || fail=1
|
|
|
|
# move the access acl of a directory
|
|
mkdir dir || framework_failure
|
|
setfacl -m user:bin:rw dir || framework_failure
|
|
acl1=`getfacl dir` || framework_failure
|
|
mv dir $other_partition_tmpdir || fail=1
|
|
acl2=`cd $other_partition_tmpdir && getfacl dir` || framework_failure
|
|
test "$acl1" = "$acl2" || fail=1
|
|
|
|
# move the default acl of a directory
|
|
mkdir dir2 || framework_failure
|
|
setfacl -d -m user:bin:rw dir2 || framework_failure
|
|
acl1=`getfacl dir2` || framework_failure
|
|
mv dir2 $other_partition_tmpdir || fail=1
|
|
acl2=`cd $other_partition_tmpdir && getfacl dir2` || framework_failure
|
|
test "$acl1" = "$acl2" || fail=1
|
|
|
|
exit $fail
|