aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Albershteyn <aalbersh@redhat.com>2023-09-11 22:06:17 +0200
committerZorro Lang <zlang@kernel.org>2023-09-20 15:49:54 +0800
commit566fc79138eff6bc4bda5d63962bbcb1e366e684 (patch)
treeb8e8b4c48abf00d602d213380b7eaec7a9989154
parentf738aca836ad4f6b96673831f28613d8105b5fba (diff)
downloadxfstests-dev-566fc79138eff6bc4bda5d63962bbcb1e366e684.tar.gz
common/rc: make _get_max_file_size find file size on mount point
Currently, _get_max_file_size finds max file size on $TEST_DIR. The tests/generic/692 uses this function to detect file size and then tries to create a file on $SCRATCH_MNT. This works fine when test and scratch filesystems have the same block size. However, it will fail if they differ. Make _get_max_file_size accept mount point on which to detect max file size. Signed-off-by: Andrey Albershteyn <aalbersh@redhat.com> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> Signed-off-by: Zorro Lang <zlang@kernel.org>
-rw-r--r--common/rc8
-rwxr-xr-xtests/generic/2992
-rwxr-xr-xtests/generic/4852
-rwxr-xr-xtests/generic/6922
4 files changed, 10 insertions, 4 deletions
diff --git a/common/rc b/common/rc
index a438a8de14..76a7e77403 100644
--- a/common/rc
+++ b/common/rc
@@ -4828,7 +4828,13 @@ _require_scratch_feature()
# be UINT32_MAX * block_size, but other filesystems may allow up to LLONG_MAX.
_get_max_file_size()
{
- local testfile=$TEST_DIR/maxfilesize.$seq
+ if [ -z $1 ] || [ ! -d $1 ]; then
+ echo "Missing mount point argument for _get_max_file_size"
+ exit 1
+ fi
+
+ local mnt=$1
+ local testfile=$mnt/maxfilesize.$seq
local l=0
local r=9223372036854775807 # LLONG_MAX
diff --git a/tests/generic/299 b/tests/generic/299
index d8ecff5384..0cd122029a 100755
--- a/tests/generic/299
+++ b/tests/generic/299
@@ -30,7 +30,7 @@ NUM_JOBS=$((4*LOAD_FACTOR))
BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV`
FILE_SIZE=$((BLK_DEV_SIZE * 512))
-max_file_size=$(_get_max_file_size)
+max_file_size=$(_get_max_file_size $TEST_DIR)
if [ $max_file_size -lt $FILE_SIZE ]; then
FILE_SIZE=$max_file_size
fi
diff --git a/tests/generic/485 b/tests/generic/485
index 3f7749ffd1..8bab450ba3 100755
--- a/tests/generic/485
+++ b/tests/generic/485
@@ -30,7 +30,7 @@ _require_xfs_io_command "finsert"
_require_xfs_io_command "truncate"
block_size=$(_get_file_block_size $TEST_DIR)
-max_file_size=$(_get_max_file_size)
+max_file_size=$(_get_max_file_size $TEST_DIR)
max_blocks=$((max_file_size / block_size))
testfile=$TEST_DIR/testfile.$seq
diff --git a/tests/generic/692 b/tests/generic/692
index 95f6ec04a4..3fb8ac01af 100755
--- a/tests/generic/692
+++ b/tests/generic/692
@@ -40,7 +40,7 @@ _scratch_mount
fsv_file=$SCRATCH_MNT/file.fsv
-max_sz=$(_get_max_file_size)
+max_sz=$(_get_max_file_size $SCRATCH_MNT)
_fsv_scratch_begin_subtest "way too big: fail on first merkle block"
truncate -s $max_sz $fsv_file
_fsv_enable $fsv_file |& _filter_scratch