On Wed, Jul 21, 2021 at 10:57:58AM +0530, Ritesh Harjani wrote: > This test fails with blocksize 64k since the test assumes 4k blocksize > in fcollapse param. This patch fixes that and also tests for 64k > blocksize. > > Signed-off-by: Ritesh Harjani <riteshh@xxxxxxxxxxxxx> > --- > tests/generic/031 | 14 +++++++++----- > tests/generic/031.out | 16 ++++++++-------- > 2 files changed, 17 insertions(+), 13 deletions(-) > > diff --git a/tests/generic/031 b/tests/generic/031 > index 313ce9ff..11961c54 100755 > --- a/tests/generic/031 > +++ b/tests/generic/031 > @@ -26,11 +26,16 @@ testfile=$SCRATCH_MNT/testfile > _scratch_mkfs > /dev/null 2>&1 > _scratch_mount > > +# fcollapse need offset and len to be multiple of blocksize for filesystems > +# So let's make the offsets and len required for fcollapse multiples of 64K > +# so that it works for all configurations (including on dax on 64K page size > +# systems) > +fact=$((65536/4096)) > $XFS_IO_PROG -f \ > - -c "pwrite 185332 55756" \ > - -c "fcollapse 28672 40960" \ > - -c "pwrite 133228 63394" \ > - -c "fcollapse 0 4096" \ > + -c "pwrite $((185332*fact + 12)) $((55756*fact + 12))" \ Where does this 12 come from? And I'm wondering if this still reproduces the original bug. And looks like that the original test setups came from a specific fsstress or fsx run, and aimed to the specific bug, perhaps we could require the test with <= 4k block size, and _notrun in 64k case. Thanks, Eryu > + -c "fcollapse $((28672 * fact)) $((40960 * fact))" \ > + -c "pwrite $((133228 * fact + 12)) $((63394 * fact + 12))" \ > + -c "fcollapse 0 $((4096 * fact))" \ > $testfile | _filter_xfs_io > > echo "==== Pre-Remount ===" > @@ -41,4 +46,3 @@ hexdump -C $testfile > > status=0 > exit > - > diff --git a/tests/generic/031.out b/tests/generic/031.out > index 194bfa45..7dfcfe41 100644 > --- a/tests/generic/031.out > +++ b/tests/generic/031.out > @@ -1,19 +1,19 @@ > QA output created by 031 > -wrote 55756/55756 bytes at offset 185332 > +wrote 892108/892108 bytes at offset 2965324 > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 63394/63394 bytes at offset 133228 > +wrote 1014316/1014316 bytes at offset 2131660 > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > ==== Pre-Remount === > 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| > * > -0001f860 00 00 00 00 00 00 00 00 00 00 00 00 cd cd cd cd |................| > -0001f870 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd |................| > +001f86c0 00 00 00 00 00 00 00 00 00 00 00 00 cd cd cd cd |................| > +001f86d0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd |................| > * > -0002fdc0 > +002fdc18 > ==== Post-Remount == > 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| > * > -0001f860 00 00 00 00 00 00 00 00 00 00 00 00 cd cd cd cd |................| > -0001f870 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd |................| > +001f86c0 00 00 00 00 00 00 00 00 00 00 00 00 cd cd cd cd |................| > +001f86d0 cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd cd |................| > * > -0002fdc0 > +002fdc18 > -- > 2.31.1