All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs
@ 2024-04-11  6:32 David Disseldorp
  2024-04-11  6:32 ` [PATCH 2/2] tests: _fail on _scratch_mkfs_sized failure David Disseldorp
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: David Disseldorp @ 2024-04-11  6:32 UTC (permalink / raw)
  To: fstests; +Cc: David Disseldorp

As of xfsprogs commit 6e0ed3d1 ("mkfs: stop allowing tiny filesystems")
attempts to create XFS filesystems sized under 300M fail, unless
TEST_DIR, TEST_DEV and QA_CHECK_FS environment variables are exported
(or a --unsupported mkfs parameter is provided).

TEST_DIR and QA_CHECK_FS are already exported, while TEST_DEV may only
be locally set if provided via e.g. configs/$HOSTNAME.config. Explicitly
export TEST_DEV to ensure that tests which call _scratch_mkfs_sized()
with an fssize under 300M run normally.

Signed-off-by: David Disseldorp <ddiss@suse.de>
---
 common/config | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/common/config b/common/config
index 2a1434bb..4bd5650f 100644
--- a/common/config
+++ b/common/config
@@ -932,6 +932,9 @@ else
 fi
 
 _canonicalize_devices
+# mkfs.xfs checks for TEST_DEV before permitting < 300M filesystems. TEST_DIR
+# and QA_CHECK_FS are also checked by mkfs.xfs, but already exported elsewhere.
+export TEST_DEV
 
 # make sure this script returns success
 /bin/true
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/2] tests: _fail on _scratch_mkfs_sized failure
  2024-04-11  6:32 [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs David Disseldorp
@ 2024-04-11  6:32 ` David Disseldorp
  2024-04-12 15:48   ` Darrick J. Wong
  2024-04-12 15:44 ` [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs Darrick J. Wong
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: David Disseldorp @ 2024-04-11  6:32 UTC (permalink / raw)
  To: fstests; +Cc: David Disseldorp

If _scratch_mkfs_sized() fails, e.g. due to an FS not supporting the
provided size, tests may subsequently mount and run atop a previously
created (e.g. non-size-bound) filesystem.
This can lead to difficult to debug failures, or for some -ENOSPC
exercising tests, near infinite runtimes. Avoid this by exiting
immediately if _scratch_mkfs_sized() fails.

Signed-off-by: David Disseldorp <ddiss@suse.de>
---
 tests/btrfs/057   | 3 ++-
 tests/btrfs/132   | 3 ++-
 tests/btrfs/170   | 2 +-
 tests/btrfs/177   | 2 +-
 tests/btrfs/204   | 2 +-
 tests/btrfs/217   | 3 ++-
 tests/btrfs/237   | 1 +
 tests/btrfs/250   | 2 +-
 tests/btrfs/253   | 3 ++-
 tests/ext4/004    | 3 ++-
 tests/ext4/036    | 2 +-
 tests/ext4/038    | 3 ++-
 tests/ext4/039    | 3 ++-
 tests/ext4/048    | 3 ++-
 tests/ext4/050    | 3 ++-
 tests/ext4/271    | 3 ++-
 tests/ext4/307    | 3 ++-
 tests/f2fs/001    | 3 ++-
 tests/generic/027 | 3 ++-
 tests/generic/081 | 3 ++-
 tests/generic/085 | 2 +-
 tests/generic/096 | 3 ++-
 tests/generic/102 | 2 +-
 tests/generic/204 | 2 +-
 tests/generic/224 | 3 ++-
 tests/generic/226 | 3 ++-
 tests/generic/250 | 2 +-
 tests/generic/252 | 2 +-
 tests/generic/256 | 3 ++-
 tests/generic/269 | 3 ++-
 tests/generic/270 | 3 ++-
 tests/generic/273 | 3 ++-
 tests/generic/274 | 3 ++-
 tests/generic/275 | 3 ++-
 tests/generic/300 | 2 +-
 tests/generic/312 | 2 +-
 tests/generic/320 | 2 +-
 tests/generic/333 | 3 ++-
 tests/generic/334 | 3 ++-
 tests/generic/361 | 3 ++-
 tests/generic/371 | 3 ++-
 tests/generic/387 | 3 ++-
 tests/generic/399 | 2 +-
 tests/generic/416 | 2 +-
 tests/generic/427 | 3 ++-
 tests/generic/449 | 3 ++-
 tests/generic/459 | 3 ++-
 tests/generic/488 | 3 ++-
 tests/generic/511 | 3 ++-
 tests/generic/515 | 3 ++-
 tests/generic/520 | 2 +-
 tests/generic/536 | 3 ++-
 tests/generic/546 | 3 ++-
 tests/generic/558 | 3 ++-
 tests/generic/559 | 2 +-
 tests/generic/562 | 3 ++-
 tests/generic/619 | 2 +-
 tests/generic/626 | 3 ++-
 tests/generic/679 | 3 ++-
 tests/xfs/075     | 2 +-
 tests/xfs/107     | 3 ++-
 tests/xfs/118     | 3 ++-
 tests/xfs/127     | 3 ++-
 tests/xfs/227     | 3 ++-
 tests/xfs/233     | 3 ++-
 tests/xfs/442     | 3 ++-
 tests/xfs/529     | 3 ++-
 tests/xfs/532     | 3 ++-
 tests/xfs/534     | 3 ++-
 tests/xfs/535     | 3 ++-
 tests/xfs/538     | 3 ++-
 71 files changed, 122 insertions(+), 70 deletions(-)

diff --git a/tests/btrfs/057 b/tests/btrfs/057
index e932a657..ff002c86 100755
--- a/tests/btrfs/057
+++ b/tests/btrfs/057
@@ -17,7 +17,8 @@ _supported_fs btrfs
 _require_scratch
 _require_qgroup_rescan
 
-_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 
 _scratch_mount
 
diff --git a/tests/btrfs/132 b/tests/btrfs/132
index f50420f5..b10b8e2a 100755
--- a/tests/btrfs/132
+++ b/tests/btrfs/132
@@ -35,7 +35,8 @@ _require_scratch
 # to further increase the possibility
 # Since the false ENOSPC happens due to incorrect metadata reservation,
 # larger nodesize and small fs will make it much easier to reproduce
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 
 # Recommended to use MOUNT_OPTIONS="-o compress" to trigger the bug
 _scratch_mount
diff --git a/tests/btrfs/170 b/tests/btrfs/170
index ab105d36..103d097f 100755
--- a/tests/btrfs/170
+++ b/tests/btrfs/170
@@ -25,7 +25,7 @@ _require_xfs_io_command "falloc" "-k"
 # later want to not have more space available for allocating data extents but
 # still have enough metadata space free for creating the snapshot.
 fs_size=$((2 * 1024 * 1024 * 1024)) # 2Gb
-_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1
+_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1 || _fail "mkfs failed"
 
 # Mount without space cache so that we can precisely fill all data space and
 # unallocated space later (space cache v1 uses data block groups).
diff --git a/tests/btrfs/177 b/tests/btrfs/177
index 7b004b83..4de18785 100755
--- a/tests/btrfs/177
+++ b/tests/btrfs/177
@@ -47,7 +47,7 @@ _require_scratch_size $((3 * 1024 * 1024)) #kB
 
 # First, create a 1GB filesystem.
 fssize=$((1024 * 1024 * 1024))
-_scratch_mkfs_sized $fssize >> $seqres.full 2>&1
+_scratch_mkfs_sized $fssize >> $seqres.full 2>&1 || _fail "mkfs failed"
 _scratch_mount
 
 # Create a small file and run balance so we shall deal with the chunk
diff --git a/tests/btrfs/204 b/tests/btrfs/204
index ec751e42..7c036181 100755
--- a/tests/btrfs/204
+++ b/tests/btrfs/204
@@ -20,7 +20,7 @@ _supported_fs btrfs
 _require_scratch
 _require_xfs_io_command "fpunch"
 
-_scratch_mkfs_sized $((256 * 1024 *1024)) >> $seqres.full
+_scratch_mkfs_sized $((256 * 1024 *1024)) >> $seqres.full || _fail "mkfs failed"
 
 # max_inline ensures data is not inlined within metadata extents
 _scratch_mount "-o max_inline=0,nodatacow"
diff --git a/tests/btrfs/217 b/tests/btrfs/217
index 92bbba23..4be154b0 100755
--- a/tests/btrfs/217
+++ b/tests/btrfs/217
@@ -23,7 +23,8 @@ _require_scratch_size $((5 * 1024 * 1024)) #kB
 _require_fstrim
 
 # Create a 5G fs
-_scratch_mkfs_sized $((5 * 1024 * 1024 * 1024)) >> $seqres.full
+_scratch_mkfs_sized $((5 * 1024 * 1024 * 1024)) >> $seqres.full \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 # Fstrim to populate the device->alloc_status CHUNK_TRIMMED bits
diff --git a/tests/btrfs/237 b/tests/btrfs/237
index 367019b6..823bf18a 100755
--- a/tests/btrfs/237
+++ b/tests/btrfs/237
@@ -53,6 +53,7 @@ if [[ $devsize -gt $fssize ]]; then
 else
 	_scratch_mkfs >> $seqres.full 2>&1
 fi
+[[ $? -ne 0 ]] && _fail "mkfs failed"
 _scratch_mount -o commit=1 # 1s commit time to speed up test
 
 uuid=$($BTRFS_UTIL_PROG filesystem show $SCRATCH_DEV |grep uuid: |\
diff --git a/tests/btrfs/250 b/tests/btrfs/250
index e7ddc2f1..ab39bfdb 100755
--- a/tests/btrfs/250
+++ b/tests/btrfs/250
@@ -36,7 +36,7 @@ _require_odirect
 # space available for allocating data extents but still have enough metadata
 # space free for the file writes.
 fs_size=$((1024 * 1024 * 1024)) # 1G
-_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1
+_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1 || _fail "mkfs failed"
 _scratch_mount
 
 # Create our test file with the NOCOW attribute set.
diff --git a/tests/btrfs/253 b/tests/btrfs/253
index 5fbce070..2273e690 100755
--- a/tests/btrfs/253
+++ b/tests/btrfs/253
@@ -89,7 +89,8 @@ rm -f "${seqres}.full"
 
 # Make filesystem. 10GB is needed to test different chunk sizes for
 # metadata and data and the default size for volumes > 5GB is different.
-_scratch_mkfs_sized $((10 * 1024 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((10 * 1024 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full 2>&1
 
 # Check if there is sufficient sysfs support.
diff --git a/tests/ext4/004 b/tests/ext4/004
index 0c2ad897..d23cc547 100755
--- a/tests/ext4/004
+++ b/tests/ext4/004
@@ -54,7 +54,8 @@ _require_command "$RESTORE_PROG" restore
 
 echo "Silence is golden"
 
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 rm -rf $restore_dir $TEST_DIR/restoresymtable
 
diff --git a/tests/ext4/036 b/tests/ext4/036
index 60ab0b90..a4bbe528 100755
--- a/tests/ext4/036
+++ b/tests/ext4/036
@@ -21,7 +21,7 @@ _require_scratch
 
 echo "Silence is golden"
 
-_scratch_mkfs_sized $((16*1024*1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((16*1024*1024)) >>$seqres.full 2>&1 || _fail "mkfs failed"
 _scratch_mount
 
 # create a file and get its inode number, usually it's 12, but to be accurate
diff --git a/tests/ext4/038 b/tests/ext4/038
index 596de65b..a84d070b 100755
--- a/tests/ext4/038
+++ b/tests/ext4/038
@@ -23,7 +23,8 @@ echo "Silence is golden"
 # it is better to test all reserved inode numbers 1-10 here
 for i in {1..10}; do
 	# create smaller filesystems to save test time
-	_scratch_mkfs_sized $((16 * 1024 * 1024)) >>$seqres.full 2>&1
+	_scratch_mkfs_sized $((16 * 1024 * 1024)) >>$seqres.full 2>&1 \
+		|| _fail "mkfs failed"
 	$DEBUGFS_PROG -w -R "ssv last_orphan $i" $SCRATCH_DEV >>$seqres.full 2>&1
 	_scratch_mount
 	_scratch_unmount
diff --git a/tests/ext4/039 b/tests/ext4/039
index 4ca4058a..4945bab2 100755
--- a/tests/ext4/039
+++ b/tests/ext4/039
@@ -61,7 +61,8 @@ _supported_fs ext3 ext4
 _require_scratch
 _exclude_scratch_mount_option dax
 
-_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 if ! _workout; then
diff --git a/tests/ext4/048 b/tests/ext4/048
index c23c0ea3..a499038e 100755
--- a/tests/ext4/048
+++ b/tests/ext4/048
@@ -81,7 +81,8 @@ test_file1="test0001"
 test_file2="test0002"
 test_file3="test0003"
 
-_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 
 # create scratch dir for testing
 # create some files with no name a substr of another name so we can grep later
diff --git a/tests/ext4/050 b/tests/ext4/050
index 6f93b86d..95326771 100755
--- a/tests/ext4/050
+++ b/tests/ext4/050
@@ -24,7 +24,8 @@ _require_test_program "checkpoint_journal"
 
 testdir="${SCRATCH_MNT}/testdir"
 
-_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _require_metadata_journaling $SCRATCH_DEV
 _scratch_mount >> $seqres.full 2>&1
 blocksize=$(_get_block_size $SCRATCH_MNT)
diff --git a/tests/ext4/271 b/tests/ext4/271
index 8d9bd7dc..feceb7f3 100755
--- a/tests/ext4/271
+++ b/tests/ext4/271
@@ -20,7 +20,8 @@ _require_scratch
 _exclude_scratch_mount_option "data" "commit" "journal_checksum" \
 			      "journal_async_commit"
 
-_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 
 # -onoload and EXT4_SYNC_FL on file is important becase result in
 # metadata sync writes inside ext4_handle_dirty_metadata()
diff --git a/tests/ext4/307 b/tests/ext4/307
index 8b1cfc9e..b63e1e91 100755
--- a/tests/ext4/307
+++ b/tests/ext4/307
@@ -41,7 +41,8 @@ _require_scratch
 _require_defrag
 _require_xfs_io_command "falloc"
 
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 _workout
diff --git a/tests/f2fs/001 b/tests/f2fs/001
index 2bf39d8c..4c7d7c7a 100755
--- a/tests/f2fs/001
+++ b/tests/f2fs/001
@@ -29,7 +29,8 @@ testfile=$SCRATCH_MNT/testfile
 dummyfile=$SCRATCH_MNT/dummyfile
 
 # build 4GB filesystem
-_scratch_mkfs_sized $((4 * 1024 * 1024 * 1024)) > /dev/null 2>&1
+_scratch_mkfs_sized $((4 * 1024 * 1024 * 1024)) > /dev/null 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 echo "==== create small file ===="
diff --git a/tests/generic/027 b/tests/generic/027
index 47f1981d..a8689a15 100755
--- a/tests/generic/027
+++ b/tests/generic/027
@@ -35,7 +35,8 @@ _require_scratch
 
 echo "Silence is golden"
 
-_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 echo "Reserve 2M space" >>$seqres.full
diff --git a/tests/generic/081 b/tests/generic/081
index 0996f221..71ef19e0 100755
--- a/tests/generic/081
+++ b/tests/generic/081
@@ -67,7 +67,8 @@ lvsize=$((size * 85 / 100))	 # ~256M
 
 # make sure there's enough disk space for 256M lv, test for 300M here in case
 # lvm uses some space for metadata
-_scratch_mkfs_sized $((size * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((size * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 $LVM_PROG vgcreate -f $vgname $SCRATCH_DEV >>$seqres.full 2>&1
 # We use yes pipe instead of 'lvcreate --yes' because old version of lvm
 # (like 2.02.95 in RHEL6) don't support --yes option
diff --git a/tests/generic/085 b/tests/generic/085
index 786d8e6f..7e501cf8 100755
--- a/tests/generic/085
+++ b/tests/generic/085
@@ -52,7 +52,7 @@ echo "Silence is golden"
 
 size=$((256 * 1024 * 1024))
 size_in_sector=$((size / 512))
-_scratch_mkfs_sized $size >>$seqres.full 2>&1
+_scratch_mkfs_sized $size >>$seqres.full 2>&1 || _fail "mkfs failed"
 
 node=$seq-test
 lvdev=/dev/mapper/$node
diff --git a/tests/generic/096 b/tests/generic/096
index 41b646c0..d76b2f53 100755
--- a/tests/generic/096
+++ b/tests/generic/096
@@ -23,7 +23,8 @@ _require_xfs_io_command "fzero"
 echo "Silence is golden"
 
 # Use smaller scratch fs to shorten the test time
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 testfile=$SCRATCH_MNT/$seq.$$
diff --git a/tests/generic/102 b/tests/generic/102
index 3536ebf7..396cb80c 100755
--- a/tests/generic/102
+++ b/tests/generic/102
@@ -23,7 +23,7 @@ _supported_fs generic
 _require_scratch
 
 dev_size=$((1024 * 1024 * 1024))     # 1GB filesystem
-_scratch_mkfs_sized $dev_size >>$seqres.full 2>&1
+_scratch_mkfs_sized $dev_size >>$seqres.full 2>&1 || _fail "mkfs failed"
 _scratch_mount
 
 for ((i = 0; i < 10; i++)); do
diff --git a/tests/generic/204 b/tests/generic/204
index a33a090f..31b920f2 100755
--- a/tests/generic/204
+++ b/tests/generic/204
@@ -31,7 +31,7 @@ _require_scratch
 [ $FSTYP = "xfs" ] && MKFS_OPTIONS="$MKFS_OPTIONS -l size=16m -i maxpct=50"
 
 SIZE=`expr 115 \* 1024 \* 1024`
-_scratch_mkfs_sized $SIZE 2> /dev/null > $tmp.mkfs.raw
+_scratch_mkfs_sized $SIZE 2> /dev/null > $tmp.mkfs.raw || _fail "mkfs failed"
 cat $tmp.mkfs.raw | _filter_mkfs 2> $tmp.mkfs > /dev/null
 _scratch_mount
 
diff --git a/tests/generic/224 b/tests/generic/224
index 26055ea2..6407aed0 100755
--- a/tests/generic/224
+++ b/tests/generic/224
@@ -30,7 +30,8 @@ _supported_fs generic
 _require_scratch
 
 # make a 1GB filesystem
-_scratch_mkfs_sized `expr 1024 \* 1024 \* 1024` > $seqres.full 2>&1
+_scratch_mkfs_sized `expr 1024 \* 1024 \* 1024` > $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full 2>&1
 
 # set the reserved block pool to almost empty for XFS
diff --git a/tests/generic/226 b/tests/generic/226
index 34434730..5b0d5088 100755
--- a/tests/generic/226
+++ b/tests/generic/226
@@ -19,7 +19,8 @@ _require_odirect
 
 _scratch_unmount 2>/dev/null
 echo "--> mkfs 256m filesystem"
-_scratch_mkfs_sized `expr 256 \* 1024 \* 1024` >> $seqres.full 2>&1
+_scratch_mkfs_sized `expr 256 \* 1024 \* 1024` >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 loops=16
diff --git a/tests/generic/250 b/tests/generic/250
index 97e9522f..b4b98ad2 100755
--- a/tests/generic/250
+++ b/tests/generic/250
@@ -35,7 +35,7 @@ unset SCRATCH_RTDEV
 fssize=$((196 * 1048576))
 echo "Format and mount"
 $XFS_IO_PROG -d -c "pwrite -S 0x69 -b 1048576 0 $fssize" $SCRATCH_DEV >> $seqres.full
-_scratch_mkfs_sized $fssize > $seqres.full 2>&1
+_scratch_mkfs_sized $fssize > $seqres.full 2>&1 || _fail "mkfs failed"
 _dmerror_init
 _dmerror_mount >> $seqres.full 2>&1
 _dmerror_unmount
diff --git a/tests/generic/252 b/tests/generic/252
index 8c5adb53..6108183b 100755
--- a/tests/generic/252
+++ b/tests/generic/252
@@ -36,7 +36,7 @@ unset SCRATCH_RTDEV
 fssize=$((196 * 1048576))
 echo "Format and mount"
 $XFS_IO_PROG -d -c "pwrite -S 0x69 -b 1048576 0 $fssize" $SCRATCH_DEV >> $seqres.full
-_scratch_mkfs_sized $fssize > $seqres.full 2>&1
+_scratch_mkfs_sized $fssize > $seqres.full 2>&1 || _fail "mkfs failed"
 _dmerror_init
 _dmerror_mount >> $seqres.full 2>&1
 _dmerror_unmount
diff --git a/tests/generic/256 b/tests/generic/256
index ea6cc293..aa72a2a4 100755
--- a/tests/generic/256
+++ b/tests/generic/256
@@ -89,7 +89,8 @@ _test_full_fs_punch()
 
 # Make a small file system to fill
 _scratch_unmount &> /dev/null
-_scratch_mkfs_sized $(( 1536 * 1024 * 1024 )) &> /dev/null
+_scratch_mkfs_sized $(( 1536 * 1024 * 1024 )) &> /dev/null \
+	|| _fail "mkfs failed"
 _scratch_mount
 # Test must be able to write files with non-root permissions
 chmod 777 $SCRATCH_MNT
diff --git a/tests/generic/269 b/tests/generic/269
index b7cdecd9..c10bc908 100755
--- a/tests/generic/269
+++ b/tests/generic/269
@@ -42,7 +42,8 @@ _workout()
 _supported_fs generic
 _require_scratch
 
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 if ! _workout; then
diff --git a/tests/generic/270 b/tests/generic/270
index e7329c2f..3c495a5d 100755
--- a/tests/generic/270
+++ b/tests/generic/270
@@ -61,7 +61,8 @@ _require_command "$KILLALL_PROG" killall
 _require_command "$SETCAP_PROG" setcap
 _require_attrs security
 
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount "-o usrquota,grpquota"
 chmod 777 $SCRATCH_MNT
 quotacheck -u -g $SCRATCH_MNT 2>/dev/null
diff --git a/tests/generic/273 b/tests/generic/273
index 54c19996..53e18be7 100755
--- a/tests/generic/273
+++ b/tests/generic/273
@@ -125,7 +125,8 @@ echo "start the workload"
 echo "------------------------------"
 
 _scratch_unmount 2>/dev/null
-_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 _do_workload
diff --git a/tests/generic/274 b/tests/generic/274
index 8c0e420e..ee1f71ea 100755
--- a/tests/generic/274
+++ b/tests/generic/274
@@ -39,7 +39,8 @@ echo "preallocation test"
 echo "------------------------------"
 
 _scratch_unmount 2>/dev/null
-_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 # Create a 4k file and Allocate 4M past EOF on that file
diff --git a/tests/generic/275 b/tests/generic/275
index f3b05409..effaee63 100755
--- a/tests/generic/275
+++ b/tests/generic/275
@@ -34,7 +34,8 @@ echo "write until ENOSPC test"
 echo "------------------------------"
 
 _scratch_unmount 2>/dev/null
-_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 # Certain filesystems such as XFS require sufficient free blocks to handle the
diff --git a/tests/generic/300 b/tests/generic/300
index 5ff141d3..fea951c3 100755
--- a/tests/generic/300
+++ b/tests/generic/300
@@ -110,7 +110,7 @@ EOF
 
 _require_fio $fio_config
 
-_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1
+_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1 || _fail "mkfs failed"
 _scratch_mount
 
 echo ""
diff --git a/tests/generic/312 b/tests/generic/312
index 1926deb8..03ddd7c5 100755
--- a/tests/generic/312
+++ b/tests/generic/312
@@ -23,7 +23,7 @@ _require_scratch
 # 5G in byte
 fssize=$((2**30 * 5))
 
-_scratch_mkfs_sized $fssize >>$seqres.full 2>&1
+_scratch_mkfs_sized $fssize >>$seqres.full 2>&1 || _fail "mkfs failed"
 _scratch_mount >>$seqres.full 2>&1
 
 echo "Silence is golden"
diff --git a/tests/generic/320 b/tests/generic/320
index ea65537f..15178435 100755
--- a/tests/generic/320
+++ b/tests/generic/320
@@ -79,7 +79,7 @@ do_workload()
 
 echo "Silence is golden"
 
-_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1
+_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1 || _fail "mkfs failed"
 _scratch_mount >>$seqres.full 2>&1
 
 do_workload
diff --git a/tests/generic/333 b/tests/generic/333
index bf1967ce..fad4e357 100755
--- a/tests/generic/333
+++ b/tests/generic/333
@@ -30,7 +30,8 @@ _require_cp_reflink
 _require_odirect
 
 echo "Format and mount"
-_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1
+_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full 2>&1
 
 testdir=$SCRATCH_MNT/test-$seq
diff --git a/tests/generic/334 b/tests/generic/334
index b9c14b87..f78641d6 100755
--- a/tests/generic/334
+++ b/tests/generic/334
@@ -29,7 +29,8 @@ _require_scratch_reflink
 _require_cp_reflink
 
 echo "Format and mount"
-_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1
+_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full 2>&1
 
 testdir=$SCRATCH_MNT/test-$seq
diff --git a/tests/generic/361 b/tests/generic/361
index d76d2635..2ba49e9c 100755
--- a/tests/generic/361
+++ b/tests/generic/361
@@ -33,7 +33,8 @@ _require_loop
 _require_sparse_files
 
 # create a small filesystem to hold another filesystem image
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 # create the sparse fs image and mount point
diff --git a/tests/generic/371 b/tests/generic/371
index a2fdaf7b..8861dc40 100755
--- a/tests/generic/371
+++ b/tests/generic/371
@@ -20,7 +20,8 @@ _require_scratch
 _require_xfs_io_command "falloc"
 test "$FSTYP" = "xfs" && _require_xfs_io_command "extsize"
 
-_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 # Disable speculative post-EOF preallocation on XFS, which can grow fast enough
diff --git a/tests/generic/387 b/tests/generic/387
index 25ca86bb..0ee01594 100755
--- a/tests/generic/387
+++ b/tests/generic/387
@@ -19,7 +19,8 @@ _supported_fs generic
 _require_scratch_reflink
 
 #btrfs needs 256mb to create default blockgroup fs
-_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 testfile=$SCRATCH_MNT/testfile
diff --git a/tests/generic/399 b/tests/generic/399
index a5aa7107..dc42d5c8 100755
--- a/tests/generic/399
+++ b/tests/generic/399
@@ -42,7 +42,7 @@ fs_size_in_mb=64
 fs_size=$((fs_size_in_mb * 1024 * 1024))
 dd if=/dev/zero of=$SCRATCH_DEV bs=$((1024 * 1024)) \
 	count=$fs_size_in_mb &>> $seqres.full
-_scratch_mkfs_sized_encrypted $fs_size &>> $seqres.full
+_scratch_mkfs_sized_encrypted $fs_size &>> $seqres.full || _fail "mkfs failed"
 _scratch_mount
 
 keydesc=$(_generate_session_encryption_key)
diff --git a/tests/generic/416 b/tests/generic/416
index 0f6e3bc9..b0ce71c9 100755
--- a/tests/generic/416
+++ b/tests/generic/416
@@ -28,7 +28,7 @@ page_size=$(_get_page_size)
 nr_files=$(($fs_size / $page_size))
 
 # Use small fs to make the fill more faster
-_scratch_mkfs_sized $fs_size >> $seqres.full 2>&1
+_scratch_mkfs_sized $fs_size >> $seqres.full 2>&1 || _fail "mkfs failed"
 
 _scratch_mount
 
diff --git a/tests/generic/427 b/tests/generic/427
index 26385d36..01df59b1 100755
--- a/tests/generic/427
+++ b/tests/generic/427
@@ -27,7 +27,8 @@ _require_aiodio aio-dio-eof-race
 _require_no_compress
 
 # limit the filesystem size, to save the time of filling filesystem
-_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 # try to write more bytes than filesystem size to fill the filesystem,
diff --git a/tests/generic/449 b/tests/generic/449
index 2b77a6a4..916d1985 100755
--- a/tests/generic/449
+++ b/tests/generic/449
@@ -24,7 +24,8 @@ _require_test
 _require_acls
 _require_attrs trusted
 
-_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount || _fail "mount failed"
 
 # This is a test of xattr behavior when we run out of disk space for xattrs,
diff --git a/tests/generic/459 b/tests/generic/459
index c3f0b2b0..57cd0c52 100755
--- a/tests/generic/459
+++ b/tests/generic/459
@@ -76,7 +76,8 @@ is_shutdown_or_ro()
 }
 
 # Ensure we have enough disk space
-_scratch_mkfs_sized $((350 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((350 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 
 # Create a 200MB dm-thin POOL
 $LVM_PROG pvcreate -f $SCRATCH_DEV >>$seqres.full 2>&1
diff --git a/tests/generic/488 b/tests/generic/488
index 7b9dcc18..26f08040 100755
--- a/tests/generic/488
+++ b/tests/generic/488
@@ -16,7 +16,8 @@ _supported_fs generic
 _require_scratch
 _require_test_program "multi_open_unlink"
 
-_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 test_file="$SCRATCH_MNT/$seq"
diff --git a/tests/generic/511 b/tests/generic/511
index 61c21e42..d96d46df 100755
--- a/tests/generic/511
+++ b/tests/generic/511
@@ -19,7 +19,8 @@ _require_scratch
 _require_xfs_io_command "falloc" "-k"
 _require_xfs_io_command "fzero"
 
-_scratch_mkfs_sized $((1024 * 1024 * 256)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((1024 * 1024 * 256)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 $XFS_IO_PROG -fc "pwrite 0 256m" -c fsync $SCRATCH_MNT/file >>$seqres.full 2>&1
diff --git a/tests/generic/515 b/tests/generic/515
index 1d537dec..0b14f9e3 100755
--- a/tests/generic/515
+++ b/tests/generic/515
@@ -24,7 +24,8 @@ _require_xfs_io_command "falloc"
 # Fill disk with a well known pattern so that stale data exposure becomes much
 # more obvious.
 $XFS_IO_PROG -c "pwrite -S 0x58 -b 1m 0 300m" $SCRATCH_DEV >> $seqres.full
-_scratch_mkfs_sized $((300 * 1048576)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((300 * 1048576)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 DONOR1=$SCRATCH_MNT/a
diff --git a/tests/generic/520 b/tests/generic/520
index ad6764c7..9bf2a6eb 100755
--- a/tests/generic/520
+++ b/tests/generic/520
@@ -33,7 +33,7 @@ _require_scratch_nocheck
 _require_dm_target flakey
 
 # initialize scratch device
-_scratch_mkfs_sized $fssize >> $seqres.full 2>&1
+_scratch_mkfs_sized $fssize >> $seqres.full 2>&1 || _fail "mkfs failed"
 _require_metadata_journaling $SCRATCH_DEV
 _init_flakey
 
diff --git a/tests/generic/536 b/tests/generic/536
index 986ea1ee..3ff56914 100755
--- a/tests/generic/536
+++ b/tests/generic/536
@@ -21,7 +21,8 @@ _require_scratch
 _require_scratch_shutdown
 
 # create a small fs and initialize free blocks with a unique pattern
-_scratch_mkfs_sized $((1024 * 1024 * 100)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((1024 * 1024 * 100)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 $XFS_IO_PROG -f -c "pwrite -S 0xab 0 100m" -c fsync $SCRATCH_MNT/spc \
 	>> $seqres.full 2>&1
diff --git a/tests/generic/546 b/tests/generic/546
index 2eb99543..75de5478 100755
--- a/tests/generic/546
+++ b/tests/generic/546
@@ -35,7 +35,8 @@ _require_xfs_io_command "falloc"
 _require_scratch_reflink
 _require_dm_target flakey
 
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _require_metadata_journaling $SCRATCH_DEV
 _init_flakey
 _mount_flakey
diff --git a/tests/generic/558 b/tests/generic/558
index 510b06f2..c6b9e2e0 100755
--- a/tests/generic/558
+++ b/tests/generic/558
@@ -34,7 +34,8 @@ _require_scratch
 
 echo "Silence is golden"
 
-_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 i=0
diff --git a/tests/generic/559 b/tests/generic/559
index 98ab4474..26f07443 100755
--- a/tests/generic/559
+++ b/tests/generic/559
@@ -18,7 +18,7 @@ _supported_fs generic
 _require_scratch_duperemove
 
 fssize=$((2 * 1024 * 1024 * 1024))
-_scratch_mkfs_sized $fssize > $seqres.full 2>&1
+_scratch_mkfs_sized $fssize > $seqres.full 2>&1 || _fail "mkfs failed"
 _scratch_mount >> $seqres.full 2>&1
 
 # fill the fs with a big file has same contents
diff --git a/tests/generic/562 b/tests/generic/562
index 7d98e569..d5a5993b 100755
--- a/tests/generic/562
+++ b/tests/generic/562
@@ -21,7 +21,8 @@ _require_scratch_reflink
 _require_test_program "punch-alternating"
 _require_xfs_io_command "fpunch"
 
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 file_size=$(( 200 * 1024 * 1024 )) # 200Mb
diff --git a/tests/generic/619 b/tests/generic/619
index c4bdfbce..b844d2f8 100755
--- a/tests/generic/619
+++ b/tests/generic/619
@@ -132,7 +132,7 @@ run_testcase()
 
 	for i in $(eval echo "{1..$test_iteration_cnt}"); do
 		# Setup the device
-		_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1
+		_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1 || _fail "mkfs failed"
 		_scratch_mount
 
 		debug "===== Test: $test_name iteration: $i starts ====="
diff --git a/tests/generic/626 b/tests/generic/626
index 7e577798..afb9322a 100755
--- a/tests/generic/626
+++ b/tests/generic/626
@@ -22,7 +22,8 @@ _supported_fs generic
 _require_scratch
 _require_renameat2 whiteout
 
-_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 # Create lots of files, to help to trigger the bug easily
diff --git a/tests/generic/679 b/tests/generic/679
index ddf975a2..f6e95117 100755
--- a/tests/generic/679
+++ b/tests/generic/679
@@ -29,7 +29,8 @@ _supported_fs ^xfs
 rm -f $seqres.full
 
 # Create a 1G filesystem.
-_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 # Create a file with a size of 600M and two holes, each with a size of 1M and
diff --git a/tests/xfs/075 b/tests/xfs/075
index ec056fb3..82307e68 100755
--- a/tests/xfs/075
+++ b/tests/xfs/075
@@ -22,7 +22,7 @@ _require_scratch
 _qmount_option "defaults"
 
 echo "Silence is golden"
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >$seqres.full
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >$seqres.full || _fail "mkfs failed"
 
 # first ro mount with norecovery
 _try_scratch_mount "-o ro,norecovery" >>$seqres.full 2>&1 \
diff --git a/tests/xfs/107 b/tests/xfs/107
index 1ea9c492..c374d15d 100755
--- a/tests/xfs/107
+++ b/tests/xfs/107
@@ -32,7 +32,8 @@ size_mb=256
 # reproduce within the first 500KB's worth of ALLOCSP calls, so running up
 # to 16MB should suffice.
 $XFS_IO_PROG -d -c "pwrite -S 0x58 -b 8m 0 ${size_mb}m" $SCRATCH_DEV > $seqres.full
-MKFS_OPTIONS="-K $MKFS_OPTIONS" _scratch_mkfs_sized $((size_mb * 1048576)) >> $seqres.full
+MKFS_OPTIONS="-K $MKFS_OPTIONS" _scratch_mkfs_sized $((size_mb * 1048576)) \
+	>> $seqres.full || _fail "mkfs failed"
 
 _scratch_mount
 
diff --git a/tests/xfs/118 b/tests/xfs/118
index 6bb81a3a..f6d17706 100755
--- a/tests/xfs/118
+++ b/tests/xfs/118
@@ -28,7 +28,8 @@ _require_command "$XFS_FSR_PROG" "xfs_fsr"
 _require_xfs_io_command "falloc"
 
 # 50M
-_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 
 echo "Silence is golden"
diff --git a/tests/xfs/127 b/tests/xfs/127
index f39b0582..c4237860 100755
--- a/tests/xfs/127
+++ b/tests/xfs/127
@@ -20,7 +20,8 @@ _require_no_large_scratch_dev
 _require_cp_reflink
 
 echo "Format and mount"
-_scratch_mkfs_sized $((512 * 1024 * 1024)) > $seqres.full 2>&1
+_scratch_mkfs_sized $((512 * 1024 * 1024)) > $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full 2>&1
 
 testdir=$SCRATCH_MNT/test-$seq
diff --git a/tests/xfs/227 b/tests/xfs/227
index cd927dc4..0556412c 100755
--- a/tests/xfs/227
+++ b/tests/xfs/227
@@ -122,7 +122,8 @@ create_target_attr_last()
 }
 
 # use a small filesystem so we can control freespace easily
-_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1
+_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount
 fragment_freespace
 
diff --git a/tests/xfs/233 b/tests/xfs/233
index 2b2b8666..dedd1ef8 100755
--- a/tests/xfs/233
+++ b/tests/xfs/233
@@ -18,7 +18,8 @@ _require_xfs_scratch_rmapbt
 _require_no_large_scratch_dev
 
 echo "Format and mount"
-_scratch_mkfs_sized $((2 * 4096 * 4096)) > $seqres.full 2>&1
+_scratch_mkfs_sized $((2 * 4096 * 4096)) > $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full 2>&1
 
 testdir=$SCRATCH_MNT/test-$seq
diff --git a/tests/xfs/442 b/tests/xfs/442
index b04b1c83..d55ccc17 100755
--- a/tests/xfs/442
+++ b/tests/xfs/442
@@ -68,7 +68,8 @@ _qmount_option "usrquota,grpquota,prjquota"
 # operations as delalloc for quota accounting") and ("xfs: call
 # xfs_qm_dqattach before performing reflink operations") though each of those
 # tests now have separate faster-running regression tests.
-_scratch_mkfs_sized $((1600 * 1048576)) > $seqres.full 2>&1
+_scratch_mkfs_sized $((1600 * 1048576)) > $seqres.full 2>&1 \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full 2>&1
 
 nr_cpus=$((LOAD_FACTOR * 4))
diff --git a/tests/xfs/529 b/tests/xfs/529
index cd176877..da4490b7 100755
--- a/tests/xfs/529
+++ b/tests/xfs/529
@@ -29,7 +29,8 @@ _require_xfs_io_error_injection "reduce_max_iextents"
 _require_xfs_io_error_injection "bmap_alloc_minlen_extent"
 
 echo "Format and mount fs"
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full \
+	|| _fail "mkfs failed"
 _scratch_mount -o uquota >> $seqres.full
 
 # bmap_alloc_minlen_extent only applies to the datadev space allocator, so
diff --git a/tests/xfs/532 b/tests/xfs/532
index 74a7ac30..06e41367 100755
--- a/tests/xfs/532
+++ b/tests/xfs/532
@@ -26,7 +26,8 @@ _require_xfs_io_error_injection "reduce_max_iextents"
 _require_xfs_io_error_injection "bmap_alloc_minlen_extent"
 
 echo "Format and mount fs"
-_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
+_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full
 
 # Disable realtime inherit flag (if any) on root directory so that space on data
diff --git a/tests/xfs/534 b/tests/xfs/534
index f17c45b8..bb940e4a 100755
--- a/tests/xfs/534
+++ b/tests/xfs/534
@@ -22,7 +22,8 @@ _require_xfs_io_command "falloc"
 _require_xfs_io_error_injection "reduce_max_iextents"
 
 echo "Format and mount fs"
-_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
+_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full
 
 bsize=$(_get_file_block_size $SCRATCH_MNT)
diff --git a/tests/xfs/535 b/tests/xfs/535
index f76c1725..1c72e3a2 100755
--- a/tests/xfs/535
+++ b/tests/xfs/535
@@ -25,7 +25,8 @@ _require_xfs_io_command "funshare"
 _require_xfs_io_error_injection "reduce_max_iextents"
 
 echo "Format and mount fs"
-_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full
 
 bsize=$(_get_block_size $SCRATCH_MNT)
diff --git a/tests/xfs/538 b/tests/xfs/538
index 0b5772a1..e8ac3918 100755
--- a/tests/xfs/538
+++ b/tests/xfs/538
@@ -23,7 +23,8 @@ _require_test_program "punch-alternating"
 _require_xfs_io_error_injection "bmap_alloc_minlen_extent"
 
 echo "Format and mount fs"
-_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
+_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full \
+	|| _fail "mkfs failed"
 _scratch_mount >> $seqres.full
 
 # Disable realtime inherit flag (if any) on root directory so that space on data
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs
  2024-04-11  6:32 [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs David Disseldorp
  2024-04-11  6:32 ` [PATCH 2/2] tests: _fail on _scratch_mkfs_sized failure David Disseldorp
@ 2024-04-12 15:44 ` Darrick J. Wong
  2024-04-27  5:56 ` Christoph Hellwig
  2024-04-28  5:37 ` Zorro Lang
  3 siblings, 0 replies; 10+ messages in thread
From: Darrick J. Wong @ 2024-04-12 15:44 UTC (permalink / raw)
  To: David Disseldorp; +Cc: fstests

On Thu, Apr 11, 2024 at 04:32:33PM +1000, David Disseldorp wrote:
> As of xfsprogs commit 6e0ed3d1 ("mkfs: stop allowing tiny filesystems")
> attempts to create XFS filesystems sized under 300M fail, unless
> TEST_DIR, TEST_DEV and QA_CHECK_FS environment variables are exported
> (or a --unsupported mkfs parameter is provided).
> 
> TEST_DIR and QA_CHECK_FS are already exported, while TEST_DEV may only
> be locally set if provided via e.g. configs/$HOSTNAME.config. Explicitly
> export TEST_DEV to ensure that tests which call _scratch_mkfs_sized()
> with an fssize under 300M run normally.
> 
> Signed-off-by: David Disseldorp <ddiss@suse.de>
> ---
>  common/config | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/common/config b/common/config
> index 2a1434bb..4bd5650f 100644
> --- a/common/config
> +++ b/common/config
> @@ -932,6 +932,9 @@ else
>  fi
>  
>  _canonicalize_devices
> +# mkfs.xfs checks for TEST_DEV before permitting < 300M filesystems. TEST_DIR
> +# and QA_CHECK_FS are also checked by mkfs.xfs, but already exported elsewhere.
> +export TEST_DEV

I wonder if we only ought to do this for $FSTYP = xfs, but I don't have
a problem with this so

Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

>  
>  # make sure this script returns success
>  /bin/true
> -- 
> 2.35.3
> 
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] tests: _fail on _scratch_mkfs_sized failure
  2024-04-11  6:32 ` [PATCH 2/2] tests: _fail on _scratch_mkfs_sized failure David Disseldorp
@ 2024-04-12 15:48   ` Darrick J. Wong
  2024-04-12 19:28     ` Zorro Lang
  0 siblings, 1 reply; 10+ messages in thread
From: Darrick J. Wong @ 2024-04-12 15:48 UTC (permalink / raw)
  To: David Disseldorp; +Cc: fstests

On Thu, Apr 11, 2024 at 04:32:34PM +1000, David Disseldorp wrote:
> If _scratch_mkfs_sized() fails, e.g. due to an FS not supporting the
> provided size, tests may subsequently mount and run atop a previously
> created (e.g. non-size-bound) filesystem.
> This can lead to difficult to debug failures, or for some -ENOSPC
> exercising tests, near infinite runtimes. Avoid this by exiting
> immediately if _scratch_mkfs_sized() fails.

I wonder, how many tests should keep going if _scratch_mkfs_sized isn't
successful?  Would it be simpler to make a _try_scratch_mkfs_sized for
those callers, and make the main _scratch_mkfs_sized simply do

_scratch_mkfs_sized()
{
	_try_scratch_mkfs_sized $* || _fail "_scratch_mkfs_sized failed"
}

?

--D

> Signed-off-by: David Disseldorp <ddiss@suse.de>
> ---
>  tests/btrfs/057   | 3 ++-
>  tests/btrfs/132   | 3 ++-
>  tests/btrfs/170   | 2 +-
>  tests/btrfs/177   | 2 +-
>  tests/btrfs/204   | 2 +-
>  tests/btrfs/217   | 3 ++-
>  tests/btrfs/237   | 1 +
>  tests/btrfs/250   | 2 +-
>  tests/btrfs/253   | 3 ++-
>  tests/ext4/004    | 3 ++-
>  tests/ext4/036    | 2 +-
>  tests/ext4/038    | 3 ++-
>  tests/ext4/039    | 3 ++-
>  tests/ext4/048    | 3 ++-
>  tests/ext4/050    | 3 ++-
>  tests/ext4/271    | 3 ++-
>  tests/ext4/307    | 3 ++-
>  tests/f2fs/001    | 3 ++-
>  tests/generic/027 | 3 ++-
>  tests/generic/081 | 3 ++-
>  tests/generic/085 | 2 +-
>  tests/generic/096 | 3 ++-
>  tests/generic/102 | 2 +-
>  tests/generic/204 | 2 +-
>  tests/generic/224 | 3 ++-
>  tests/generic/226 | 3 ++-
>  tests/generic/250 | 2 +-
>  tests/generic/252 | 2 +-
>  tests/generic/256 | 3 ++-
>  tests/generic/269 | 3 ++-
>  tests/generic/270 | 3 ++-
>  tests/generic/273 | 3 ++-
>  tests/generic/274 | 3 ++-
>  tests/generic/275 | 3 ++-
>  tests/generic/300 | 2 +-
>  tests/generic/312 | 2 +-
>  tests/generic/320 | 2 +-
>  tests/generic/333 | 3 ++-
>  tests/generic/334 | 3 ++-
>  tests/generic/361 | 3 ++-
>  tests/generic/371 | 3 ++-
>  tests/generic/387 | 3 ++-
>  tests/generic/399 | 2 +-
>  tests/generic/416 | 2 +-
>  tests/generic/427 | 3 ++-
>  tests/generic/449 | 3 ++-
>  tests/generic/459 | 3 ++-
>  tests/generic/488 | 3 ++-
>  tests/generic/511 | 3 ++-
>  tests/generic/515 | 3 ++-
>  tests/generic/520 | 2 +-
>  tests/generic/536 | 3 ++-
>  tests/generic/546 | 3 ++-
>  tests/generic/558 | 3 ++-
>  tests/generic/559 | 2 +-
>  tests/generic/562 | 3 ++-
>  tests/generic/619 | 2 +-
>  tests/generic/626 | 3 ++-
>  tests/generic/679 | 3 ++-
>  tests/xfs/075     | 2 +-
>  tests/xfs/107     | 3 ++-
>  tests/xfs/118     | 3 ++-
>  tests/xfs/127     | 3 ++-
>  tests/xfs/227     | 3 ++-
>  tests/xfs/233     | 3 ++-
>  tests/xfs/442     | 3 ++-
>  tests/xfs/529     | 3 ++-
>  tests/xfs/532     | 3 ++-
>  tests/xfs/534     | 3 ++-
>  tests/xfs/535     | 3 ++-
>  tests/xfs/538     | 3 ++-
>  71 files changed, 122 insertions(+), 70 deletions(-)
> 
> diff --git a/tests/btrfs/057 b/tests/btrfs/057
> index e932a657..ff002c86 100755
> --- a/tests/btrfs/057
> +++ b/tests/btrfs/057
> @@ -17,7 +17,8 @@ _supported_fs btrfs
>  _require_scratch
>  _require_qgroup_rescan
>  
> -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  
>  _scratch_mount
>  
> diff --git a/tests/btrfs/132 b/tests/btrfs/132
> index f50420f5..b10b8e2a 100755
> --- a/tests/btrfs/132
> +++ b/tests/btrfs/132
> @@ -35,7 +35,8 @@ _require_scratch
>  # to further increase the possibility
>  # Since the false ENOSPC happens due to incorrect metadata reservation,
>  # larger nodesize and small fs will make it much easier to reproduce
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  
>  # Recommended to use MOUNT_OPTIONS="-o compress" to trigger the bug
>  _scratch_mount
> diff --git a/tests/btrfs/170 b/tests/btrfs/170
> index ab105d36..103d097f 100755
> --- a/tests/btrfs/170
> +++ b/tests/btrfs/170
> @@ -25,7 +25,7 @@ _require_xfs_io_command "falloc" "-k"
>  # later want to not have more space available for allocating data extents but
>  # still have enough metadata space free for creating the snapshot.
>  fs_size=$((2 * 1024 * 1024 * 1024)) # 2Gb
> -_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1
> +_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1 || _fail "mkfs failed"
>  
>  # Mount without space cache so that we can precisely fill all data space and
>  # unallocated space later (space cache v1 uses data block groups).
> diff --git a/tests/btrfs/177 b/tests/btrfs/177
> index 7b004b83..4de18785 100755
> --- a/tests/btrfs/177
> +++ b/tests/btrfs/177
> @@ -47,7 +47,7 @@ _require_scratch_size $((3 * 1024 * 1024)) #kB
>  
>  # First, create a 1GB filesystem.
>  fssize=$((1024 * 1024 * 1024))
> -_scratch_mkfs_sized $fssize >> $seqres.full 2>&1
> +_scratch_mkfs_sized $fssize >> $seqres.full 2>&1 || _fail "mkfs failed"
>  _scratch_mount
>  
>  # Create a small file and run balance so we shall deal with the chunk
> diff --git a/tests/btrfs/204 b/tests/btrfs/204
> index ec751e42..7c036181 100755
> --- a/tests/btrfs/204
> +++ b/tests/btrfs/204
> @@ -20,7 +20,7 @@ _supported_fs btrfs
>  _require_scratch
>  _require_xfs_io_command "fpunch"
>  
> -_scratch_mkfs_sized $((256 * 1024 *1024)) >> $seqres.full
> +_scratch_mkfs_sized $((256 * 1024 *1024)) >> $seqres.full || _fail "mkfs failed"
>  
>  # max_inline ensures data is not inlined within metadata extents
>  _scratch_mount "-o max_inline=0,nodatacow"
> diff --git a/tests/btrfs/217 b/tests/btrfs/217
> index 92bbba23..4be154b0 100755
> --- a/tests/btrfs/217
> +++ b/tests/btrfs/217
> @@ -23,7 +23,8 @@ _require_scratch_size $((5 * 1024 * 1024)) #kB
>  _require_fstrim
>  
>  # Create a 5G fs
> -_scratch_mkfs_sized $((5 * 1024 * 1024 * 1024)) >> $seqres.full
> +_scratch_mkfs_sized $((5 * 1024 * 1024 * 1024)) >> $seqres.full \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  # Fstrim to populate the device->alloc_status CHUNK_TRIMMED bits
> diff --git a/tests/btrfs/237 b/tests/btrfs/237
> index 367019b6..823bf18a 100755
> --- a/tests/btrfs/237
> +++ b/tests/btrfs/237
> @@ -53,6 +53,7 @@ if [[ $devsize -gt $fssize ]]; then
>  else
>  	_scratch_mkfs >> $seqres.full 2>&1
>  fi
> +[[ $? -ne 0 ]] && _fail "mkfs failed"
>  _scratch_mount -o commit=1 # 1s commit time to speed up test
>  
>  uuid=$($BTRFS_UTIL_PROG filesystem show $SCRATCH_DEV |grep uuid: |\
> diff --git a/tests/btrfs/250 b/tests/btrfs/250
> index e7ddc2f1..ab39bfdb 100755
> --- a/tests/btrfs/250
> +++ b/tests/btrfs/250
> @@ -36,7 +36,7 @@ _require_odirect
>  # space available for allocating data extents but still have enough metadata
>  # space free for the file writes.
>  fs_size=$((1024 * 1024 * 1024)) # 1G
> -_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1
> +_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1 || _fail "mkfs failed"
>  _scratch_mount
>  
>  # Create our test file with the NOCOW attribute set.
> diff --git a/tests/btrfs/253 b/tests/btrfs/253
> index 5fbce070..2273e690 100755
> --- a/tests/btrfs/253
> +++ b/tests/btrfs/253
> @@ -89,7 +89,8 @@ rm -f "${seqres}.full"
>  
>  # Make filesystem. 10GB is needed to test different chunk sizes for
>  # metadata and data and the default size for volumes > 5GB is different.
> -_scratch_mkfs_sized $((10 * 1024 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((10 * 1024 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full 2>&1
>  
>  # Check if there is sufficient sysfs support.
> diff --git a/tests/ext4/004 b/tests/ext4/004
> index 0c2ad897..d23cc547 100755
> --- a/tests/ext4/004
> +++ b/tests/ext4/004
> @@ -54,7 +54,8 @@ _require_command "$RESTORE_PROG" restore
>  
>  echo "Silence is golden"
>  
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  rm -rf $restore_dir $TEST_DIR/restoresymtable
>  
> diff --git a/tests/ext4/036 b/tests/ext4/036
> index 60ab0b90..a4bbe528 100755
> --- a/tests/ext4/036
> +++ b/tests/ext4/036
> @@ -21,7 +21,7 @@ _require_scratch
>  
>  echo "Silence is golden"
>  
> -_scratch_mkfs_sized $((16*1024*1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((16*1024*1024)) >>$seqres.full 2>&1 || _fail "mkfs failed"
>  _scratch_mount
>  
>  # create a file and get its inode number, usually it's 12, but to be accurate
> diff --git a/tests/ext4/038 b/tests/ext4/038
> index 596de65b..a84d070b 100755
> --- a/tests/ext4/038
> +++ b/tests/ext4/038
> @@ -23,7 +23,8 @@ echo "Silence is golden"
>  # it is better to test all reserved inode numbers 1-10 here
>  for i in {1..10}; do
>  	# create smaller filesystems to save test time
> -	_scratch_mkfs_sized $((16 * 1024 * 1024)) >>$seqres.full 2>&1
> +	_scratch_mkfs_sized $((16 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +		|| _fail "mkfs failed"
>  	$DEBUGFS_PROG -w -R "ssv last_orphan $i" $SCRATCH_DEV >>$seqres.full 2>&1
>  	_scratch_mount
>  	_scratch_unmount
> diff --git a/tests/ext4/039 b/tests/ext4/039
> index 4ca4058a..4945bab2 100755
> --- a/tests/ext4/039
> +++ b/tests/ext4/039
> @@ -61,7 +61,8 @@ _supported_fs ext3 ext4
>  _require_scratch
>  _exclude_scratch_mount_option dax
>  
> -_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  if ! _workout; then
> diff --git a/tests/ext4/048 b/tests/ext4/048
> index c23c0ea3..a499038e 100755
> --- a/tests/ext4/048
> +++ b/tests/ext4/048
> @@ -81,7 +81,8 @@ test_file1="test0001"
>  test_file2="test0002"
>  test_file3="test0003"
>  
> -_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  
>  # create scratch dir for testing
>  # create some files with no name a substr of another name so we can grep later
> diff --git a/tests/ext4/050 b/tests/ext4/050
> index 6f93b86d..95326771 100755
> --- a/tests/ext4/050
> +++ b/tests/ext4/050
> @@ -24,7 +24,8 @@ _require_test_program "checkpoint_journal"
>  
>  testdir="${SCRATCH_MNT}/testdir"
>  
> -_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _require_metadata_journaling $SCRATCH_DEV
>  _scratch_mount >> $seqres.full 2>&1
>  blocksize=$(_get_block_size $SCRATCH_MNT)
> diff --git a/tests/ext4/271 b/tests/ext4/271
> index 8d9bd7dc..feceb7f3 100755
> --- a/tests/ext4/271
> +++ b/tests/ext4/271
> @@ -20,7 +20,8 @@ _require_scratch
>  _exclude_scratch_mount_option "data" "commit" "journal_checksum" \
>  			      "journal_async_commit"
>  
> -_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  
>  # -onoload and EXT4_SYNC_FL on file is important becase result in
>  # metadata sync writes inside ext4_handle_dirty_metadata()
> diff --git a/tests/ext4/307 b/tests/ext4/307
> index 8b1cfc9e..b63e1e91 100755
> --- a/tests/ext4/307
> +++ b/tests/ext4/307
> @@ -41,7 +41,8 @@ _require_scratch
>  _require_defrag
>  _require_xfs_io_command "falloc"
>  
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  _workout
> diff --git a/tests/f2fs/001 b/tests/f2fs/001
> index 2bf39d8c..4c7d7c7a 100755
> --- a/tests/f2fs/001
> +++ b/tests/f2fs/001
> @@ -29,7 +29,8 @@ testfile=$SCRATCH_MNT/testfile
>  dummyfile=$SCRATCH_MNT/dummyfile
>  
>  # build 4GB filesystem
> -_scratch_mkfs_sized $((4 * 1024 * 1024 * 1024)) > /dev/null 2>&1
> +_scratch_mkfs_sized $((4 * 1024 * 1024 * 1024)) > /dev/null 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  echo "==== create small file ===="
> diff --git a/tests/generic/027 b/tests/generic/027
> index 47f1981d..a8689a15 100755
> --- a/tests/generic/027
> +++ b/tests/generic/027
> @@ -35,7 +35,8 @@ _require_scratch
>  
>  echo "Silence is golden"
>  
> -_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  echo "Reserve 2M space" >>$seqres.full
> diff --git a/tests/generic/081 b/tests/generic/081
> index 0996f221..71ef19e0 100755
> --- a/tests/generic/081
> +++ b/tests/generic/081
> @@ -67,7 +67,8 @@ lvsize=$((size * 85 / 100))	 # ~256M
>  
>  # make sure there's enough disk space for 256M lv, test for 300M here in case
>  # lvm uses some space for metadata
> -_scratch_mkfs_sized $((size * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((size * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  $LVM_PROG vgcreate -f $vgname $SCRATCH_DEV >>$seqres.full 2>&1
>  # We use yes pipe instead of 'lvcreate --yes' because old version of lvm
>  # (like 2.02.95 in RHEL6) don't support --yes option
> diff --git a/tests/generic/085 b/tests/generic/085
> index 786d8e6f..7e501cf8 100755
> --- a/tests/generic/085
> +++ b/tests/generic/085
> @@ -52,7 +52,7 @@ echo "Silence is golden"
>  
>  size=$((256 * 1024 * 1024))
>  size_in_sector=$((size / 512))
> -_scratch_mkfs_sized $size >>$seqres.full 2>&1
> +_scratch_mkfs_sized $size >>$seqres.full 2>&1 || _fail "mkfs failed"
>  
>  node=$seq-test
>  lvdev=/dev/mapper/$node
> diff --git a/tests/generic/096 b/tests/generic/096
> index 41b646c0..d76b2f53 100755
> --- a/tests/generic/096
> +++ b/tests/generic/096
> @@ -23,7 +23,8 @@ _require_xfs_io_command "fzero"
>  echo "Silence is golden"
>  
>  # Use smaller scratch fs to shorten the test time
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  testfile=$SCRATCH_MNT/$seq.$$
> diff --git a/tests/generic/102 b/tests/generic/102
> index 3536ebf7..396cb80c 100755
> --- a/tests/generic/102
> +++ b/tests/generic/102
> @@ -23,7 +23,7 @@ _supported_fs generic
>  _require_scratch
>  
>  dev_size=$((1024 * 1024 * 1024))     # 1GB filesystem
> -_scratch_mkfs_sized $dev_size >>$seqres.full 2>&1
> +_scratch_mkfs_sized $dev_size >>$seqres.full 2>&1 || _fail "mkfs failed"
>  _scratch_mount
>  
>  for ((i = 0; i < 10; i++)); do
> diff --git a/tests/generic/204 b/tests/generic/204
> index a33a090f..31b920f2 100755
> --- a/tests/generic/204
> +++ b/tests/generic/204
> @@ -31,7 +31,7 @@ _require_scratch
>  [ $FSTYP = "xfs" ] && MKFS_OPTIONS="$MKFS_OPTIONS -l size=16m -i maxpct=50"
>  
>  SIZE=`expr 115 \* 1024 \* 1024`
> -_scratch_mkfs_sized $SIZE 2> /dev/null > $tmp.mkfs.raw
> +_scratch_mkfs_sized $SIZE 2> /dev/null > $tmp.mkfs.raw || _fail "mkfs failed"
>  cat $tmp.mkfs.raw | _filter_mkfs 2> $tmp.mkfs > /dev/null
>  _scratch_mount
>  
> diff --git a/tests/generic/224 b/tests/generic/224
> index 26055ea2..6407aed0 100755
> --- a/tests/generic/224
> +++ b/tests/generic/224
> @@ -30,7 +30,8 @@ _supported_fs generic
>  _require_scratch
>  
>  # make a 1GB filesystem
> -_scratch_mkfs_sized `expr 1024 \* 1024 \* 1024` > $seqres.full 2>&1
> +_scratch_mkfs_sized `expr 1024 \* 1024 \* 1024` > $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full 2>&1
>  
>  # set the reserved block pool to almost empty for XFS
> diff --git a/tests/generic/226 b/tests/generic/226
> index 34434730..5b0d5088 100755
> --- a/tests/generic/226
> +++ b/tests/generic/226
> @@ -19,7 +19,8 @@ _require_odirect
>  
>  _scratch_unmount 2>/dev/null
>  echo "--> mkfs 256m filesystem"
> -_scratch_mkfs_sized `expr 256 \* 1024 \* 1024` >> $seqres.full 2>&1
> +_scratch_mkfs_sized `expr 256 \* 1024 \* 1024` >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  loops=16
> diff --git a/tests/generic/250 b/tests/generic/250
> index 97e9522f..b4b98ad2 100755
> --- a/tests/generic/250
> +++ b/tests/generic/250
> @@ -35,7 +35,7 @@ unset SCRATCH_RTDEV
>  fssize=$((196 * 1048576))
>  echo "Format and mount"
>  $XFS_IO_PROG -d -c "pwrite -S 0x69 -b 1048576 0 $fssize" $SCRATCH_DEV >> $seqres.full
> -_scratch_mkfs_sized $fssize > $seqres.full 2>&1
> +_scratch_mkfs_sized $fssize > $seqres.full 2>&1 || _fail "mkfs failed"
>  _dmerror_init
>  _dmerror_mount >> $seqres.full 2>&1
>  _dmerror_unmount
> diff --git a/tests/generic/252 b/tests/generic/252
> index 8c5adb53..6108183b 100755
> --- a/tests/generic/252
> +++ b/tests/generic/252
> @@ -36,7 +36,7 @@ unset SCRATCH_RTDEV
>  fssize=$((196 * 1048576))
>  echo "Format and mount"
>  $XFS_IO_PROG -d -c "pwrite -S 0x69 -b 1048576 0 $fssize" $SCRATCH_DEV >> $seqres.full
> -_scratch_mkfs_sized $fssize > $seqres.full 2>&1
> +_scratch_mkfs_sized $fssize > $seqres.full 2>&1 || _fail "mkfs failed"
>  _dmerror_init
>  _dmerror_mount >> $seqres.full 2>&1
>  _dmerror_unmount
> diff --git a/tests/generic/256 b/tests/generic/256
> index ea6cc293..aa72a2a4 100755
> --- a/tests/generic/256
> +++ b/tests/generic/256
> @@ -89,7 +89,8 @@ _test_full_fs_punch()
>  
>  # Make a small file system to fill
>  _scratch_unmount &> /dev/null
> -_scratch_mkfs_sized $(( 1536 * 1024 * 1024 )) &> /dev/null
> +_scratch_mkfs_sized $(( 1536 * 1024 * 1024 )) &> /dev/null \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  # Test must be able to write files with non-root permissions
>  chmod 777 $SCRATCH_MNT
> diff --git a/tests/generic/269 b/tests/generic/269
> index b7cdecd9..c10bc908 100755
> --- a/tests/generic/269
> +++ b/tests/generic/269
> @@ -42,7 +42,8 @@ _workout()
>  _supported_fs generic
>  _require_scratch
>  
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  if ! _workout; then
> diff --git a/tests/generic/270 b/tests/generic/270
> index e7329c2f..3c495a5d 100755
> --- a/tests/generic/270
> +++ b/tests/generic/270
> @@ -61,7 +61,8 @@ _require_command "$KILLALL_PROG" killall
>  _require_command "$SETCAP_PROG" setcap
>  _require_attrs security
>  
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount "-o usrquota,grpquota"
>  chmod 777 $SCRATCH_MNT
>  quotacheck -u -g $SCRATCH_MNT 2>/dev/null
> diff --git a/tests/generic/273 b/tests/generic/273
> index 54c19996..53e18be7 100755
> --- a/tests/generic/273
> +++ b/tests/generic/273
> @@ -125,7 +125,8 @@ echo "start the workload"
>  echo "------------------------------"
>  
>  _scratch_unmount 2>/dev/null
> -_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  _do_workload
> diff --git a/tests/generic/274 b/tests/generic/274
> index 8c0e420e..ee1f71ea 100755
> --- a/tests/generic/274
> +++ b/tests/generic/274
> @@ -39,7 +39,8 @@ echo "preallocation test"
>  echo "------------------------------"
>  
>  _scratch_unmount 2>/dev/null
> -_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  # Create a 4k file and Allocate 4M past EOF on that file
> diff --git a/tests/generic/275 b/tests/generic/275
> index f3b05409..effaee63 100755
> --- a/tests/generic/275
> +++ b/tests/generic/275
> @@ -34,7 +34,8 @@ echo "write until ENOSPC test"
>  echo "------------------------------"
>  
>  _scratch_unmount 2>/dev/null
> -_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  # Certain filesystems such as XFS require sufficient free blocks to handle the
> diff --git a/tests/generic/300 b/tests/generic/300
> index 5ff141d3..fea951c3 100755
> --- a/tests/generic/300
> +++ b/tests/generic/300
> @@ -110,7 +110,7 @@ EOF
>  
>  _require_fio $fio_config
>  
> -_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1
> +_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1 || _fail "mkfs failed"
>  _scratch_mount
>  
>  echo ""
> diff --git a/tests/generic/312 b/tests/generic/312
> index 1926deb8..03ddd7c5 100755
> --- a/tests/generic/312
> +++ b/tests/generic/312
> @@ -23,7 +23,7 @@ _require_scratch
>  # 5G in byte
>  fssize=$((2**30 * 5))
>  
> -_scratch_mkfs_sized $fssize >>$seqres.full 2>&1
> +_scratch_mkfs_sized $fssize >>$seqres.full 2>&1 || _fail "mkfs failed"
>  _scratch_mount >>$seqres.full 2>&1
>  
>  echo "Silence is golden"
> diff --git a/tests/generic/320 b/tests/generic/320
> index ea65537f..15178435 100755
> --- a/tests/generic/320
> +++ b/tests/generic/320
> @@ -79,7 +79,7 @@ do_workload()
>  
>  echo "Silence is golden"
>  
> -_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1
> +_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1 || _fail "mkfs failed"
>  _scratch_mount >>$seqres.full 2>&1
>  
>  do_workload
> diff --git a/tests/generic/333 b/tests/generic/333
> index bf1967ce..fad4e357 100755
> --- a/tests/generic/333
> +++ b/tests/generic/333
> @@ -30,7 +30,8 @@ _require_cp_reflink
>  _require_odirect
>  
>  echo "Format and mount"
> -_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1
> +_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full 2>&1
>  
>  testdir=$SCRATCH_MNT/test-$seq
> diff --git a/tests/generic/334 b/tests/generic/334
> index b9c14b87..f78641d6 100755
> --- a/tests/generic/334
> +++ b/tests/generic/334
> @@ -29,7 +29,8 @@ _require_scratch_reflink
>  _require_cp_reflink
>  
>  echo "Format and mount"
> -_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1
> +_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full 2>&1
>  
>  testdir=$SCRATCH_MNT/test-$seq
> diff --git a/tests/generic/361 b/tests/generic/361
> index d76d2635..2ba49e9c 100755
> --- a/tests/generic/361
> +++ b/tests/generic/361
> @@ -33,7 +33,8 @@ _require_loop
>  _require_sparse_files
>  
>  # create a small filesystem to hold another filesystem image
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  # create the sparse fs image and mount point
> diff --git a/tests/generic/371 b/tests/generic/371
> index a2fdaf7b..8861dc40 100755
> --- a/tests/generic/371
> +++ b/tests/generic/371
> @@ -20,7 +20,8 @@ _require_scratch
>  _require_xfs_io_command "falloc"
>  test "$FSTYP" = "xfs" && _require_xfs_io_command "extsize"
>  
> -_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  # Disable speculative post-EOF preallocation on XFS, which can grow fast enough
> diff --git a/tests/generic/387 b/tests/generic/387
> index 25ca86bb..0ee01594 100755
> --- a/tests/generic/387
> +++ b/tests/generic/387
> @@ -19,7 +19,8 @@ _supported_fs generic
>  _require_scratch_reflink
>  
>  #btrfs needs 256mb to create default blockgroup fs
> -_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  testfile=$SCRATCH_MNT/testfile
> diff --git a/tests/generic/399 b/tests/generic/399
> index a5aa7107..dc42d5c8 100755
> --- a/tests/generic/399
> +++ b/tests/generic/399
> @@ -42,7 +42,7 @@ fs_size_in_mb=64
>  fs_size=$((fs_size_in_mb * 1024 * 1024))
>  dd if=/dev/zero of=$SCRATCH_DEV bs=$((1024 * 1024)) \
>  	count=$fs_size_in_mb &>> $seqres.full
> -_scratch_mkfs_sized_encrypted $fs_size &>> $seqres.full
> +_scratch_mkfs_sized_encrypted $fs_size &>> $seqres.full || _fail "mkfs failed"
>  _scratch_mount
>  
>  keydesc=$(_generate_session_encryption_key)
> diff --git a/tests/generic/416 b/tests/generic/416
> index 0f6e3bc9..b0ce71c9 100755
> --- a/tests/generic/416
> +++ b/tests/generic/416
> @@ -28,7 +28,7 @@ page_size=$(_get_page_size)
>  nr_files=$(($fs_size / $page_size))
>  
>  # Use small fs to make the fill more faster
> -_scratch_mkfs_sized $fs_size >> $seqres.full 2>&1
> +_scratch_mkfs_sized $fs_size >> $seqres.full 2>&1 || _fail "mkfs failed"
>  
>  _scratch_mount
>  
> diff --git a/tests/generic/427 b/tests/generic/427
> index 26385d36..01df59b1 100755
> --- a/tests/generic/427
> +++ b/tests/generic/427
> @@ -27,7 +27,8 @@ _require_aiodio aio-dio-eof-race
>  _require_no_compress
>  
>  # limit the filesystem size, to save the time of filling filesystem
> -_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  # try to write more bytes than filesystem size to fill the filesystem,
> diff --git a/tests/generic/449 b/tests/generic/449
> index 2b77a6a4..916d1985 100755
> --- a/tests/generic/449
> +++ b/tests/generic/449
> @@ -24,7 +24,8 @@ _require_test
>  _require_acls
>  _require_attrs trusted
>  
> -_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount || _fail "mount failed"
>  
>  # This is a test of xattr behavior when we run out of disk space for xattrs,
> diff --git a/tests/generic/459 b/tests/generic/459
> index c3f0b2b0..57cd0c52 100755
> --- a/tests/generic/459
> +++ b/tests/generic/459
> @@ -76,7 +76,8 @@ is_shutdown_or_ro()
>  }
>  
>  # Ensure we have enough disk space
> -_scratch_mkfs_sized $((350 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((350 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  
>  # Create a 200MB dm-thin POOL
>  $LVM_PROG pvcreate -f $SCRATCH_DEV >>$seqres.full 2>&1
> diff --git a/tests/generic/488 b/tests/generic/488
> index 7b9dcc18..26f08040 100755
> --- a/tests/generic/488
> +++ b/tests/generic/488
> @@ -16,7 +16,8 @@ _supported_fs generic
>  _require_scratch
>  _require_test_program "multi_open_unlink"
>  
> -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  test_file="$SCRATCH_MNT/$seq"
> diff --git a/tests/generic/511 b/tests/generic/511
> index 61c21e42..d96d46df 100755
> --- a/tests/generic/511
> +++ b/tests/generic/511
> @@ -19,7 +19,8 @@ _require_scratch
>  _require_xfs_io_command "falloc" "-k"
>  _require_xfs_io_command "fzero"
>  
> -_scratch_mkfs_sized $((1024 * 1024 * 256)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((1024 * 1024 * 256)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  $XFS_IO_PROG -fc "pwrite 0 256m" -c fsync $SCRATCH_MNT/file >>$seqres.full 2>&1
> diff --git a/tests/generic/515 b/tests/generic/515
> index 1d537dec..0b14f9e3 100755
> --- a/tests/generic/515
> +++ b/tests/generic/515
> @@ -24,7 +24,8 @@ _require_xfs_io_command "falloc"
>  # Fill disk with a well known pattern so that stale data exposure becomes much
>  # more obvious.
>  $XFS_IO_PROG -c "pwrite -S 0x58 -b 1m 0 300m" $SCRATCH_DEV >> $seqres.full
> -_scratch_mkfs_sized $((300 * 1048576)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((300 * 1048576)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  DONOR1=$SCRATCH_MNT/a
> diff --git a/tests/generic/520 b/tests/generic/520
> index ad6764c7..9bf2a6eb 100755
> --- a/tests/generic/520
> +++ b/tests/generic/520
> @@ -33,7 +33,7 @@ _require_scratch_nocheck
>  _require_dm_target flakey
>  
>  # initialize scratch device
> -_scratch_mkfs_sized $fssize >> $seqres.full 2>&1
> +_scratch_mkfs_sized $fssize >> $seqres.full 2>&1 || _fail "mkfs failed"
>  _require_metadata_journaling $SCRATCH_DEV
>  _init_flakey
>  
> diff --git a/tests/generic/536 b/tests/generic/536
> index 986ea1ee..3ff56914 100755
> --- a/tests/generic/536
> +++ b/tests/generic/536
> @@ -21,7 +21,8 @@ _require_scratch
>  _require_scratch_shutdown
>  
>  # create a small fs and initialize free blocks with a unique pattern
> -_scratch_mkfs_sized $((1024 * 1024 * 100)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((1024 * 1024 * 100)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  $XFS_IO_PROG -f -c "pwrite -S 0xab 0 100m" -c fsync $SCRATCH_MNT/spc \
>  	>> $seqres.full 2>&1
> diff --git a/tests/generic/546 b/tests/generic/546
> index 2eb99543..75de5478 100755
> --- a/tests/generic/546
> +++ b/tests/generic/546
> @@ -35,7 +35,8 @@ _require_xfs_io_command "falloc"
>  _require_scratch_reflink
>  _require_dm_target flakey
>  
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _require_metadata_journaling $SCRATCH_DEV
>  _init_flakey
>  _mount_flakey
> diff --git a/tests/generic/558 b/tests/generic/558
> index 510b06f2..c6b9e2e0 100755
> --- a/tests/generic/558
> +++ b/tests/generic/558
> @@ -34,7 +34,8 @@ _require_scratch
>  
>  echo "Silence is golden"
>  
> -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  i=0
> diff --git a/tests/generic/559 b/tests/generic/559
> index 98ab4474..26f07443 100755
> --- a/tests/generic/559
> +++ b/tests/generic/559
> @@ -18,7 +18,7 @@ _supported_fs generic
>  _require_scratch_duperemove
>  
>  fssize=$((2 * 1024 * 1024 * 1024))
> -_scratch_mkfs_sized $fssize > $seqres.full 2>&1
> +_scratch_mkfs_sized $fssize > $seqres.full 2>&1 || _fail "mkfs failed"
>  _scratch_mount >> $seqres.full 2>&1
>  
>  # fill the fs with a big file has same contents
> diff --git a/tests/generic/562 b/tests/generic/562
> index 7d98e569..d5a5993b 100755
> --- a/tests/generic/562
> +++ b/tests/generic/562
> @@ -21,7 +21,8 @@ _require_scratch_reflink
>  _require_test_program "punch-alternating"
>  _require_xfs_io_command "fpunch"
>  
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  file_size=$(( 200 * 1024 * 1024 )) # 200Mb
> diff --git a/tests/generic/619 b/tests/generic/619
> index c4bdfbce..b844d2f8 100755
> --- a/tests/generic/619
> +++ b/tests/generic/619
> @@ -132,7 +132,7 @@ run_testcase()
>  
>  	for i in $(eval echo "{1..$test_iteration_cnt}"); do
>  		# Setup the device
> -		_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1
> +		_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1 || _fail "mkfs failed"
>  		_scratch_mount
>  
>  		debug "===== Test: $test_name iteration: $i starts ====="
> diff --git a/tests/generic/626 b/tests/generic/626
> index 7e577798..afb9322a 100755
> --- a/tests/generic/626
> +++ b/tests/generic/626
> @@ -22,7 +22,8 @@ _supported_fs generic
>  _require_scratch
>  _require_renameat2 whiteout
>  
> -_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  # Create lots of files, to help to trigger the bug easily
> diff --git a/tests/generic/679 b/tests/generic/679
> index ddf975a2..f6e95117 100755
> --- a/tests/generic/679
> +++ b/tests/generic/679
> @@ -29,7 +29,8 @@ _supported_fs ^xfs
>  rm -f $seqres.full
>  
>  # Create a 1G filesystem.
> -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  # Create a file with a size of 600M and two holes, each with a size of 1M and
> diff --git a/tests/xfs/075 b/tests/xfs/075
> index ec056fb3..82307e68 100755
> --- a/tests/xfs/075
> +++ b/tests/xfs/075
> @@ -22,7 +22,7 @@ _require_scratch
>  _qmount_option "defaults"
>  
>  echo "Silence is golden"
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >$seqres.full
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >$seqres.full || _fail "mkfs failed"
>  
>  # first ro mount with norecovery
>  _try_scratch_mount "-o ro,norecovery" >>$seqres.full 2>&1 \
> diff --git a/tests/xfs/107 b/tests/xfs/107
> index 1ea9c492..c374d15d 100755
> --- a/tests/xfs/107
> +++ b/tests/xfs/107
> @@ -32,7 +32,8 @@ size_mb=256
>  # reproduce within the first 500KB's worth of ALLOCSP calls, so running up
>  # to 16MB should suffice.
>  $XFS_IO_PROG -d -c "pwrite -S 0x58 -b 8m 0 ${size_mb}m" $SCRATCH_DEV > $seqres.full
> -MKFS_OPTIONS="-K $MKFS_OPTIONS" _scratch_mkfs_sized $((size_mb * 1048576)) >> $seqres.full
> +MKFS_OPTIONS="-K $MKFS_OPTIONS" _scratch_mkfs_sized $((size_mb * 1048576)) \
> +	>> $seqres.full || _fail "mkfs failed"
>  
>  _scratch_mount
>  
> diff --git a/tests/xfs/118 b/tests/xfs/118
> index 6bb81a3a..f6d17706 100755
> --- a/tests/xfs/118
> +++ b/tests/xfs/118
> @@ -28,7 +28,8 @@ _require_command "$XFS_FSR_PROG" "xfs_fsr"
>  _require_xfs_io_command "falloc"
>  
>  # 50M
> -_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  
>  echo "Silence is golden"
> diff --git a/tests/xfs/127 b/tests/xfs/127
> index f39b0582..c4237860 100755
> --- a/tests/xfs/127
> +++ b/tests/xfs/127
> @@ -20,7 +20,8 @@ _require_no_large_scratch_dev
>  _require_cp_reflink
>  
>  echo "Format and mount"
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) > $seqres.full 2>&1
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) > $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full 2>&1
>  
>  testdir=$SCRATCH_MNT/test-$seq
> diff --git a/tests/xfs/227 b/tests/xfs/227
> index cd927dc4..0556412c 100755
> --- a/tests/xfs/227
> +++ b/tests/xfs/227
> @@ -122,7 +122,8 @@ create_target_attr_last()
>  }
>  
>  # use a small filesystem so we can control freespace easily
> -_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1
> +_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount
>  fragment_freespace
>  
> diff --git a/tests/xfs/233 b/tests/xfs/233
> index 2b2b8666..dedd1ef8 100755
> --- a/tests/xfs/233
> +++ b/tests/xfs/233
> @@ -18,7 +18,8 @@ _require_xfs_scratch_rmapbt
>  _require_no_large_scratch_dev
>  
>  echo "Format and mount"
> -_scratch_mkfs_sized $((2 * 4096 * 4096)) > $seqres.full 2>&1
> +_scratch_mkfs_sized $((2 * 4096 * 4096)) > $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full 2>&1
>  
>  testdir=$SCRATCH_MNT/test-$seq
> diff --git a/tests/xfs/442 b/tests/xfs/442
> index b04b1c83..d55ccc17 100755
> --- a/tests/xfs/442
> +++ b/tests/xfs/442
> @@ -68,7 +68,8 @@ _qmount_option "usrquota,grpquota,prjquota"
>  # operations as delalloc for quota accounting") and ("xfs: call
>  # xfs_qm_dqattach before performing reflink operations") though each of those
>  # tests now have separate faster-running regression tests.
> -_scratch_mkfs_sized $((1600 * 1048576)) > $seqres.full 2>&1
> +_scratch_mkfs_sized $((1600 * 1048576)) > $seqres.full 2>&1 \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full 2>&1
>  
>  nr_cpus=$((LOAD_FACTOR * 4))
> diff --git a/tests/xfs/529 b/tests/xfs/529
> index cd176877..da4490b7 100755
> --- a/tests/xfs/529
> +++ b/tests/xfs/529
> @@ -29,7 +29,8 @@ _require_xfs_io_error_injection "reduce_max_iextents"
>  _require_xfs_io_error_injection "bmap_alloc_minlen_extent"
>  
>  echo "Format and mount fs"
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full \
> +	|| _fail "mkfs failed"
>  _scratch_mount -o uquota >> $seqres.full
>  
>  # bmap_alloc_minlen_extent only applies to the datadev space allocator, so
> diff --git a/tests/xfs/532 b/tests/xfs/532
> index 74a7ac30..06e41367 100755
> --- a/tests/xfs/532
> +++ b/tests/xfs/532
> @@ -26,7 +26,8 @@ _require_xfs_io_error_injection "reduce_max_iextents"
>  _require_xfs_io_error_injection "bmap_alloc_minlen_extent"
>  
>  echo "Format and mount fs"
> -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
> +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full
>  
>  # Disable realtime inherit flag (if any) on root directory so that space on data
> diff --git a/tests/xfs/534 b/tests/xfs/534
> index f17c45b8..bb940e4a 100755
> --- a/tests/xfs/534
> +++ b/tests/xfs/534
> @@ -22,7 +22,8 @@ _require_xfs_io_command "falloc"
>  _require_xfs_io_error_injection "reduce_max_iextents"
>  
>  echo "Format and mount fs"
> -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
> +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full
>  
>  bsize=$(_get_file_block_size $SCRATCH_MNT)
> diff --git a/tests/xfs/535 b/tests/xfs/535
> index f76c1725..1c72e3a2 100755
> --- a/tests/xfs/535
> +++ b/tests/xfs/535
> @@ -25,7 +25,8 @@ _require_xfs_io_command "funshare"
>  _require_xfs_io_error_injection "reduce_max_iextents"
>  
>  echo "Format and mount fs"
> -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full
>  
>  bsize=$(_get_block_size $SCRATCH_MNT)
> diff --git a/tests/xfs/538 b/tests/xfs/538
> index 0b5772a1..e8ac3918 100755
> --- a/tests/xfs/538
> +++ b/tests/xfs/538
> @@ -23,7 +23,8 @@ _require_test_program "punch-alternating"
>  _require_xfs_io_error_injection "bmap_alloc_minlen_extent"
>  
>  echo "Format and mount fs"
> -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
> +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full \
> +	|| _fail "mkfs failed"
>  _scratch_mount >> $seqres.full
>  
>  # Disable realtime inherit flag (if any) on root directory so that space on data
> -- 
> 2.35.3
> 
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] tests: _fail on _scratch_mkfs_sized failure
  2024-04-12 15:48   ` Darrick J. Wong
@ 2024-04-12 19:28     ` Zorro Lang
  2024-04-27  5:58       ` Christoph Hellwig
  0 siblings, 1 reply; 10+ messages in thread
From: Zorro Lang @ 2024-04-12 19:28 UTC (permalink / raw)
  To: Darrick J. Wong; +Cc: David Disseldorp, fstests

On Fri, Apr 12, 2024 at 08:48:56AM -0700, Darrick J. Wong wrote:
> On Thu, Apr 11, 2024 at 04:32:34PM +1000, David Disseldorp wrote:
> > If _scratch_mkfs_sized() fails, e.g. due to an FS not supporting the
> > provided size, tests may subsequently mount and run atop a previously
> > created (e.g. non-size-bound) filesystem.
> > This can lead to difficult to debug failures, or for some -ENOSPC
> > exercising tests, near infinite runtimes. Avoid this by exiting
> > immediately if _scratch_mkfs_sized() fails.
> 
> I wonder, how many tests should keep going if _scratch_mkfs_sized isn't
> successful?  Would it be simpler to make a _try_scratch_mkfs_sized for
> those callers, and make the main _scratch_mkfs_sized simply do
> 
> _scratch_mkfs_sized()
> {
> 	_try_scratch_mkfs_sized $* || _fail "_scratch_mkfs_sized failed"
> }
> 
> ?

I agree with this. Actually I don't know what's kind of historical reasons
make _scratch_mount _fail directly if mount fails, but _scratch_mkfs
doesn't like that?

Thanks,
Zorro

> 
> --D
> 
> > Signed-off-by: David Disseldorp <ddiss@suse.de>
> > ---
> >  tests/btrfs/057   | 3 ++-
> >  tests/btrfs/132   | 3 ++-
> >  tests/btrfs/170   | 2 +-
> >  tests/btrfs/177   | 2 +-
> >  tests/btrfs/204   | 2 +-
> >  tests/btrfs/217   | 3 ++-
> >  tests/btrfs/237   | 1 +
> >  tests/btrfs/250   | 2 +-
> >  tests/btrfs/253   | 3 ++-
> >  tests/ext4/004    | 3 ++-
> >  tests/ext4/036    | 2 +-
> >  tests/ext4/038    | 3 ++-
> >  tests/ext4/039    | 3 ++-
> >  tests/ext4/048    | 3 ++-
> >  tests/ext4/050    | 3 ++-
> >  tests/ext4/271    | 3 ++-
> >  tests/ext4/307    | 3 ++-
> >  tests/f2fs/001    | 3 ++-
> >  tests/generic/027 | 3 ++-
> >  tests/generic/081 | 3 ++-
> >  tests/generic/085 | 2 +-
> >  tests/generic/096 | 3 ++-
> >  tests/generic/102 | 2 +-
> >  tests/generic/204 | 2 +-
> >  tests/generic/224 | 3 ++-
> >  tests/generic/226 | 3 ++-
> >  tests/generic/250 | 2 +-
> >  tests/generic/252 | 2 +-
> >  tests/generic/256 | 3 ++-
> >  tests/generic/269 | 3 ++-
> >  tests/generic/270 | 3 ++-
> >  tests/generic/273 | 3 ++-
> >  tests/generic/274 | 3 ++-
> >  tests/generic/275 | 3 ++-
> >  tests/generic/300 | 2 +-
> >  tests/generic/312 | 2 +-
> >  tests/generic/320 | 2 +-
> >  tests/generic/333 | 3 ++-
> >  tests/generic/334 | 3 ++-
> >  tests/generic/361 | 3 ++-
> >  tests/generic/371 | 3 ++-
> >  tests/generic/387 | 3 ++-
> >  tests/generic/399 | 2 +-
> >  tests/generic/416 | 2 +-
> >  tests/generic/427 | 3 ++-
> >  tests/generic/449 | 3 ++-
> >  tests/generic/459 | 3 ++-
> >  tests/generic/488 | 3 ++-
> >  tests/generic/511 | 3 ++-
> >  tests/generic/515 | 3 ++-
> >  tests/generic/520 | 2 +-
> >  tests/generic/536 | 3 ++-
> >  tests/generic/546 | 3 ++-
> >  tests/generic/558 | 3 ++-
> >  tests/generic/559 | 2 +-
> >  tests/generic/562 | 3 ++-
> >  tests/generic/619 | 2 +-
> >  tests/generic/626 | 3 ++-
> >  tests/generic/679 | 3 ++-
> >  tests/xfs/075     | 2 +-
> >  tests/xfs/107     | 3 ++-
> >  tests/xfs/118     | 3 ++-
> >  tests/xfs/127     | 3 ++-
> >  tests/xfs/227     | 3 ++-
> >  tests/xfs/233     | 3 ++-
> >  tests/xfs/442     | 3 ++-
> >  tests/xfs/529     | 3 ++-
> >  tests/xfs/532     | 3 ++-
> >  tests/xfs/534     | 3 ++-
> >  tests/xfs/535     | 3 ++-
> >  tests/xfs/538     | 3 ++-
> >  71 files changed, 122 insertions(+), 70 deletions(-)
> > 
> > diff --git a/tests/btrfs/057 b/tests/btrfs/057
> > index e932a657..ff002c86 100755
> > --- a/tests/btrfs/057
> > +++ b/tests/btrfs/057
> > @@ -17,7 +17,8 @@ _supported_fs btrfs
> >  _require_scratch
> >  _require_qgroup_rescan
> >  
> > -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  
> >  _scratch_mount
> >  
> > diff --git a/tests/btrfs/132 b/tests/btrfs/132
> > index f50420f5..b10b8e2a 100755
> > --- a/tests/btrfs/132
> > +++ b/tests/btrfs/132
> > @@ -35,7 +35,8 @@ _require_scratch
> >  # to further increase the possibility
> >  # Since the false ENOSPC happens due to incorrect metadata reservation,
> >  # larger nodesize and small fs will make it much easier to reproduce
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  
> >  # Recommended to use MOUNT_OPTIONS="-o compress" to trigger the bug
> >  _scratch_mount
> > diff --git a/tests/btrfs/170 b/tests/btrfs/170
> > index ab105d36..103d097f 100755
> > --- a/tests/btrfs/170
> > +++ b/tests/btrfs/170
> > @@ -25,7 +25,7 @@ _require_xfs_io_command "falloc" "-k"
> >  # later want to not have more space available for allocating data extents but
> >  # still have enough metadata space free for creating the snapshot.
> >  fs_size=$((2 * 1024 * 1024 * 1024)) # 2Gb
> > -_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1 || _fail "mkfs failed"
> >  
> >  # Mount without space cache so that we can precisely fill all data space and
> >  # unallocated space later (space cache v1 uses data block groups).
> > diff --git a/tests/btrfs/177 b/tests/btrfs/177
> > index 7b004b83..4de18785 100755
> > --- a/tests/btrfs/177
> > +++ b/tests/btrfs/177
> > @@ -47,7 +47,7 @@ _require_scratch_size $((3 * 1024 * 1024)) #kB
> >  
> >  # First, create a 1GB filesystem.
> >  fssize=$((1024 * 1024 * 1024))
> > -_scratch_mkfs_sized $fssize >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $fssize >> $seqres.full 2>&1 || _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # Create a small file and run balance so we shall deal with the chunk
> > diff --git a/tests/btrfs/204 b/tests/btrfs/204
> > index ec751e42..7c036181 100755
> > --- a/tests/btrfs/204
> > +++ b/tests/btrfs/204
> > @@ -20,7 +20,7 @@ _supported_fs btrfs
> >  _require_scratch
> >  _require_xfs_io_command "fpunch"
> >  
> > -_scratch_mkfs_sized $((256 * 1024 *1024)) >> $seqres.full
> > +_scratch_mkfs_sized $((256 * 1024 *1024)) >> $seqres.full || _fail "mkfs failed"
> >  
> >  # max_inline ensures data is not inlined within metadata extents
> >  _scratch_mount "-o max_inline=0,nodatacow"
> > diff --git a/tests/btrfs/217 b/tests/btrfs/217
> > index 92bbba23..4be154b0 100755
> > --- a/tests/btrfs/217
> > +++ b/tests/btrfs/217
> > @@ -23,7 +23,8 @@ _require_scratch_size $((5 * 1024 * 1024)) #kB
> >  _require_fstrim
> >  
> >  # Create a 5G fs
> > -_scratch_mkfs_sized $((5 * 1024 * 1024 * 1024)) >> $seqres.full
> > +_scratch_mkfs_sized $((5 * 1024 * 1024 * 1024)) >> $seqres.full \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # Fstrim to populate the device->alloc_status CHUNK_TRIMMED bits
> > diff --git a/tests/btrfs/237 b/tests/btrfs/237
> > index 367019b6..823bf18a 100755
> > --- a/tests/btrfs/237
> > +++ b/tests/btrfs/237
> > @@ -53,6 +53,7 @@ if [[ $devsize -gt $fssize ]]; then
> >  else
> >  	_scratch_mkfs >> $seqres.full 2>&1
> >  fi
> > +[[ $? -ne 0 ]] && _fail "mkfs failed"
> >  _scratch_mount -o commit=1 # 1s commit time to speed up test
> >  
> >  uuid=$($BTRFS_UTIL_PROG filesystem show $SCRATCH_DEV |grep uuid: |\
> > diff --git a/tests/btrfs/250 b/tests/btrfs/250
> > index e7ddc2f1..ab39bfdb 100755
> > --- a/tests/btrfs/250
> > +++ b/tests/btrfs/250
> > @@ -36,7 +36,7 @@ _require_odirect
> >  # space available for allocating data extents but still have enough metadata
> >  # space free for the file writes.
> >  fs_size=$((1024 * 1024 * 1024)) # 1G
> > -_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1 || _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # Create our test file with the NOCOW attribute set.
> > diff --git a/tests/btrfs/253 b/tests/btrfs/253
> > index 5fbce070..2273e690 100755
> > --- a/tests/btrfs/253
> > +++ b/tests/btrfs/253
> > @@ -89,7 +89,8 @@ rm -f "${seqres}.full"
> >  
> >  # Make filesystem. 10GB is needed to test different chunk sizes for
> >  # metadata and data and the default size for volumes > 5GB is different.
> > -_scratch_mkfs_sized $((10 * 1024 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((10 * 1024 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full 2>&1
> >  
> >  # Check if there is sufficient sysfs support.
> > diff --git a/tests/ext4/004 b/tests/ext4/004
> > index 0c2ad897..d23cc547 100755
> > --- a/tests/ext4/004
> > +++ b/tests/ext4/004
> > @@ -54,7 +54,8 @@ _require_command "$RESTORE_PROG" restore
> >  
> >  echo "Silence is golden"
> >  
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  rm -rf $restore_dir $TEST_DIR/restoresymtable
> >  
> > diff --git a/tests/ext4/036 b/tests/ext4/036
> > index 60ab0b90..a4bbe528 100755
> > --- a/tests/ext4/036
> > +++ b/tests/ext4/036
> > @@ -21,7 +21,7 @@ _require_scratch
> >  
> >  echo "Silence is golden"
> >  
> > -_scratch_mkfs_sized $((16*1024*1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((16*1024*1024)) >>$seqres.full 2>&1 || _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # create a file and get its inode number, usually it's 12, but to be accurate
> > diff --git a/tests/ext4/038 b/tests/ext4/038
> > index 596de65b..a84d070b 100755
> > --- a/tests/ext4/038
> > +++ b/tests/ext4/038
> > @@ -23,7 +23,8 @@ echo "Silence is golden"
> >  # it is better to test all reserved inode numbers 1-10 here
> >  for i in {1..10}; do
> >  	# create smaller filesystems to save test time
> > -	_scratch_mkfs_sized $((16 * 1024 * 1024)) >>$seqres.full 2>&1
> > +	_scratch_mkfs_sized $((16 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +		|| _fail "mkfs failed"
> >  	$DEBUGFS_PROG -w -R "ssv last_orphan $i" $SCRATCH_DEV >>$seqres.full 2>&1
> >  	_scratch_mount
> >  	_scratch_unmount
> > diff --git a/tests/ext4/039 b/tests/ext4/039
> > index 4ca4058a..4945bab2 100755
> > --- a/tests/ext4/039
> > +++ b/tests/ext4/039
> > @@ -61,7 +61,8 @@ _supported_fs ext3 ext4
> >  _require_scratch
> >  _exclude_scratch_mount_option dax
> >  
> > -_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  if ! _workout; then
> > diff --git a/tests/ext4/048 b/tests/ext4/048
> > index c23c0ea3..a499038e 100755
> > --- a/tests/ext4/048
> > +++ b/tests/ext4/048
> > @@ -81,7 +81,8 @@ test_file1="test0001"
> >  test_file2="test0002"
> >  test_file3="test0003"
> >  
> > -_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  
> >  # create scratch dir for testing
> >  # create some files with no name a substr of another name so we can grep later
> > diff --git a/tests/ext4/050 b/tests/ext4/050
> > index 6f93b86d..95326771 100755
> > --- a/tests/ext4/050
> > +++ b/tests/ext4/050
> > @@ -24,7 +24,8 @@ _require_test_program "checkpoint_journal"
> >  
> >  testdir="${SCRATCH_MNT}/testdir"
> >  
> > -_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((64 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _require_metadata_journaling $SCRATCH_DEV
> >  _scratch_mount >> $seqres.full 2>&1
> >  blocksize=$(_get_block_size $SCRATCH_MNT)
> > diff --git a/tests/ext4/271 b/tests/ext4/271
> > index 8d9bd7dc..feceb7f3 100755
> > --- a/tests/ext4/271
> > +++ b/tests/ext4/271
> > @@ -20,7 +20,8 @@ _require_scratch
> >  _exclude_scratch_mount_option "data" "commit" "journal_checksum" \
> >  			      "journal_async_commit"
> >  
> > -_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  
> >  # -onoload and EXT4_SYNC_FL on file is important becase result in
> >  # metadata sync writes inside ext4_handle_dirty_metadata()
> > diff --git a/tests/ext4/307 b/tests/ext4/307
> > index 8b1cfc9e..b63e1e91 100755
> > --- a/tests/ext4/307
> > +++ b/tests/ext4/307
> > @@ -41,7 +41,8 @@ _require_scratch
> >  _require_defrag
> >  _require_xfs_io_command "falloc"
> >  
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  _workout
> > diff --git a/tests/f2fs/001 b/tests/f2fs/001
> > index 2bf39d8c..4c7d7c7a 100755
> > --- a/tests/f2fs/001
> > +++ b/tests/f2fs/001
> > @@ -29,7 +29,8 @@ testfile=$SCRATCH_MNT/testfile
> >  dummyfile=$SCRATCH_MNT/dummyfile
> >  
> >  # build 4GB filesystem
> > -_scratch_mkfs_sized $((4 * 1024 * 1024 * 1024)) > /dev/null 2>&1
> > +_scratch_mkfs_sized $((4 * 1024 * 1024 * 1024)) > /dev/null 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  echo "==== create small file ===="
> > diff --git a/tests/generic/027 b/tests/generic/027
> > index 47f1981d..a8689a15 100755
> > --- a/tests/generic/027
> > +++ b/tests/generic/027
> > @@ -35,7 +35,8 @@ _require_scratch
> >  
> >  echo "Silence is golden"
> >  
> > -_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  echo "Reserve 2M space" >>$seqres.full
> > diff --git a/tests/generic/081 b/tests/generic/081
> > index 0996f221..71ef19e0 100755
> > --- a/tests/generic/081
> > +++ b/tests/generic/081
> > @@ -67,7 +67,8 @@ lvsize=$((size * 85 / 100))	 # ~256M
> >  
> >  # make sure there's enough disk space for 256M lv, test for 300M here in case
> >  # lvm uses some space for metadata
> > -_scratch_mkfs_sized $((size * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((size * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  $LVM_PROG vgcreate -f $vgname $SCRATCH_DEV >>$seqres.full 2>&1
> >  # We use yes pipe instead of 'lvcreate --yes' because old version of lvm
> >  # (like 2.02.95 in RHEL6) don't support --yes option
> > diff --git a/tests/generic/085 b/tests/generic/085
> > index 786d8e6f..7e501cf8 100755
> > --- a/tests/generic/085
> > +++ b/tests/generic/085
> > @@ -52,7 +52,7 @@ echo "Silence is golden"
> >  
> >  size=$((256 * 1024 * 1024))
> >  size_in_sector=$((size / 512))
> > -_scratch_mkfs_sized $size >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $size >>$seqres.full 2>&1 || _fail "mkfs failed"
> >  
> >  node=$seq-test
> >  lvdev=/dev/mapper/$node
> > diff --git a/tests/generic/096 b/tests/generic/096
> > index 41b646c0..d76b2f53 100755
> > --- a/tests/generic/096
> > +++ b/tests/generic/096
> > @@ -23,7 +23,8 @@ _require_xfs_io_command "fzero"
> >  echo "Silence is golden"
> >  
> >  # Use smaller scratch fs to shorten the test time
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  testfile=$SCRATCH_MNT/$seq.$$
> > diff --git a/tests/generic/102 b/tests/generic/102
> > index 3536ebf7..396cb80c 100755
> > --- a/tests/generic/102
> > +++ b/tests/generic/102
> > @@ -23,7 +23,7 @@ _supported_fs generic
> >  _require_scratch
> >  
> >  dev_size=$((1024 * 1024 * 1024))     # 1GB filesystem
> > -_scratch_mkfs_sized $dev_size >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $dev_size >>$seqres.full 2>&1 || _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  for ((i = 0; i < 10; i++)); do
> > diff --git a/tests/generic/204 b/tests/generic/204
> > index a33a090f..31b920f2 100755
> > --- a/tests/generic/204
> > +++ b/tests/generic/204
> > @@ -31,7 +31,7 @@ _require_scratch
> >  [ $FSTYP = "xfs" ] && MKFS_OPTIONS="$MKFS_OPTIONS -l size=16m -i maxpct=50"
> >  
> >  SIZE=`expr 115 \* 1024 \* 1024`
> > -_scratch_mkfs_sized $SIZE 2> /dev/null > $tmp.mkfs.raw
> > +_scratch_mkfs_sized $SIZE 2> /dev/null > $tmp.mkfs.raw || _fail "mkfs failed"
> >  cat $tmp.mkfs.raw | _filter_mkfs 2> $tmp.mkfs > /dev/null
> >  _scratch_mount
> >  
> > diff --git a/tests/generic/224 b/tests/generic/224
> > index 26055ea2..6407aed0 100755
> > --- a/tests/generic/224
> > +++ b/tests/generic/224
> > @@ -30,7 +30,8 @@ _supported_fs generic
> >  _require_scratch
> >  
> >  # make a 1GB filesystem
> > -_scratch_mkfs_sized `expr 1024 \* 1024 \* 1024` > $seqres.full 2>&1
> > +_scratch_mkfs_sized `expr 1024 \* 1024 \* 1024` > $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full 2>&1
> >  
> >  # set the reserved block pool to almost empty for XFS
> > diff --git a/tests/generic/226 b/tests/generic/226
> > index 34434730..5b0d5088 100755
> > --- a/tests/generic/226
> > +++ b/tests/generic/226
> > @@ -19,7 +19,8 @@ _require_odirect
> >  
> >  _scratch_unmount 2>/dev/null
> >  echo "--> mkfs 256m filesystem"
> > -_scratch_mkfs_sized `expr 256 \* 1024 \* 1024` >> $seqres.full 2>&1
> > +_scratch_mkfs_sized `expr 256 \* 1024 \* 1024` >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  loops=16
> > diff --git a/tests/generic/250 b/tests/generic/250
> > index 97e9522f..b4b98ad2 100755
> > --- a/tests/generic/250
> > +++ b/tests/generic/250
> > @@ -35,7 +35,7 @@ unset SCRATCH_RTDEV
> >  fssize=$((196 * 1048576))
> >  echo "Format and mount"
> >  $XFS_IO_PROG -d -c "pwrite -S 0x69 -b 1048576 0 $fssize" $SCRATCH_DEV >> $seqres.full
> > -_scratch_mkfs_sized $fssize > $seqres.full 2>&1
> > +_scratch_mkfs_sized $fssize > $seqres.full 2>&1 || _fail "mkfs failed"
> >  _dmerror_init
> >  _dmerror_mount >> $seqres.full 2>&1
> >  _dmerror_unmount
> > diff --git a/tests/generic/252 b/tests/generic/252
> > index 8c5adb53..6108183b 100755
> > --- a/tests/generic/252
> > +++ b/tests/generic/252
> > @@ -36,7 +36,7 @@ unset SCRATCH_RTDEV
> >  fssize=$((196 * 1048576))
> >  echo "Format and mount"
> >  $XFS_IO_PROG -d -c "pwrite -S 0x69 -b 1048576 0 $fssize" $SCRATCH_DEV >> $seqres.full
> > -_scratch_mkfs_sized $fssize > $seqres.full 2>&1
> > +_scratch_mkfs_sized $fssize > $seqres.full 2>&1 || _fail "mkfs failed"
> >  _dmerror_init
> >  _dmerror_mount >> $seqres.full 2>&1
> >  _dmerror_unmount
> > diff --git a/tests/generic/256 b/tests/generic/256
> > index ea6cc293..aa72a2a4 100755
> > --- a/tests/generic/256
> > +++ b/tests/generic/256
> > @@ -89,7 +89,8 @@ _test_full_fs_punch()
> >  
> >  # Make a small file system to fill
> >  _scratch_unmount &> /dev/null
> > -_scratch_mkfs_sized $(( 1536 * 1024 * 1024 )) &> /dev/null
> > +_scratch_mkfs_sized $(( 1536 * 1024 * 1024 )) &> /dev/null \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  # Test must be able to write files with non-root permissions
> >  chmod 777 $SCRATCH_MNT
> > diff --git a/tests/generic/269 b/tests/generic/269
> > index b7cdecd9..c10bc908 100755
> > --- a/tests/generic/269
> > +++ b/tests/generic/269
> > @@ -42,7 +42,8 @@ _workout()
> >  _supported_fs generic
> >  _require_scratch
> >  
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  if ! _workout; then
> > diff --git a/tests/generic/270 b/tests/generic/270
> > index e7329c2f..3c495a5d 100755
> > --- a/tests/generic/270
> > +++ b/tests/generic/270
> > @@ -61,7 +61,8 @@ _require_command "$KILLALL_PROG" killall
> >  _require_command "$SETCAP_PROG" setcap
> >  _require_attrs security
> >  
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount "-o usrquota,grpquota"
> >  chmod 777 $SCRATCH_MNT
> >  quotacheck -u -g $SCRATCH_MNT 2>/dev/null
> > diff --git a/tests/generic/273 b/tests/generic/273
> > index 54c19996..53e18be7 100755
> > --- a/tests/generic/273
> > +++ b/tests/generic/273
> > @@ -125,7 +125,8 @@ echo "start the workload"
> >  echo "------------------------------"
> >  
> >  _scratch_unmount 2>/dev/null
> > -_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  _do_workload
> > diff --git a/tests/generic/274 b/tests/generic/274
> > index 8c0e420e..ee1f71ea 100755
> > --- a/tests/generic/274
> > +++ b/tests/generic/274
> > @@ -39,7 +39,8 @@ echo "preallocation test"
> >  echo "------------------------------"
> >  
> >  _scratch_unmount 2>/dev/null
> > -_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # Create a 4k file and Allocate 4M past EOF on that file
> > diff --git a/tests/generic/275 b/tests/generic/275
> > index f3b05409..effaee63 100755
> > --- a/tests/generic/275
> > +++ b/tests/generic/275
> > @@ -34,7 +34,8 @@ echo "write until ENOSPC test"
> >  echo "------------------------------"
> >  
> >  _scratch_unmount 2>/dev/null
> > -_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((2 * 1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # Certain filesystems such as XFS require sufficient free blocks to handle the
> > diff --git a/tests/generic/300 b/tests/generic/300
> > index 5ff141d3..fea951c3 100755
> > --- a/tests/generic/300
> > +++ b/tests/generic/300
> > @@ -110,7 +110,7 @@ EOF
> >  
> >  _require_fio $fio_config
> >  
> > -_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1 || _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  echo ""
> > diff --git a/tests/generic/312 b/tests/generic/312
> > index 1926deb8..03ddd7c5 100755
> > --- a/tests/generic/312
> > +++ b/tests/generic/312
> > @@ -23,7 +23,7 @@ _require_scratch
> >  # 5G in byte
> >  fssize=$((2**30 * 5))
> >  
> > -_scratch_mkfs_sized $fssize >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $fssize >>$seqres.full 2>&1 || _fail "mkfs failed"
> >  _scratch_mount >>$seqres.full 2>&1
> >  
> >  echo "Silence is golden"
> > diff --git a/tests/generic/320 b/tests/generic/320
> > index ea65537f..15178435 100755
> > --- a/tests/generic/320
> > +++ b/tests/generic/320
> > @@ -79,7 +79,7 @@ do_workload()
> >  
> >  echo "Silence is golden"
> >  
> > -_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $fs_size >>$seqres.full 2>&1 || _fail "mkfs failed"
> >  _scratch_mount >>$seqres.full 2>&1
> >  
> >  do_workload
> > diff --git a/tests/generic/333 b/tests/generic/333
> > index bf1967ce..fad4e357 100755
> > --- a/tests/generic/333
> > +++ b/tests/generic/333
> > @@ -30,7 +30,8 @@ _require_cp_reflink
> >  _require_odirect
> >  
> >  echo "Format and mount"
> > -_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1
> > +_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full 2>&1
> >  
> >  testdir=$SCRATCH_MNT/test-$seq
> > diff --git a/tests/generic/334 b/tests/generic/334
> > index b9c14b87..f78641d6 100755
> > --- a/tests/generic/334
> > +++ b/tests/generic/334
> > @@ -29,7 +29,8 @@ _require_scratch_reflink
> >  _require_cp_reflink
> >  
> >  echo "Format and mount"
> > -_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1
> > +_scratch_mkfs_sized $((400 * 1048576)) > $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full 2>&1
> >  
> >  testdir=$SCRATCH_MNT/test-$seq
> > diff --git a/tests/generic/361 b/tests/generic/361
> > index d76d2635..2ba49e9c 100755
> > --- a/tests/generic/361
> > +++ b/tests/generic/361
> > @@ -33,7 +33,8 @@ _require_loop
> >  _require_sparse_files
> >  
> >  # create a small filesystem to hold another filesystem image
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # create the sparse fs image and mount point
> > diff --git a/tests/generic/371 b/tests/generic/371
> > index a2fdaf7b..8861dc40 100755
> > --- a/tests/generic/371
> > +++ b/tests/generic/371
> > @@ -20,7 +20,8 @@ _require_scratch
> >  _require_xfs_io_command "falloc"
> >  test "$FSTYP" = "xfs" && _require_xfs_io_command "extsize"
> >  
> > -_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # Disable speculative post-EOF preallocation on XFS, which can grow fast enough
> > diff --git a/tests/generic/387 b/tests/generic/387
> > index 25ca86bb..0ee01594 100755
> > --- a/tests/generic/387
> > +++ b/tests/generic/387
> > @@ -19,7 +19,8 @@ _supported_fs generic
> >  _require_scratch_reflink
> >  
> >  #btrfs needs 256mb to create default blockgroup fs
> > -_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  testfile=$SCRATCH_MNT/testfile
> > diff --git a/tests/generic/399 b/tests/generic/399
> > index a5aa7107..dc42d5c8 100755
> > --- a/tests/generic/399
> > +++ b/tests/generic/399
> > @@ -42,7 +42,7 @@ fs_size_in_mb=64
> >  fs_size=$((fs_size_in_mb * 1024 * 1024))
> >  dd if=/dev/zero of=$SCRATCH_DEV bs=$((1024 * 1024)) \
> >  	count=$fs_size_in_mb &>> $seqres.full
> > -_scratch_mkfs_sized_encrypted $fs_size &>> $seqres.full
> > +_scratch_mkfs_sized_encrypted $fs_size &>> $seqres.full || _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  keydesc=$(_generate_session_encryption_key)
> > diff --git a/tests/generic/416 b/tests/generic/416
> > index 0f6e3bc9..b0ce71c9 100755
> > --- a/tests/generic/416
> > +++ b/tests/generic/416
> > @@ -28,7 +28,7 @@ page_size=$(_get_page_size)
> >  nr_files=$(($fs_size / $page_size))
> >  
> >  # Use small fs to make the fill more faster
> > -_scratch_mkfs_sized $fs_size >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $fs_size >> $seqres.full 2>&1 || _fail "mkfs failed"
> >  
> >  _scratch_mount
> >  
> > diff --git a/tests/generic/427 b/tests/generic/427
> > index 26385d36..01df59b1 100755
> > --- a/tests/generic/427
> > +++ b/tests/generic/427
> > @@ -27,7 +27,8 @@ _require_aiodio aio-dio-eof-race
> >  _require_no_compress
> >  
> >  # limit the filesystem size, to save the time of filling filesystem
> > -_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((256 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # try to write more bytes than filesystem size to fill the filesystem,
> > diff --git a/tests/generic/449 b/tests/generic/449
> > index 2b77a6a4..916d1985 100755
> > --- a/tests/generic/449
> > +++ b/tests/generic/449
> > @@ -24,7 +24,8 @@ _require_test
> >  _require_acls
> >  _require_attrs trusted
> >  
> > -_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount || _fail "mount failed"
> >  
> >  # This is a test of xattr behavior when we run out of disk space for xattrs,
> > diff --git a/tests/generic/459 b/tests/generic/459
> > index c3f0b2b0..57cd0c52 100755
> > --- a/tests/generic/459
> > +++ b/tests/generic/459
> > @@ -76,7 +76,8 @@ is_shutdown_or_ro()
> >  }
> >  
> >  # Ensure we have enough disk space
> > -_scratch_mkfs_sized $((350 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((350 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  
> >  # Create a 200MB dm-thin POOL
> >  $LVM_PROG pvcreate -f $SCRATCH_DEV >>$seqres.full 2>&1
> > diff --git a/tests/generic/488 b/tests/generic/488
> > index 7b9dcc18..26f08040 100755
> > --- a/tests/generic/488
> > +++ b/tests/generic/488
> > @@ -16,7 +16,8 @@ _supported_fs generic
> >  _require_scratch
> >  _require_test_program "multi_open_unlink"
> >  
> > -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  test_file="$SCRATCH_MNT/$seq"
> > diff --git a/tests/generic/511 b/tests/generic/511
> > index 61c21e42..d96d46df 100755
> > --- a/tests/generic/511
> > +++ b/tests/generic/511
> > @@ -19,7 +19,8 @@ _require_scratch
> >  _require_xfs_io_command "falloc" "-k"
> >  _require_xfs_io_command "fzero"
> >  
> > -_scratch_mkfs_sized $((1024 * 1024 * 256)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((1024 * 1024 * 256)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  $XFS_IO_PROG -fc "pwrite 0 256m" -c fsync $SCRATCH_MNT/file >>$seqres.full 2>&1
> > diff --git a/tests/generic/515 b/tests/generic/515
> > index 1d537dec..0b14f9e3 100755
> > --- a/tests/generic/515
> > +++ b/tests/generic/515
> > @@ -24,7 +24,8 @@ _require_xfs_io_command "falloc"
> >  # Fill disk with a well known pattern so that stale data exposure becomes much
> >  # more obvious.
> >  $XFS_IO_PROG -c "pwrite -S 0x58 -b 1m 0 300m" $SCRATCH_DEV >> $seqres.full
> > -_scratch_mkfs_sized $((300 * 1048576)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((300 * 1048576)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  DONOR1=$SCRATCH_MNT/a
> > diff --git a/tests/generic/520 b/tests/generic/520
> > index ad6764c7..9bf2a6eb 100755
> > --- a/tests/generic/520
> > +++ b/tests/generic/520
> > @@ -33,7 +33,7 @@ _require_scratch_nocheck
> >  _require_dm_target flakey
> >  
> >  # initialize scratch device
> > -_scratch_mkfs_sized $fssize >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $fssize >> $seqres.full 2>&1 || _fail "mkfs failed"
> >  _require_metadata_journaling $SCRATCH_DEV
> >  _init_flakey
> >  
> > diff --git a/tests/generic/536 b/tests/generic/536
> > index 986ea1ee..3ff56914 100755
> > --- a/tests/generic/536
> > +++ b/tests/generic/536
> > @@ -21,7 +21,8 @@ _require_scratch
> >  _require_scratch_shutdown
> >  
> >  # create a small fs and initialize free blocks with a unique pattern
> > -_scratch_mkfs_sized $((1024 * 1024 * 100)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((1024 * 1024 * 100)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  $XFS_IO_PROG -f -c "pwrite -S 0xab 0 100m" -c fsync $SCRATCH_MNT/spc \
> >  	>> $seqres.full 2>&1
> > diff --git a/tests/generic/546 b/tests/generic/546
> > index 2eb99543..75de5478 100755
> > --- a/tests/generic/546
> > +++ b/tests/generic/546
> > @@ -35,7 +35,8 @@ _require_xfs_io_command "falloc"
> >  _require_scratch_reflink
> >  _require_dm_target flakey
> >  
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _require_metadata_journaling $SCRATCH_DEV
> >  _init_flakey
> >  _mount_flakey
> > diff --git a/tests/generic/558 b/tests/generic/558
> > index 510b06f2..c6b9e2e0 100755
> > --- a/tests/generic/558
> > +++ b/tests/generic/558
> > @@ -34,7 +34,8 @@ _require_scratch
> >  
> >  echo "Silence is golden"
> >  
> > -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  i=0
> > diff --git a/tests/generic/559 b/tests/generic/559
> > index 98ab4474..26f07443 100755
> > --- a/tests/generic/559
> > +++ b/tests/generic/559
> > @@ -18,7 +18,7 @@ _supported_fs generic
> >  _require_scratch_duperemove
> >  
> >  fssize=$((2 * 1024 * 1024 * 1024))
> > -_scratch_mkfs_sized $fssize > $seqres.full 2>&1
> > +_scratch_mkfs_sized $fssize > $seqres.full 2>&1 || _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full 2>&1
> >  
> >  # fill the fs with a big file has same contents
> > diff --git a/tests/generic/562 b/tests/generic/562
> > index 7d98e569..d5a5993b 100755
> > --- a/tests/generic/562
> > +++ b/tests/generic/562
> > @@ -21,7 +21,8 @@ _require_scratch_reflink
> >  _require_test_program "punch-alternating"
> >  _require_xfs_io_command "fpunch"
> >  
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  file_size=$(( 200 * 1024 * 1024 )) # 200Mb
> > diff --git a/tests/generic/619 b/tests/generic/619
> > index c4bdfbce..b844d2f8 100755
> > --- a/tests/generic/619
> > +++ b/tests/generic/619
> > @@ -132,7 +132,7 @@ run_testcase()
> >  
> >  	for i in $(eval echo "{1..$test_iteration_cnt}"); do
> >  		# Setup the device
> > -		_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1
> > +		_scratch_mkfs_sized $FS_SIZE >> $seqres.full 2>&1 || _fail "mkfs failed"
> >  		_scratch_mount
> >  
> >  		debug "===== Test: $test_name iteration: $i starts ====="
> > diff --git a/tests/generic/626 b/tests/generic/626
> > index 7e577798..afb9322a 100755
> > --- a/tests/generic/626
> > +++ b/tests/generic/626
> > @@ -22,7 +22,8 @@ _supported_fs generic
> >  _require_scratch
> >  _require_renameat2 whiteout
> >  
> > -_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # Create lots of files, to help to trigger the bug easily
> > diff --git a/tests/generic/679 b/tests/generic/679
> > index ddf975a2..f6e95117 100755
> > --- a/tests/generic/679
> > +++ b/tests/generic/679
> > @@ -29,7 +29,8 @@ _supported_fs ^xfs
> >  rm -f $seqres.full
> >  
> >  # Create a 1G filesystem.
> > -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1
> > +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >>$seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  # Create a file with a size of 600M and two holes, each with a size of 1M and
> > diff --git a/tests/xfs/075 b/tests/xfs/075
> > index ec056fb3..82307e68 100755
> > --- a/tests/xfs/075
> > +++ b/tests/xfs/075
> > @@ -22,7 +22,7 @@ _require_scratch
> >  _qmount_option "defaults"
> >  
> >  echo "Silence is golden"
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >$seqres.full
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >$seqres.full || _fail "mkfs failed"
> >  
> >  # first ro mount with norecovery
> >  _try_scratch_mount "-o ro,norecovery" >>$seqres.full 2>&1 \
> > diff --git a/tests/xfs/107 b/tests/xfs/107
> > index 1ea9c492..c374d15d 100755
> > --- a/tests/xfs/107
> > +++ b/tests/xfs/107
> > @@ -32,7 +32,8 @@ size_mb=256
> >  # reproduce within the first 500KB's worth of ALLOCSP calls, so running up
> >  # to 16MB should suffice.
> >  $XFS_IO_PROG -d -c "pwrite -S 0x58 -b 8m 0 ${size_mb}m" $SCRATCH_DEV > $seqres.full
> > -MKFS_OPTIONS="-K $MKFS_OPTIONS" _scratch_mkfs_sized $((size_mb * 1048576)) >> $seqres.full
> > +MKFS_OPTIONS="-K $MKFS_OPTIONS" _scratch_mkfs_sized $((size_mb * 1048576)) \
> > +	>> $seqres.full || _fail "mkfs failed"
> >  
> >  _scratch_mount
> >  
> > diff --git a/tests/xfs/118 b/tests/xfs/118
> > index 6bb81a3a..f6d17706 100755
> > --- a/tests/xfs/118
> > +++ b/tests/xfs/118
> > @@ -28,7 +28,8 @@ _require_command "$XFS_FSR_PROG" "xfs_fsr"
> >  _require_xfs_io_command "falloc"
> >  
> >  # 50M
> > -_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  
> >  echo "Silence is golden"
> > diff --git a/tests/xfs/127 b/tests/xfs/127
> > index f39b0582..c4237860 100755
> > --- a/tests/xfs/127
> > +++ b/tests/xfs/127
> > @@ -20,7 +20,8 @@ _require_no_large_scratch_dev
> >  _require_cp_reflink
> >  
> >  echo "Format and mount"
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) > $seqres.full 2>&1
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) > $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full 2>&1
> >  
> >  testdir=$SCRATCH_MNT/test-$seq
> > diff --git a/tests/xfs/227 b/tests/xfs/227
> > index cd927dc4..0556412c 100755
> > --- a/tests/xfs/227
> > +++ b/tests/xfs/227
> > @@ -122,7 +122,8 @@ create_target_attr_last()
> >  }
> >  
> >  # use a small filesystem so we can control freespace easily
> > -_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1
> > +_scratch_mkfs_sized $((50 * 1024 * 1024)) >> $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount
> >  fragment_freespace
> >  
> > diff --git a/tests/xfs/233 b/tests/xfs/233
> > index 2b2b8666..dedd1ef8 100755
> > --- a/tests/xfs/233
> > +++ b/tests/xfs/233
> > @@ -18,7 +18,8 @@ _require_xfs_scratch_rmapbt
> >  _require_no_large_scratch_dev
> >  
> >  echo "Format and mount"
> > -_scratch_mkfs_sized $((2 * 4096 * 4096)) > $seqres.full 2>&1
> > +_scratch_mkfs_sized $((2 * 4096 * 4096)) > $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full 2>&1
> >  
> >  testdir=$SCRATCH_MNT/test-$seq
> > diff --git a/tests/xfs/442 b/tests/xfs/442
> > index b04b1c83..d55ccc17 100755
> > --- a/tests/xfs/442
> > +++ b/tests/xfs/442
> > @@ -68,7 +68,8 @@ _qmount_option "usrquota,grpquota,prjquota"
> >  # operations as delalloc for quota accounting") and ("xfs: call
> >  # xfs_qm_dqattach before performing reflink operations") though each of those
> >  # tests now have separate faster-running regression tests.
> > -_scratch_mkfs_sized $((1600 * 1048576)) > $seqres.full 2>&1
> > +_scratch_mkfs_sized $((1600 * 1048576)) > $seqres.full 2>&1 \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full 2>&1
> >  
> >  nr_cpus=$((LOAD_FACTOR * 4))
> > diff --git a/tests/xfs/529 b/tests/xfs/529
> > index cd176877..da4490b7 100755
> > --- a/tests/xfs/529
> > +++ b/tests/xfs/529
> > @@ -29,7 +29,8 @@ _require_xfs_io_error_injection "reduce_max_iextents"
> >  _require_xfs_io_error_injection "bmap_alloc_minlen_extent"
> >  
> >  echo "Format and mount fs"
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount -o uquota >> $seqres.full
> >  
> >  # bmap_alloc_minlen_extent only applies to the datadev space allocator, so
> > diff --git a/tests/xfs/532 b/tests/xfs/532
> > index 74a7ac30..06e41367 100755
> > --- a/tests/xfs/532
> > +++ b/tests/xfs/532
> > @@ -26,7 +26,8 @@ _require_xfs_io_error_injection "reduce_max_iextents"
> >  _require_xfs_io_error_injection "bmap_alloc_minlen_extent"
> >  
> >  echo "Format and mount fs"
> > -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
> > +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full
> >  
> >  # Disable realtime inherit flag (if any) on root directory so that space on data
> > diff --git a/tests/xfs/534 b/tests/xfs/534
> > index f17c45b8..bb940e4a 100755
> > --- a/tests/xfs/534
> > +++ b/tests/xfs/534
> > @@ -22,7 +22,8 @@ _require_xfs_io_command "falloc"
> >  _require_xfs_io_error_injection "reduce_max_iextents"
> >  
> >  echo "Format and mount fs"
> > -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
> > +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full
> >  
> >  bsize=$(_get_file_block_size $SCRATCH_MNT)
> > diff --git a/tests/xfs/535 b/tests/xfs/535
> > index f76c1725..1c72e3a2 100755
> > --- a/tests/xfs/535
> > +++ b/tests/xfs/535
> > @@ -25,7 +25,8 @@ _require_xfs_io_command "funshare"
> >  _require_xfs_io_error_injection "reduce_max_iextents"
> >  
> >  echo "Format and mount fs"
> > -_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full
> > +_scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full
> >  
> >  bsize=$(_get_block_size $SCRATCH_MNT)
> > diff --git a/tests/xfs/538 b/tests/xfs/538
> > index 0b5772a1..e8ac3918 100755
> > --- a/tests/xfs/538
> > +++ b/tests/xfs/538
> > @@ -23,7 +23,8 @@ _require_test_program "punch-alternating"
> >  _require_xfs_io_error_injection "bmap_alloc_minlen_extent"
> >  
> >  echo "Format and mount fs"
> > -_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full
> > +_scratch_mkfs_sized $((1024 * 1024 * 1024)) >> $seqres.full \
> > +	|| _fail "mkfs failed"
> >  _scratch_mount >> $seqres.full
> >  
> >  # Disable realtime inherit flag (if any) on root directory so that space on data
> > -- 
> > 2.35.3
> > 
> > 
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs
  2024-04-11  6:32 [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs David Disseldorp
  2024-04-11  6:32 ` [PATCH 2/2] tests: _fail on _scratch_mkfs_sized failure David Disseldorp
  2024-04-12 15:44 ` [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs Darrick J. Wong
@ 2024-04-27  5:56 ` Christoph Hellwig
  2024-04-28  5:37 ` Zorro Lang
  3 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2024-04-27  5:56 UTC (permalink / raw)
  To: David Disseldorp; +Cc: fstests, linux-xfs

On Thu, Apr 11, 2024 at 04:32:33PM +1000, David Disseldorp wrote:
> As of xfsprogs commit 6e0ed3d1 ("mkfs: stop allowing tiny filesystems")
> attempts to create XFS filesystems sized under 300M fail, unless
> TEST_DIR, TEST_DEV and QA_CHECK_FS environment variables are exported
> (or a --unsupported mkfs parameter is provided).
> 
> TEST_DIR and QA_CHECK_FS are already exported, while TEST_DEV may only
> be locally set if provided via e.g. configs/$HOSTNAME.config. Explicitly
> export TEST_DEV to ensure that tests which call _scratch_mkfs_sized()
> with an fssize under 300M run normally.

As for fixing the immediate problem this looks fine:

Reviewed-by: Christoph Hellwig <hch@lst.de>

But adding the xfs list as allowing to create a smaller than supported
file system just for testing is pretty silly.  If we don't want to
support these tiny file systems, we should also not use them for
testing.  The best way to port over the existing tests to a larger
size would probably be to round up the size to the minimum supported
one and then fill the space?


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] tests: _fail on _scratch_mkfs_sized failure
  2024-04-12 19:28     ` Zorro Lang
@ 2024-04-27  5:58       ` Christoph Hellwig
  0 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2024-04-27  5:58 UTC (permalink / raw)
  To: Zorro Lang; +Cc: Darrick J. Wong, David Disseldorp, fstests

On Sat, Apr 13, 2024 at 03:28:31AM +0800, Zorro Lang wrote:
> > I wonder, how many tests should keep going if _scratch_mkfs_sized isn't
> > successful?  Would it be simpler to make a _try_scratch_mkfs_sized for
> > those callers, and make the main _scratch_mkfs_sized simply do
> > 
> > _scratch_mkfs_sized()
> > {
> > 	_try_scratch_mkfs_sized $* || _fail "_scratch_mkfs_sized failed"
> > }
> > 
> > ?
> 
> I agree with this. Actually I don't know what's kind of historical reasons
> make _scratch_mount _fail directly if mount fails, but _scratch_mkfs
> doesn't like that?

Agreed.  Unsupported mkfs should absolutely fail by default.  For some
tests instead of _fail it should be _notsupported, but that would be a
separate helper and between the two of them we'd cover almost all uses.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs
  2024-04-11  6:32 [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs David Disseldorp
                   ` (2 preceding siblings ...)
  2024-04-27  5:56 ` Christoph Hellwig
@ 2024-04-28  5:37 ` Zorro Lang
  2024-04-29 11:28   ` David Disseldorp
  3 siblings, 1 reply; 10+ messages in thread
From: Zorro Lang @ 2024-04-28  5:37 UTC (permalink / raw)
  To: David Disseldorp; +Cc: fstests

On Thu, Apr 11, 2024 at 04:32:33PM +1000, David Disseldorp wrote:
> As of xfsprogs commit 6e0ed3d1 ("mkfs: stop allowing tiny filesystems")
> attempts to create XFS filesystems sized under 300M fail, unless
> TEST_DIR, TEST_DEV and QA_CHECK_FS environment variables are exported
> (or a --unsupported mkfs parameter is provided).
> 
> TEST_DIR and QA_CHECK_FS are already exported, while TEST_DEV may only
> be locally set if provided via e.g. configs/$HOSTNAME.config. Explicitly
> export TEST_DEV to ensure that tests which call _scratch_mkfs_sized()
> with an fssize under 300M run normally.
> 
> Signed-off-by: David Disseldorp <ddiss@suse.de>
> ---

Actually, using "export" in xfstests/local.config for each parameter could
help too.

The 2nd patch still has some disagreement, I'll merge this patch at first,
as it's simple enough and got two RVBs.

Thanks,
Zorro

>  common/config | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/common/config b/common/config
> index 2a1434bb..4bd5650f 100644
> --- a/common/config
> +++ b/common/config
> @@ -932,6 +932,9 @@ else
>  fi
>  
>  _canonicalize_devices
> +# mkfs.xfs checks for TEST_DEV before permitting < 300M filesystems. TEST_DIR
> +# and QA_CHECK_FS are also checked by mkfs.xfs, but already exported elsewhere.
> +export TEST_DEV
>  
>  # make sure this script returns success
>  /bin/true
> -- 
> 2.35.3
> 
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs
  2024-04-28  5:37 ` Zorro Lang
@ 2024-04-29 11:28   ` David Disseldorp
  2024-04-29 13:37     ` Zorro Lang
  0 siblings, 1 reply; 10+ messages in thread
From: David Disseldorp @ 2024-04-29 11:28 UTC (permalink / raw)
  To: Zorro Lang; +Cc: fstests

On Sun, 28 Apr 2024 13:37:17 +0800, Zorro Lang wrote:

> On Thu, Apr 11, 2024 at 04:32:33PM +1000, David Disseldorp wrote:
> > As of xfsprogs commit 6e0ed3d1 ("mkfs: stop allowing tiny filesystems")
> > attempts to create XFS filesystems sized under 300M fail, unless
> > TEST_DIR, TEST_DEV and QA_CHECK_FS environment variables are exported
> > (or a --unsupported mkfs parameter is provided).
> > 
> > TEST_DIR and QA_CHECK_FS are already exported, while TEST_DEV may only
> > be locally set if provided via e.g. configs/$HOSTNAME.config. Explicitly
> > export TEST_DEV to ensure that tests which call _scratch_mkfs_sized()
> > with an fssize under 300M run normally.
> > 
> > Signed-off-by: David Disseldorp <ddiss@suse.de>
> > ---  
> 
> Actually, using "export" in xfstests/local.config for each parameter could
> help too.
> 
> The 2nd patch still has some disagreement, I'll merge this patch at first,
> as it's simple enough and got two RVBs.

Thanks. I'll send an updated 2/2 today following Darrick's suggestion of
_try_scratch_mkfs_sized $* || _fail

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs
  2024-04-29 11:28   ` David Disseldorp
@ 2024-04-29 13:37     ` Zorro Lang
  0 siblings, 0 replies; 10+ messages in thread
From: Zorro Lang @ 2024-04-29 13:37 UTC (permalink / raw)
  To: David Disseldorp; +Cc: fstests

On Mon, Apr 29, 2024 at 09:28:45PM +1000, David Disseldorp wrote:
> On Sun, 28 Apr 2024 13:37:17 +0800, Zorro Lang wrote:
> 
> > On Thu, Apr 11, 2024 at 04:32:33PM +1000, David Disseldorp wrote:
> > > As of xfsprogs commit 6e0ed3d1 ("mkfs: stop allowing tiny filesystems")
> > > attempts to create XFS filesystems sized under 300M fail, unless
> > > TEST_DIR, TEST_DEV and QA_CHECK_FS environment variables are exported
> > > (or a --unsupported mkfs parameter is provided).
> > > 
> > > TEST_DIR and QA_CHECK_FS are already exported, while TEST_DEV may only
> > > be locally set if provided via e.g. configs/$HOSTNAME.config. Explicitly
> > > export TEST_DEV to ensure that tests which call _scratch_mkfs_sized()
> > > with an fssize under 300M run normally.
> > > 
> > > Signed-off-by: David Disseldorp <ddiss@suse.de>
> > > ---  
> > 
> > Actually, using "export" in xfstests/local.config for each parameter could
> > help too.
> > 
> > The 2nd patch still has some disagreement, I'll merge this patch at first,
> > as it's simple enough and got two RVBs.
> 
> Thanks. I'll send an updated 2/2 today following Darrick's suggestion of
> _try_scratch_mkfs_sized $* || _fail

Thanks for doing it :)

I'm wondering if we could change all _scratch_mkfs and _scratch_mkfs_xxx helpers
like that. But we can change _scratch_mkfs_sized at first, then other _scratch_mkfs_xxx
helpers, then _scratch_mkfs itself.

At the same time, please don't forgot those cases do "_scratch_mkfs_xxx ... | _fail ...".

Thanks,
Zorro

> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-04-29 13:37 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-11  6:32 [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs David Disseldorp
2024-04-11  6:32 ` [PATCH 2/2] tests: _fail on _scratch_mkfs_sized failure David Disseldorp
2024-04-12 15:48   ` Darrick J. Wong
2024-04-12 19:28     ` Zorro Lang
2024-04-27  5:58       ` Christoph Hellwig
2024-04-12 15:44 ` [PATCH 1/2] common/config: export TEST_DEV for mkfs.xfs Darrick J. Wong
2024-04-27  5:56 ` Christoph Hellwig
2024-04-28  5:37 ` Zorro Lang
2024-04-29 11:28   ` David Disseldorp
2024-04-29 13:37     ` Zorro Lang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.