Skip to contentSkip to conversation

xfstests: helper to detect fs free space

PATCH In review Eric Sandeen 2 participants 2 messages Jan 29, 2010 – Jan 30, 2010

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 xfstests: helper to detect fs free space

Make a common helper to skip a test if there's not enough free space on the target fs.

---

180 +2 -4
index 6ba32fe..c303169 100755
@@ -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()
 {
217 +2 -0
index 6032578..19540ad 100755
@@ -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
common.rc +15 -1
index 237f3aa..537f575 100644
@@ -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
 #

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs