diff options
-rwxr-xr-x | tests/cp/existing-perm-race | 4 | ||||
-rwxr-xr-x | tests/cp/file-perm-race | 3 | ||||
-rwxr-xr-x | tests/cp/parent-perm | 2 | ||||
-rwxr-xr-x | tests/cp/parent-perm-race | 3 | ||||
-rwxr-xr-x | tests/cp/preserve-2 | 4 | ||||
-rwxr-xr-x | tests/dd/skip-seek-past-dev | 6 | ||||
-rwxr-xr-x | tests/du/basic | 2 | ||||
-rwxr-xr-x | tests/du/slink | 17 | ||||
-rw-r--r-- | tests/init.cfg | 12 | ||||
-rwxr-xr-x | tests/install/basic-1 | 2 | ||||
-rwxr-xr-x | tests/misc/join | 2 | ||||
-rwxr-xr-x | tests/mkdir/p-3 | 2 | ||||
-rwxr-xr-x | tests/mv/part-symlink | 4 |
13 files changed, 41 insertions, 22 deletions
diff --git a/tests/cp/existing-perm-race b/tests/cp/existing-perm-race index b6168f62e..ffd29f0f4 100755 --- a/tests/cp/existing-perm-race +++ b/tests/cp/existing-perm-race @@ -22,8 +22,12 @@ if test "$VERBOSE" = yes; then fi . $srcdir/test-lib.sh + require_membership_in_two_groups_ +# cp -p gives ENOTSUP on NFS on Linux 2.6.9 at least +require_local_dir_ + set _ $groups; shift g1=$1 g2=$2 diff --git a/tests/cp/file-perm-race b/tests/cp/file-perm-race index ca47169c2..d80761259 100755 --- a/tests/cp/file-perm-race +++ b/tests/cp/file-perm-race @@ -23,6 +23,9 @@ fi . $srcdir/test-lib.sh +# cp -p gives ENOTSUP on NFS on Linux 2.6.9 at least +require_local_dir_ + umask 022 mkfifo fifo || skip_test_ "fifos not supported" diff --git a/tests/cp/parent-perm b/tests/cp/parent-perm index 4912694b9..4a7d98947 100755 --- a/tests/cp/parent-perm +++ b/tests/cp/parent-perm @@ -24,6 +24,8 @@ fi . $srcdir/test-lib.sh working_umask_or_skip_ +# cp -p gives ENOTSUP on NFS on Linux 2.6.9 at least +require_local_dir_ mkdir -p a/b/c a/b/d e || framework_failure touch a/b/c/foo a/b/d/foo || framework_failure diff --git a/tests/cp/parent-perm-race b/tests/cp/parent-perm-race index 546123836..e595d9ea8 100755 --- a/tests/cp/parent-perm-race +++ b/tests/cp/parent-perm-race @@ -23,6 +23,9 @@ fi . $srcdir/test-lib.sh +# cp -p gives ENOTSUP on NFS on Linux 2.6.9 at least +require_local_dir_ + umask 002 mkdir mode ownership d || framework_failure chmod g+s d 2>/dev/null # The cp test is valid either way. diff --git a/tests/cp/preserve-2 b/tests/cp/preserve-2 index f65b4200f..9863952c2 100755 --- a/tests/cp/preserve-2 +++ b/tests/cp/preserve-2 @@ -23,8 +23,10 @@ fi . $srcdir/test-lib.sh -touch f || framework_failure +# cp -p gives ENOTSUP on NFS on Linux 2.6.9 at least +require_local_dir_ +touch f || framework_failure cp --preserve=mode,links f g || fail=1 diff --git a/tests/dd/skip-seek-past-dev b/tests/dd/skip-seek-past-dev index c5b7aab30..9e910e8ee 100755 --- a/tests/dd/skip-seek-past-dev +++ b/tests/dd/skip-seek-past-dev @@ -23,9 +23,10 @@ fi . $srcdir/test-lib.sh -# need write access to device +# need write access to local device # (even though we don't actually write anything) require_root_ +require_local_dir_ get_device_size() { BLOCKDEV=blockdev @@ -36,8 +37,7 @@ get_device_size() { # Get path to device the current dir is on. # Note df can only get fs size, not device size. -device=$(df -P --local . | tail -n1 | cut -d' ' -f1) || - skip_test_ 'this test runs only on local file systems' +device=$(df -P . | tail -n1 | cut -d' ' -f1) || framework_failure dev_size=$(get_device_size "$device") || skip_test_ "failed to determine size of $device" diff --git a/tests/du/basic b/tests/du/basic index 8b728537b..6d3eeb1e7 100755 --- a/tests/du/basic +++ b/tests/du/basic @@ -63,7 +63,7 @@ compare out exp || fail=1 # Perform this test only if "." is on a local file system. # Otherwise, it would fail e.g., on an NFS-mounted Solaris ZFS file system. -if df --local . >/dev/null 2>&1; then +if is_local_dir_ .; then rm -f out exp du --block-size=$B -a d | sort -r -k2,2 > out || fail=1 echo === >> out diff --git a/tests/du/slink b/tests/du/slink index 2bb375714..5c2b125c7 100755 --- a/tests/du/slink +++ b/tests/du/slink @@ -24,14 +24,9 @@ fi . $srcdir/test-lib.sh # Determine if `.' is on a local (would non-NFS be sufficient?) file system. -# On at least some NFS implementations, symlinks never take up space, - -# So if this is a non-local file system, skip the test. -if df --local . >/dev/null 2>&1; then - : # Ok. -else - skip_test_ "\`.' is on a non-local file system" -fi +# At least on OSF/1 4.0d, when using an nfsv3 file system, +# each created symlink can end up having a size of 0. +require_local_dir_ if df --type=xfs . >/dev/null 2>&1; then # At least on Irix-6.5.19, when using an xfs file system, @@ -39,12 +34,6 @@ if df --type=xfs . >/dev/null 2>&1; then skip_test_ "\`.' is on an XFS file system" fi -if df --type=nfsv3 . >/dev/null 2>&1; then - # At least on OSF/1 4.0d, when using an nfsv3 file system, - # each created symlink can end up having a size of 0. - skip_test_ "\`.' is on an NFS file system" -fi - symlink_name_lengths='1 15 16 31 32 59 60 63 64 127 128 255 256 511 512 1024' for len in $symlink_name_lengths; do name=`seq 1 $len|tr -c x y |head -c$len` diff --git a/tests/init.cfg b/tests/init.cfg index 232cb9bae..6c0ffd948 100644 --- a/tests/init.cfg +++ b/tests/init.cfg @@ -56,6 +56,18 @@ require_acl_() || skip_test_ "This test requires a local user named bin." } +is_local_dir_() +{ + test $# = 1 || framework_failure + df --local "$1" >/dev/null 2>&1 +} + +require_local_dir_() +{ + is_local_dir_ . || + skip_test_ "This test must be run on a local file system." +} + # Skip this test if we're not in SELinux "enforcing" mode. require_selinux_enforcing_() { diff --git a/tests/install/basic-1 b/tests/install/basic-1 index 80c72d933..7ea103b28 100755 --- a/tests/install/basic-1 +++ b/tests/install/basic-1 @@ -105,7 +105,7 @@ test -d xx/rel && fail=1 # inaccessible parent. coreutils 5.97 fails this test. # Perform this test only if "." is on a local file system. # Otherwise, it would fail e.g., on an NFS-mounted file system. -if df --local . >/dev/null 2>&1; then +if is_local_dir_ .; then mkdir -p sub1/d || fail=1 (cd sub1/d && chmod a-r . && chmod a-rx .. && ginstall -d "$iwd/xx/zz" rel/a rel/b) || fail=1 diff --git a/tests/misc/join b/tests/misc/join index 0e34ba867..a319b943c 100755 --- a/tests/misc/join +++ b/tests/misc/join @@ -135,7 +135,7 @@ my @tv = ( # From Paul Eggert: fixed in 1.22n (this would fail on Solaris7, # with LC_ALL set to en_US). -# Unfortunately, that Solaris7's en_US local folds case (making +# Unfortunately, that Solaris7's en_US locale folds case (making # the first input file sorted) is not portable, so this test would # fail on e.g. Linux systems, because the input to join isn't sorted. # ['lc-collate', '', ["a 1a\nB 1B\n", "B 2B\n"], "B 1B 2B\n", 0], diff --git a/tests/mkdir/p-3 b/tests/mkdir/p-3 index 6aa422ae4..116c794be 100755 --- a/tests/mkdir/p-3 +++ b/tests/mkdir/p-3 @@ -42,7 +42,7 @@ test -d "$p/b/b" && test -d "$p/z" || fail=1 # whose parent is inaccessible. coreutils 5.97 fails this test. # Perform this test only if "." is on a local file system. # Otherwise, it would fail e.g., on an NFS-mounted file system. -if df --local . >/dev/null 2>&1; then +if is_local_dir_ .; then (cd no-acce3s/d && chmod a-r . && chmod a-rx .. && mkdir -p a/b "$p/b/c" d/e && test -d a/b && test -d d/e) || fail=1 test -d "$p/b/c" || fail=1 diff --git a/tests/mv/part-symlink b/tests/mv/part-symlink index 00c706b0e..3b8e442ef 100755 --- a/tests/mv/part-symlink +++ b/tests/mv/part-symlink @@ -27,6 +27,10 @@ fi cleanup_() { rm -rf "$other_partition_tmpdir"; } . "$abs_srcdir/other-fs-tmpdir" +# On NFS on Linux 2.6.9 at least we get: +# mv: preserving permissions for `rem_sl': Operation not supported +require_local_dir_ + pwd_tmp=`pwd` # Unset CDPATH. Otherwise, output from the `cd dir' command |