Message ID | 20220601063730.1726879-2-zlang@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | random fixes for fstests | expand |
On Wed, Jun 01, 2022 at 02:37:26PM +0800, Zorro Lang wrote: > Due to generic/139 tests base on 512 bytes aligned, so skip this test > if the minimum dio write size >512. This patch also change the > common/rc::_require_dio helper, supports a minimum aligned size > argument. > > Signed-off-by: Zorro Lang <zlang@kernel.org> > --- > common/rc | 17 ++++++++++++++--- > tests/generic/139 | 2 +- > 2 files changed, 15 insertions(+), 4 deletions(-) > > diff --git a/common/rc b/common/rc > index 2f31ca46..6d384eaf 100644 > --- a/common/rc > +++ b/common/rc > @@ -2721,9 +2721,12 @@ _require_xfs_io_command() > fi > } > > -# check that kernel and filesystem support direct I/O > +# check that kernel and filesystem support direct I/O, and check if "$1" size > +# aligned (optional) is supported > _require_odirect() > { > + local alignment=${1:+"-b $1"} > + > if [ $FSTYP = "ext4" ] || [ $FSTYP = "f2fs" ] ; then > if echo "$MOUNT_OPTIONS" | grep -q "test_dummy_encryption"; then > _notrun "$FSTYP encryption doesn't support O_DIRECT" > @@ -2735,9 +2738,17 @@ _require_odirect() > fi > fi > local testfile=$TEST_DIR/$$.direct > - $XFS_IO_PROG -F -f -d -c "pwrite 0 20k" $testfile > /dev/null 2>&1 > + local opt > + if [ -n "$1" ];then > + opt="-b $1" > + fi Doesn't this duplicate the assignment of @alignment above? --D > + $XFS_IO_PROG -F -f -d -c "pwrite $opt 0 20k" $testfile > /dev/null 2>&1 > if [ $? -ne 0 ]; then > - _notrun "O_DIRECT is not supported" > + if [ -n "$alignment" ]; then > + _notrun "O_DIRECT aligned to $1 bytes is not supported" > + else > + _notrun "O_DIRECT is not supported" > + fi > fi > rm -f $testfile 2>&1 > /dev/null > } > diff --git a/tests/generic/139 b/tests/generic/139 > index 0bbc222c..3eb1519d 100755 > --- a/tests/generic/139 > +++ b/tests/generic/139 > @@ -26,7 +26,7 @@ _cleanup() > # real QA test starts here > _require_test_reflink > _require_cp_reflink > -_require_odirect > +_require_odirect 512 > > testdir=$TEST_DIR/test-$seq > rm -rf $testdir > -- > 2.31.1 >
diff --git a/common/rc b/common/rc index 2f31ca46..6d384eaf 100644 --- a/common/rc +++ b/common/rc @@ -2721,9 +2721,12 @@ _require_xfs_io_command() fi } -# check that kernel and filesystem support direct I/O +# check that kernel and filesystem support direct I/O, and check if "$1" size +# aligned (optional) is supported _require_odirect() { + local alignment=${1:+"-b $1"} + if [ $FSTYP = "ext4" ] || [ $FSTYP = "f2fs" ] ; then if echo "$MOUNT_OPTIONS" | grep -q "test_dummy_encryption"; then _notrun "$FSTYP encryption doesn't support O_DIRECT" @@ -2735,9 +2738,17 @@ _require_odirect() fi fi local testfile=$TEST_DIR/$$.direct - $XFS_IO_PROG -F -f -d -c "pwrite 0 20k" $testfile > /dev/null 2>&1 + local opt + if [ -n "$1" ];then + opt="-b $1" + fi + $XFS_IO_PROG -F -f -d -c "pwrite $opt 0 20k" $testfile > /dev/null 2>&1 if [ $? -ne 0 ]; then - _notrun "O_DIRECT is not supported" + if [ -n "$alignment" ]; then + _notrun "O_DIRECT aligned to $1 bytes is not supported" + else + _notrun "O_DIRECT is not supported" + fi fi rm -f $testfile 2>&1 > /dev/null } diff --git a/tests/generic/139 b/tests/generic/139 index 0bbc222c..3eb1519d 100755 --- a/tests/generic/139 +++ b/tests/generic/139 @@ -26,7 +26,7 @@ _cleanup() # real QA test starts here _require_test_reflink _require_cp_reflink -_require_odirect +_require_odirect 512 testdir=$TEST_DIR/test-$seq rm -rf $testdir
Due to generic/139 tests base on 512 bytes aligned, so skip this test if the minimum dio write size >512. This patch also change the common/rc::_require_dio helper, supports a minimum aligned size argument. Signed-off-by: Zorro Lang <zlang@kernel.org> --- common/rc | 17 ++++++++++++++--- tests/generic/139 | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-)