diff mbox series

[v2,1/8] common/rc: introduce minimal fs size check

Message ID 20210811151232.3713733-2-naohiro.aota@wdc.com (mailing list archive)
State New, archived
Headers show
Series fstests: add checks for testing zoned btrfs | expand

Commit Message

Naohiro Aota Aug. 11, 2021, 3:12 p.m. UTC
_scratch_mkfs_sized() create a file system with specified size
limit. It can, however, too small for certain kind of devices. For
example, zoned btrfs requires at least 5 zones to make a file system.

This commit introduces MIN_FSSIZE, which specify the minimum size of the
possible file system. We can set this variable e.g. $ZONE_SIZE *
$MIN_ZONE_COUNT.

Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
---
 README    |  4 ++++
 common/rc | 12 ++++++++++++
 2 files changed, 16 insertions(+)
diff mbox series

Patch

diff --git a/README b/README
index 18f7a6bc3ff0..b9877b7d8b1b 100644
--- a/README
+++ b/README
@@ -117,6 +117,10 @@  Preparing system for tests:
                name of a file to compress; and it must accept '-d -f -k' and
                the name of a file to decompress.  In other words, it must
                emulate gzip.
+	     - Set MIN_FSSIZE to specify the minimal size (bytes) of a
+               filesystem we can create. Setting this parameter will
+               skip the tests creating a filesystem less than
+               MIN_FSSIZE.
 
         - or add a case to the switch in common/config assigning
           these variables based on the hostname of your test
diff --git a/common/rc b/common/rc
index e04d9365d902..4cb062e2fd3f 100644
--- a/common/rc
+++ b/common/rc
@@ -956,6 +956,16 @@  _available_memory_bytes()
 	fi
 }
 
+_check_minimal_fs_size()
+{
+	local fssize=$1
+
+	if [ -n "$MIN_FSSIZE" ]; then
+		[ $MIN_FSSIZE -gt "$fssize" ] &&
+			_notrun "specified filesystem size is too small"
+	fi
+}
+
 # Create fs of certain size on scratch device
 # _scratch_mkfs_sized <size in bytes> [optional blocksize]
 _scratch_mkfs_sized()
@@ -989,6 +999,8 @@  _scratch_mkfs_sized()
 
 	local blocks=`expr $fssize / $blocksize`
 
+	_check_minimal_fs_size $fssize
+
 	if [ -b "$SCRATCH_DEV" ]; then
 		local devsize=`blockdev --getsize64 $SCRATCH_DEV`
 		[ "$fssize" -gt "$devsize" ] && _notrun "Scratch device too small"