On Wed, Jan 10, 2018 at 07:09:00PM -0800, Richard Wareing wrote: > To better exercise the data path code of realtime subvolumes, we will > set rtinherit=1 during mkfs calls. For tests which this is not desired > we introduce a _require_no_rtinherit function to opt out of this > behavior. > > Signed-off-by: Richard Wareing <rwareing@xxxxxx> > --- > Changes since v2: > * Removed use of RT_INHERT, instead we now simply bail from the test. Users > will have to create two separate configs for realtime one with rtinherit=1 > in the mkfs options, one without and do separate runs to get full test > coverage. > * Added comments explaining reasons for _require_no_rtinherit declarations > > Changes since v1: > * None > > common/rc | 11 +++++++++++ > tests/generic/250 | 3 +++ > tests/generic/252 | 3 +++ > tests/generic/441 | 3 +++ > tests/xfs/170 | 1 + > 5 files changed, 21 insertions(+) > > diff --git a/common/rc b/common/rc > index f5fe739..1720a72 100644 > --- a/common/rc > +++ b/common/rc > @@ -33,6 +33,17 @@ BC=$(which bc 2> /dev/null) || BC= > VALID_TEST_ID="[0-9]\{3\}" > VALID_TEST_NAME="$VALID_TEST_ID-\?[[:alnum:]-]*" > > +# When running tests with a realtime device configured, the realtime inherit > +# flag will be set during mkfs via -d rtinherit=1 option. For some tests > +# this may render the test invalid (i.e. it uses a function which is not > +# supported by the realtime subvolume); to prevent failure these tests may > +# disable this behavior by calling _require_no_rtinherit . > +_require_no_rtinherit() > +{ > + echo "$MKFS_OPTIONS" | egrep -q "rtinherit([^=]|=1)" && \ > + _notrun "rtinherit mkfs option is not supported by this test." It's worth checking that FSTYP==xfs since this feature only exists in xfs. --D > +} > + > _require_math() > { > if [ -z "$BC" ]; then > diff --git a/tests/generic/250 b/tests/generic/250 > index 3c4fe6d..a8fd97e 100755 > --- a/tests/generic/250 > +++ b/tests/generic/250 > @@ -48,6 +48,9 @@ _require_scratch > _require_dm_target error > _require_xfs_io_command "falloc" > _require_odirect > +# This test uses "dm" without taking into account the data could be on > +# realtime subvolume, thus the test will fail with rtinherit=1 > +_require_no_rtinherit > > rm -f $seqres.full > > diff --git a/tests/generic/252 b/tests/generic/252 > index ffedd56..b506d59 100755 > --- a/tests/generic/252 > +++ b/tests/generic/252 > @@ -47,6 +47,9 @@ _supported_os Linux > _require_scratch > _require_dm_target error > _require_xfs_io_command "falloc" > +# This test uses "dm" without taking into account the data could be on > +# realtime subvolume, thus the test will fail with rtinherit=1 > +_require_no_rtinherit > _require_aiodio "aiocp" > AIO_TEST="src/aio-dio-regress/aiocp" > > diff --git a/tests/generic/441 b/tests/generic/441 > index 075d877..5fbfece 100755 > --- a/tests/generic/441 > +++ b/tests/generic/441 > @@ -47,6 +47,9 @@ _cleanup() > # real QA test starts here > _supported_os Linux > _require_scratch > +# This test uses "dm" without taking into account the data could be on > +# realtime subvolume, thus the test will fail with rtinherit=1 > +_require_no_rtinherit > > # Generally, we want to avoid journal errors on the extended testcase. Only > # unset the -s flag if we have a logdev > diff --git a/tests/xfs/170 b/tests/xfs/170 > index c5ae8e4..6deef1b 100755 > --- a/tests/xfs/170 > +++ b/tests/xfs/170 > @@ -50,6 +50,7 @@ _supported_fs xfs > _supported_os Linux > > _require_scratch > +_require_no_rtinherit > > _check_filestreams_support || _notrun "filestreams not available" > > -- > 2.9.5 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html