xfs
[Top] [All Lists]

[PATCH] xfstests: helper to detect fs free space

To: xfs-oss <xfs@xxxxxxxxxxx>
Subject: [PATCH] xfstests: helper to detect fs free space
From: Eric Sandeen <sandeen@xxxxxxxxxxx>
Date: Thu, 28 Jan 2010 22:42:48 -0600
User-agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
Make a common helper to skip a test if there's not enough
free space on the target fs.

Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx>
---

diff --git a/180 b/180
index 6ba32fe..c303169 100755
--- a/180
+++ b/180
@@ -51,10 +51,8 @@ _require_scratch
 _scratch_mkfs_xfs >/dev/null 2>&1
 _scratch_mount
 
-# Do we have enough space on disk?
-FREE_BLOCKS=`df -klP $SCRATCH_MNT | grep -v Filesystem | awk '{print $4}'`
-[ $FREE_BLOCKS -lt 10485760 ] && _notrun "This test requires at least 10GB of \
-                                          $SCRATCH_DEV to run"
+# Do we have enough space on disk?  10G
+_require_fs_space $SCRATCH_MNT 10485760
 
 _check_files()
 {
diff --git a/217 b/217
index 6032578..19540ad 100755
--- a/217
+++ b/217
@@ -50,6 +50,8 @@ _setup_testdir
 _require_scratch
 _scratch_mkfs_xfs >/dev/null 2>&1
 _scratch_mount
+# 16T mkfs requires a bit over 2G free
+_require_fs_space $SCRATCH_MNT 2202000
 
 _require_loop
 LOOP_DEV=$SCRATCH_MNT/test_fs
diff --git a/common.rc b/common.rc
index 237f3aa..537f575 100644
--- a/common.rc
+++ b/common.rc
@@ -755,7 +755,8 @@ _require_user()
 # check that xfs_io, glibc, kernel, and filesystem all (!) support
 # fallocate
 #
-_require_xfs_io_falloc() {
+_require_xfs_io_falloc()
+{
        testio=`$XFS_IO_PROG -F -f -c "falloc 0 1m" $TEST_DIR/$tmp.io 2>&1`
        rm -f $TEST_DIR/$tmp.io 2>&1 > /dev/null
        echo $testio | grep -q "not found" && \
@@ -764,6 +765,19 @@ _require_xfs_io_falloc() {
                _notrun "xfs_io fallocate command failed (old kernel/wrong fs?)"
 }
 
+# Check that a fs has enough free space (in 1024b blocks)
+#
+_require_fs_space()
+{
+       MNT=$1
+       BLOCKS=$2       # in units of 1024
+       let GB=$BLOCKS/1024/1024
+
+       FREE_BLOCKS=`df -klP $MNT | grep -v Filesystem | awk '{print $4}'`
+       [ $FREE_BLOCKS -lt $BLOCKS ] && \
+               _notrun "This test requires at least ${GB}GB free on $MNT to 
run"
+}
+
 # check that a FS on a device is mounted
 # if so, return mount point
 #

<Prev in Thread] Current Thread [Next in Thread>