mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
generic/{094,225}: skip test when the xfs rt extent size is larger than 1 fsb
These two tests call various fallocate modes on a file and compare the FIEMAP output to some golden output. Unfortunately, the golden output doesn't take into account the possibility that (on XFS) the files could be created on a realtime volume with a large rt extent size set. Under such a configuration, fpunch operations that are aligned to the fs block size but not the rt extent size simply result in those blocks being set to unwritten status. Unfortunately, the test expects holes and fails. Therefore, detect the situation and skip the tests. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
committed by
Eryu Guan
parent
a2330d65ff
commit
97dd2c3a6a
@@ -4131,6 +4131,16 @@ _get_block_size()
|
||||
stat -f -c %S $1
|
||||
}
|
||||
|
||||
# Require that the fundamental allocation unit of a file is the same as the
|
||||
# filesystem block size.
|
||||
_require_file_block_size_equals_fs_block_size()
|
||||
{
|
||||
local file_alloc_unit="$(_get_file_block_size $1)"
|
||||
local fs_block_size="$(_get_block_size $1)"
|
||||
test "$file_alloc_unit" != "$fs_block_size" && \
|
||||
_notrun "File allocation unit is larger than a filesystem block"
|
||||
}
|
||||
|
||||
get_page_size()
|
||||
{
|
||||
echo $(getconf PAGE_SIZE)
|
||||
|
||||
@@ -40,6 +40,11 @@ fiemapfile=$SCRATCH_MNT/$seq.fiemap
|
||||
|
||||
_require_test_program "fiemap-tester"
|
||||
|
||||
# FIEMAP test doesn't like finding unwritten blocks after it punches out
|
||||
# a partial rt extent.
|
||||
test "$FSTYP" = "xfs" && \
|
||||
_require_file_block_size_equals_fs_block_size $fiemapfile
|
||||
|
||||
seed=`date +%s`
|
||||
|
||||
echo "using seed $seed" >> $seqres.full
|
||||
|
||||
@@ -40,6 +40,11 @@ fiemaplog=$SCRATCH_MNT/$seq.log
|
||||
|
||||
_require_test_program "fiemap-tester"
|
||||
|
||||
# FIEMAP test doesn't like finding unwritten blocks after it punches out
|
||||
# a partial rt extent.
|
||||
test "$FSTYP" = "xfs" && \
|
||||
_require_file_block_size_equals_fs_block_size $fiemapfile
|
||||
|
||||
seed=`date +%s`
|
||||
|
||||
echo "using seed $seed" >> $fiemaplog
|
||||
|
||||
Reference in New Issue
Block a user