From 73fee68110206cfcedc1ed45fdee8e323745b914 Mon Sep 17 00:00:00 2001 From: Eric Sandeen Date: Tue, 2 Feb 2010 17:23:58 -0600 Subject: [PATCH] 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. Signed-off-by: Eric Sandeen Reviewed-by: Christoph Hellwig --- 180 | 6 ++---- 217 | 2 ++ common.rc | 16 +++++++++++++++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/180 b/180 index 6ba32fe40..c3031696f 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 603257891..19540ad49 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 642487102..168551431 100644 --- a/common.rc +++ b/common.rc @@ -726,7 +726,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" && \ @@ -735,6 +736,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 # -- 2.51.0