On Thu, Jan 11, 2018 at 08:16:18PM -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 v3: > * XFS FS check in _require_no_rtinherit > * Fixed comment for _require_no_rtinherit to reflect (reworked) function > > 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 | 10 ++++++++++ > tests/generic/250 | 3 +++ > tests/generic/252 | 3 +++ > tests/generic/441 | 3 +++ > tests/xfs/170 | 1 + > 5 files changed, 20 insertions(+) > > diff --git a/common/rc b/common/rc > index 76f9d69..cceabce 100644 > --- a/common/rc > +++ b/common/rc > @@ -33,6 +33,16 @@ BC=$(which bc 2> /dev/null) || BC= > VALID_TEST_ID="[0-9]\{3\}" > VALID_TEST_NAME="$VALID_TEST_ID-\?[[:alnum:]-]*" > > +# Some tests are not relevant or functional when testing XFS realtime > +# subvolumes along with the rtinherit=1 mkfs option. In these cases, > +# this test will opt-out of the test. > +_require_no_rtinherit() > +{ > + [ "$FSTYP" = "xfs" ] && echo "$MKFS_OPTIONS" | Trailing whitespace in above line :) > + egrep -q "rtinherit([^=]|=1)" && \ Hmm, this works with "-drtinherit=1" and "-drtinherit,<other opts>" but fails to detect the "-d rtinherit" case, because the regexp expects some character after "rtinherit". I think this change could fix it: - egrep -q "rtinherit([^=]|=1)" && \ + egrep -q "rtinherit([^=]|=1|$)" && \ If this looks ok to you, I can fix it on commit (along with the whitespace issue). Thanks, Eryu > + _notrun "rtinherit mkfs option is not supported by this test." > +} > + > _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