From: Eryu Guan <eguan@redhat.com>
To: Qu Wenruo <quwenruo@cn.fujitsu.com>
Cc: linux-btrfs@vger.kernel.org, fstests@vger.kernel.org
Subject: Re: [PATCH] fstests: common: Enhance _exclude_scratch_mount_option to handle multiply options and generic fs type
Date: Wed, 7 Sep 2016 12:07:47 +0800 [thread overview]
Message-ID: <20160907040747.GP27776@eguan.usersys.redhat.com> (raw)
In-Reply-To: <1bdfe67d-17ca-c95b-a10d-f9ac072b1aca@cn.fujitsu.com>
On Tue, Sep 06, 2016 at 01:06:39PM +0800, Qu Wenruo wrote:
>
>
> At 09/06/2016 12:20 PM, Eryu Guan wrote:
> > On Mon, Sep 05, 2016 at 03:13:33PM +0800, Qu Wenruo wrote:
> > > Enhance _exclude_scratch_mount_option() function to get real mount
> > > options from $MOUNT_OPTIONS.
> >
> > This seems unnecessarily complex to me.
>
> Considering the fact that we didn't specify any other options except -o,
> yes, it's a quite complex than original one.
>
> But, it's still needed for case like "-oopt3" can't be handled by "grep -w",
> as there is no space between "-o" and "opt3".
>
> >
> > >
> > > Now it can understand and extract real mount option from string like
> > > "-o opt1,opt2 -oopt3".
> > > Furthermore, it doesn't use grep method, which can lead to false alert
> > > for options like inode_cache and noinode_cache.
> > > It now do compare with the first n characters of the prohibited list,
> > > so it can handle "data=" and above "no" prefix well.
> >
> > I think we can fix it by adding "-w" option to grep, and replacing
> > "data=" with "data", "=" seems not necessary.
>
> In that case, "-oopt3" can't be handled by "-w" option.
Ah, I missed that. Then "normalize" MOUNT_OPTIONS first should be OK,
like what you do in this patch.
>
> >
> > >
> > > And add a new parameter, 'fstype' for _exclude_scratch_mount_option().
> > > So for generic test cases, it can still prohibit mount options for given
> > > fs(mainly for btrfs though)
> >
> > This requires every caller of this helper provides an additional fstype
> > argument, and in most cases this argument is not useful (generic or
> > current FSTYP). If btrfs needs to be handled differently, how about
> > checking the fstype in the test and adding additional mount option rules
> > if fstype is btrfs?
>
> Currently, only 2 callers in fact. ext4/271 and xfs/134.
> So the cost is still quite low to add a 'fstype'.
I mean in most cases the fstype is not useful, not only to existing
callers but also to future callers. We can always add special-case when
needed for a certain fstype.
And there're other callers outside of test case, e.g.
_require_metadata_journaling()
_require_atime()
where you have no idea which filesystem is under testing.
>
> The main object is, to info reviewer or testcase writer which fs type needs
> special handling.
>
> Considering not every contributor will add comment about excluded mount
> options, and in case generic test cases needs to exclude one mount option
> for given fstype, it will be quite hard to find the reason.
>
> So with new fstype parameter, at least we known which fstype is to be blame.
> (Although, it will be btrfs for most of time)
Reviewers and maintainers should ask for comments to explain the reason
why a certain mount option is excluded. So I'd suggest something
like(not tested)
# skip test if MOUNT_OPTIONS contains the given mount options
_exclude_scratch_mount_option()
{
local opts=`echo $MOUNT_OPTIONS | sed 's/-o/ /g'`
for opt in $*; do
if echo $opts | grep -qw "$opt"; then
_notrun "mount option \"$opt\" not allowed in this test"
fi
done
}
And in normal case, we do
# exclude mount option xxx because ...
_exclude_scratch_mount_option "opt1" "opt2"
And when btrfs needs special handling
# comments to explain why btrfs needs special handling
if [ "$FSTYP" == "btrfs" ]; then
_exclude_scratch_mount_option "opt1" "opt2"
fi
Thanks,
Eryu
next prev parent reply other threads:[~2016-09-07 4:07 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-05 7:13 [PATCH] fstests: common: Enhance _exclude_scratch_mount_option to handle multiply options and generic fs type Qu Wenruo
[not found] ` <20160906042039.GN27776@eguan.usersys.redhat.com>
2016-09-07 5:33 ` Dave Chinner
[not found] ` <1bdfe67d-17ca-c95b-a10d-f9ac072b1aca@cn.fujitsu.com>
2016-09-07 4:07 ` Eryu Guan [this message]
2016-09-07 5:37 ` Dave Chinner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160907040747.GP27776@eguan.usersys.redhat.com \
--to=eguan@redhat.com \
--cc=fstests@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=quwenruo@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).