diff options
author | Pádraig Brady <P@draigBrady.com> | 2011-02-13 18:56:10 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2011-02-15 00:02:29 +0000 |
commit | 0f56019db8d5a58e87adb61c7aab411113daf3c0 (patch) | |
tree | a31c2ed9bc790c0f641be63c8f77c1de39e9ceb7 /tests | |
parent | 275c831a3c4fd53638d4a1109cd266c359abc3c1 (diff) | |
download | coreutils-0f56019db8d5a58e87adb61c7aab411113daf3c0.tar.xz |
tests: support more file systems in the cp fiemap tests
* tests/cp/sparse-fiemap: Check for fiemap support against a file
rather than a directory to enable tests on BTRFS for example.
Explicity disable the test on ext3 or file systems where we
can't determine the type.
* tests/cp/fiemap-perf: Likewise. Also disable the test on older
BTRFS (like in Fedora 14), where extents are returned for holes.
* tests/init.cfg: Comment that BTRFS only supports fiemap
for regular files.
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/cp/fiemap-perf | 18 | ||||
-rwxr-xr-x | tests/cp/sparse-fiemap | 9 | ||||
-rw-r--r-- | tests/init.cfg | 2 |
3 files changed, 20 insertions, 9 deletions
diff --git a/tests/cp/fiemap-perf b/tests/cp/fiemap-perf index dbb2a817a..c88e8eca8 100755 --- a/tests/cp/fiemap-perf +++ b/tests/cp/fiemap-perf @@ -20,14 +20,24 @@ print_ver_ cp # Require a fiemap-enabled FS. -# Note we don't check a file here as that could enable -# the test on ext3 where emulated extent scanning can be slow. -fiemap_capable_ . \ - || skip_ "this file system lacks FIEMAP support" +touch fiemap_chk +fiemap_capable_ fiemap_chk || + skip_ "this file system lacks FIEMAP support" + +# Exclude ext3 (or unknown fs types) +# as the emulated extent scanning is slow +df -t ext3 . >/dev/null && + skip_ "ext3 has known slow FIEMAP scanning" # Create a large-but-sparse file. timeout 10 truncate -s1T f || framework_failure_ +# Disable this test on old BTRFS (e.g. Fedora 14) +# which reports (unwritten) extents for holes. +filefrag f || skip_test_ 'the `filefrag` utility is missing' +filefrag f | grep -F ': 0 extents found' > /dev/null || + skip_test_ 'this file system reports extents for holes' + # Nothing can read (much less write) that many bytes in so little time. timeout 10 cp f f2 || fail=1 diff --git a/tests/cp/sparse-fiemap b/tests/cp/sparse-fiemap index fc27869e8..4eced1d69 100755 --- a/tests/cp/sparse-fiemap +++ b/tests/cp/sparse-fiemap @@ -19,10 +19,11 @@ . "${srcdir=.}/init.sh"; path_prepend_ ../src print_ver_ cp -# Note we don't check a file here as that could enable -# the test on ext3 where this test is seen to fail. -if fiemap_capable_ . ; then - : # Current dir is on a partition with working extents. Good! +# The test was seen to fail on ext3 so exclude that type +# (or any file system where the type can't be determined) +touch fiemap_chk +if fiemap_capable_ fiemap_chk && ! df -t ext3 . >/dev/null; then + : # Current partition has working extents. Good! else # It's not; we need to create one, hence we need root access. require_root_ diff --git a/tests/init.cfg b/tests/init.cfg index eb3feaad0..f74d50cc0 100644 --- a/tests/init.cfg +++ b/tests/init.cfg @@ -296,7 +296,7 @@ require_proc_pid_status_() } # Return nonzero if the specified path is on a file system for -# which FIEMAP support exists. Note some file systems (like ext3) +# which FIEMAP support exists. Note some file systems (like ext3 and btrfs) # only support FIEMAP for files, not directories. fiemap_capable_() { |