On Sat, Mar 07, 2020 at 01:44:07AM +0100, Anthony Iliopoulos wrote: > The minimum accepted allocsize mount option value is page size, which > causes the particular test to fail in architectures where page size > > block size. Fix it by basing the value on the platform page size rather > than the block size as obtained from mkfs. In addition add a filter so > that different values can be used without breaking the golden output. > > Signed-off-by: Anthony Iliopoulos <ailiopoulos@xxxxxxxx> > --- Hi, Thanks for this patch, I've forgotten that I tried to fix it: https://marc.info/?l=fstests&m=158250811523489&w=2 And looks like Eryu prefer filtering the PAGESIZE, he might like to merge this one:) The patch looks good to me, only one slight thing. The filter_pagesz() is not used to filter "$pagesize" itself, it filters "allocsize=$pagesize" actually. So how about name it as filter_xfs_options (or something like that), then we might add more lines(filter) in it later? Thanks, Zorro > tests/xfs/513 | 14 ++++++++++---- > tests/xfs/513.out | 2 +- > 2 files changed, 11 insertions(+), 5 deletions(-) > > diff --git a/tests/xfs/513 b/tests/xfs/513 > index 70bc2f1c..2c2c0404 100755 > --- a/tests/xfs/513 > +++ b/tests/xfs/513 > @@ -68,6 +68,11 @@ filter_loop() > -e "s,\B$LOOP_SPARE_DEV,LOOP_SPARE_DEV,g" > } > > +filter_pagesz() > +{ > + sed -e "s,allocsize=$pagesz,allocsize=PAGE_SIZE,g" > +} > + > # avoid the effection from MKFS_OPTIONS > MKFS_OPTIONS="" > do_mkfs() > @@ -165,7 +170,7 @@ do_test() > # Print each argument, include nil ones > echo -n "TEST:" | tee -a $seqres.full > for i in "$@";do > - echo -n " \"$i\"" | filter_loop | tee -a $seqres.full > + echo -n " \"$i\"" | filter_loop | filter_pagesz | tee -a $seqres.full > done > echo | tee -a $seqres.full > > @@ -180,11 +185,12 @@ echo "** start xfs mount testing ..." > # Test allocsize=size > # Valid values for this option are page size (typically 4KiB) through to 1GiB > do_mkfs > -if [ $dbsize -ge 1024 ];then > - blsize="$((dbsize / 1024))k" > +pagesz=$(get_page_size) > +if [ $pagesz -ge 1024 ];then > + pagesz="$((pagesz / 1024))k" > fi > do_test "" pass "allocsize" "false" > -do_test "-o allocsize=$blsize" pass "allocsize=$blsize" "true" > +do_test "-o allocsize=$pagesz" pass "allocsize=$pagesz" "true" > do_test "-o allocsize=1048576k" pass "allocsize=1048576k" "true" > do_test "-o allocsize=$((dbsize / 2))" fail > do_test "-o allocsize=2g" fail > diff --git a/tests/xfs/513.out b/tests/xfs/513.out > index 9be18dd8..f676a289 100644 > --- a/tests/xfs/513.out > +++ b/tests/xfs/513.out > @@ -5,7 +5,7 @@ QA output created by 513 > ** start xfs mount testing ... > FORMAT: > TEST: "" "pass" "allocsize" "false" > -TEST: "-o allocsize=4k" "pass" "allocsize=4k" "true" > +TEST: "-o allocsize=PAGE_SIZE" "pass" "allocsize=PAGE_SIZE" "true" > TEST: "-o allocsize=1048576k" "pass" "allocsize=1048576k" "true" > TEST: "-o allocsize=2048" "fail" > TEST: "-o allocsize=2g" "fail" > -- > 2.16.4 >