On Thu, Dec 12, 2013 at 10:01:30AM -0800, Christoph Hellwig wrote:
> On Thu, Dec 12, 2013 at 09:40:12AM +1100, Dave Chinner wrote:
> > IOWs, adding tmpfs changes the definition of a "generic" test.
> > i.e. instead of:
> > _supported_fs generic
> > these tests are now:
> > _supported_fs xfs ext2 ext3 ext4 ext4dev btrfs gfs2 nfs udf reiserfs
> > and by that definition should be in the tests/shared directory....
> > That's a bit of a pain, but I really don't like the idea of having
> > "generic" tests that aren't actually generic by having to define
> > exceptions for them...
> We already have tons of these:
Yes, but that's not the same situation as tmpfs here. A generic
filesystem fits a certain model but the given configuration/kernel
does not necessarily support the feature being tested. Those
features are easily testable by a _requires_* line.
This case with tmpfs is different - it doesn't support *being
unmounted* during a test because it is volatile. That's a
fundamental change to the assumptions xfstests makes about
filesystems being tested. IOWs, we've got a "generic" filesystem
that is anything but generic.
Adding "_requires_non_volatile_fs" to all the generic tests that do
an unmount so that tmpfs can be considered "generic" is just as
painful as modifying the "_supported_fs generic" lines in all the
tests. It just leads us to a game of whack-a-mole.
I don't know what the solution here is - everything I think of is
either messy, ugly or unmaintainable. All I'm trying to do is find a
way to handle tmpfs filesystems in a way that is maintainable and
doesn't require every developer to be aware of the quirks of tmpfs
when writing and reviewing new generic tests....