summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/cp/existing-perm-race4
-rwxr-xr-xtests/cp/file-perm-race3
-rwxr-xr-xtests/cp/parent-perm2
-rwxr-xr-xtests/cp/parent-perm-race3
-rwxr-xr-xtests/cp/preserve-24
-rwxr-xr-xtests/dd/skip-seek-past-dev6
-rwxr-xr-xtests/du/basic2
-rwxr-xr-xtests/du/slink17
-rw-r--r--tests/init.cfg12
-rwxr-xr-xtests/install/basic-12
-rwxr-xr-xtests/misc/join2
-rwxr-xr-xtests/mkdir/p-32
-rwxr-xr-xtests/mv/part-symlink4
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