Message ID | 163045517173.771564.1524162806861567173.stgit@magnolia (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | fstests: document all test groups | expand |
On Wed, Sep 1, 2021 at 3:37 AM Darrick J. Wong <djwong@kernel.org> wrote: > > From: Darrick J. Wong <djwong@kernel.org> > > Create a file to document the purpose of each test group that is > currently defined in fstests, and add a build script to check that every > group mentioned in the tests is also mentioned in the documentation. > This is awesome and long due. Thanks for doing that! Minor nits about overlayfs groups below... > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > --- > doc/group-names.txt | 136 ++++++++++++++++++++++++++++++++++++++++++++++++ > include/buildgrouplist | 1 > tools/check-groups | 33 ++++++++++++ > 3 files changed, 170 insertions(+) > create mode 100644 doc/group-names.txt > create mode 100755 tools/check-groups > > > diff --git a/doc/group-names.txt b/doc/group-names.txt > new file mode 100644 > index 00000000..ae517328 > --- /dev/null > +++ b/doc/group-names.txt > @@ -0,0 +1,136 @@ > +======================= ======================================================= > +Group Name: Description: > +======================= ======================================================= > +all All known tests, automatically generated by ./check at > + runtime > +auto Tests that should be run automatically. These should > + not require more than ~5 minutes to run. > +quick Tests that should run in under 30 seconds. > +deprecated Old tests that should not be run. > + > +acl Access Control Lists > +admin xfs_admin functionality > +aio general libaio async io tests > +atime file access time > +attr extended attributes > +attr2 xfs v2 extended aributes > +balance btrfs tree rebalance > +bigtime timestamps beyond the year 2038 > +blockdev block device functionality > +broken broken tests > +cap Linux capabilities > +casefold directory name casefolding > +ci ASCII case-insensitive directory name lookups > +clone FICLONE/FICLONERANGE ioctls > +clone_stress stress testing FICLONE/FICLONERANGE > +collapse fallocate collapse_range > +compress file compression > +convert btrfs ext[34] conversion tool > +copy xfs_copy functionality > +copy_range copy_file_range syscall > +copyup overlayfs copyup support The tests in this group exercise copy up. There is no such thing as overlayfs without "copyup support", so guess my point is - remove the word "support" > +dangerous dangerous test that can crash the system > +dangerous_bothrepair fuzzers to evaluate xfs_scrub + xfs_repair repair > +dangerous_fuzzers fuzzers that can crash your computer > +dangerous_norepair fuzzers to evaluate kernel metadata verifiers > +dangerous_online_repair fuzzers to evaluate xfs_scrub online repair > +dangerous_repair fuzzers to evaluate xfs_repair offline repair > +dangerous_scrub fuzzers to evaluate xfs_scrub checking > +data data loss checkers > +dax direct access mode for persistent memory files > +db xfs_db functional tests > +dedupe FIEDEDUPERANGE ioctl > +defrag filesystem defragmenters > +dir directory test functions > +dump dump and restore utilities > +eio IO error reporting > +encrypt encrypted file contents > +enospc ENOSPC error reporting > +exportfs file handles > +filestreams XFS filestreams allocator > +freeze filesystem freeze tests > +fsck general fsck tests > +fsmap FS_IOC_GETFSMAP ioctl > +fsr XFS free space reorganizer > +fuzzers filesystem fuzz tests > +growfs increasing the size of a filesystem > +hardlink hardlinks > +health XFS health reporting > +idmapped idmapped mount functionality > +inobtcount XFS inode btree count tests > +insert fallocate insert_range > +ioctl general ioctl tests > +io_uring general io_uring async io tests > +label filesystem labelling > +limit resource limits > +locks file locking > +log metadata logging > +logprint xfs_logprint functional tests > +long_rw long-soak read write IO path exercisers > +metacopy overlayfs metadata-only copy-up > +metadata filesystem metadata update exercisers > +metadump xfs_metadump/xfs_mdrestore functionality > +mkfs filesystem formatting tools > +mount mount option and functionality checks > +nested nested overlayfs instances > +nfs4_acl NFSv4 access control lists > +nonsamefs overlayfs layers on different filesystems > +online_repair online repair functionality tests > +other dumping ground, do not add more tests to this group > +overlay using overlayfs on top of FSTYP This description is a bit confusing, because the recommended way to run overlayfs tests as described in README.overlay is to set FSTYP=xfs and run ./check -overlay I'm struggling for a better description but perhaps: "using overlayfs regardless of ./check -overlay flag"? > +pattern specific IO pattern tests > +perms access control and permission checking > +pipe pipe functionality > +pnfs PNFS > +posix POSIX behavior conformance > +prealloc fallocate > +preallocrw fallocate, then read and write > +punch fallocate punch_hole > +qgroup btrfs qgroup feature > +quota filesystem usage quotas > +raid btrfs RAID > +realtime XFS realtime volumes > +recoveryloop crash recovery loops > +redirect overlayfs redirect_dir feature > +remote dump and restore with a remote tape > +remount remounting filesystems > +rename rename system call > +repair xfs_repair functional tests > +replace btrfs device replace > +replay dm-logwrites replays > +resize resize2fs functionality tests > +richacl rich ACL feature > +rmap XFS reverse mapping exercisers > +rotate overlayfs feature of some sort" I guess that works :-D but to be accurate, this is actually a unionmount testsuite feature - at selected test points in the workload, a new upper layer is stacked on to overlayfs, so maybe: "upper layer rotate tests from the unionmount test suite"? > +rw read/write IO tests > +samefs overlayfs when all layers are on the same fs > +scrub filesystem metadata scrubbers > +seed btrfs seeded filesystems > +seek llseek functionality > +send btrfs send/receive > +shrinkfs decreasing the size of a filesystem > +shutdown FS_IOC_SHUTDOWN ioctl > +snapshot btrfs snapshots > +soak long soak tests of any kind > +spaceman xfs_spaceman functional tests > +splice splice system call > +stress fsstress filesystem exerciser > +subvol btrfs subvolumes > +subvolume btrfs subvolumes (again?) A cleanup patch to fix this typo in btrfs/233? Thanks, Amir.
Looks good,
Reviewed-by: Christoph Hellwig <hch@lst.de>
On Wed, Sep 01, 2021 at 07:46:01AM +0300, Amir Goldstein wrote: > On Wed, Sep 1, 2021 at 3:37 AM Darrick J. Wong <djwong@kernel.org> wrote: > > > > From: Darrick J. Wong <djwong@kernel.org> > > > > Create a file to document the purpose of each test group that is > > currently defined in fstests, and add a build script to check that every > > group mentioned in the tests is also mentioned in the documentation. > > > > This is awesome and long due. > Thanks for doing that! > > Minor nits about overlayfs groups below... Heh, yeah, thanks for making corrections. :) > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > > --- > > doc/group-names.txt | 136 ++++++++++++++++++++++++++++++++++++++++++++++++ > > include/buildgrouplist | 1 > > tools/check-groups | 33 ++++++++++++ > > 3 files changed, 170 insertions(+) > > create mode 100644 doc/group-names.txt > > create mode 100755 tools/check-groups > > > > > > diff --git a/doc/group-names.txt b/doc/group-names.txt > > new file mode 100644 > > index 00000000..ae517328 > > --- /dev/null > > +++ b/doc/group-names.txt > > @@ -0,0 +1,136 @@ > > +======================= ======================================================= > > +Group Name: Description: > > +======================= ======================================================= > > +all All known tests, automatically generated by ./check at > > + runtime > > +auto Tests that should be run automatically. These should > > + not require more than ~5 minutes to run. > > +quick Tests that should run in under 30 seconds. > > +deprecated Old tests that should not be run. > > + > > +acl Access Control Lists > > +admin xfs_admin functionality > > +aio general libaio async io tests > > +atime file access time > > +attr extended attributes > > +attr2 xfs v2 extended aributes > > +balance btrfs tree rebalance > > +bigtime timestamps beyond the year 2038 > > +blockdev block device functionality > > +broken broken tests > > +cap Linux capabilities > > +casefold directory name casefolding > > +ci ASCII case-insensitive directory name lookups > > +clone FICLONE/FICLONERANGE ioctls > > +clone_stress stress testing FICLONE/FICLONERANGE > > +collapse fallocate collapse_range > > +compress file compression > > +convert btrfs ext[34] conversion tool > > +copy xfs_copy functionality > > +copy_range copy_file_range syscall > > +copyup overlayfs copyup support > > The tests in this group exercise copy up. > There is no such thing as overlayfs without "copyup support", > so guess my point is - remove the word "support" OK. > > +dangerous dangerous test that can crash the system > > +dangerous_bothrepair fuzzers to evaluate xfs_scrub + xfs_repair repair > > +dangerous_fuzzers fuzzers that can crash your computer > > +dangerous_norepair fuzzers to evaluate kernel metadata verifiers > > +dangerous_online_repair fuzzers to evaluate xfs_scrub online repair > > +dangerous_repair fuzzers to evaluate xfs_repair offline repair > > +dangerous_scrub fuzzers to evaluate xfs_scrub checking > > +data data loss checkers > > +dax direct access mode for persistent memory files > > +db xfs_db functional tests > > +dedupe FIEDEDUPERANGE ioctl > > +defrag filesystem defragmenters > > +dir directory test functions > > +dump dump and restore utilities > > +eio IO error reporting > > +encrypt encrypted file contents > > +enospc ENOSPC error reporting > > +exportfs file handles > > +filestreams XFS filestreams allocator > > +freeze filesystem freeze tests > > +fsck general fsck tests > > +fsmap FS_IOC_GETFSMAP ioctl > > +fsr XFS free space reorganizer > > +fuzzers filesystem fuzz tests > > +growfs increasing the size of a filesystem > > +hardlink hardlinks > > +health XFS health reporting > > +idmapped idmapped mount functionality > > +inobtcount XFS inode btree count tests > > +insert fallocate insert_range > > +ioctl general ioctl tests > > +io_uring general io_uring async io tests > > +label filesystem labelling > > +limit resource limits > > +locks file locking > > +log metadata logging > > +logprint xfs_logprint functional tests > > +long_rw long-soak read write IO path exercisers > > +metacopy overlayfs metadata-only copy-up > > +metadata filesystem metadata update exercisers > > +metadump xfs_metadump/xfs_mdrestore functionality > > +mkfs filesystem formatting tools > > +mount mount option and functionality checks > > +nested nested overlayfs instances > > +nfs4_acl NFSv4 access control lists > > +nonsamefs overlayfs layers on different filesystems > > +online_repair online repair functionality tests > > +other dumping ground, do not add more tests to this group > > +overlay using overlayfs on top of FSTYP > > This description is a bit confusing, because the recommended > way to run overlayfs tests as described in README.overlay is > to set FSTYP=xfs and run ./check -overlay > > I'm struggling for a better description but perhaps: > "using overlayfs regardless of ./check -overlay flag"? Hmm. Since I'm the author of the only test that uses this tag, I guess I'm the authority (ha!) on what the name actually means. That test (generic/631) is a regression test for a XFS whiteout handling bug that can only be reproduced by layering overlayfs atop xfs. Overlayfs is incidental to reproducing the XFS bug, but AFAIK overlayfs is the only in-kernel user of whiteout, which is why it's critical here. It's not right to make it "_supported_fs overlay" because we're not testing overlayfs functionality; we're merely using it as a stick to poke another filesystem. How about: "regression tests that require the use of overlayfs in a targetted configuration" ? > > +pattern specific IO pattern tests > > +perms access control and permission checking > > +pipe pipe functionality > > +pnfs PNFS > > +posix POSIX behavior conformance > > +prealloc fallocate > > +preallocrw fallocate, then read and write > > +punch fallocate punch_hole > > +qgroup btrfs qgroup feature > > +quota filesystem usage quotas > > +raid btrfs RAID > > +realtime XFS realtime volumes > > +recoveryloop crash recovery loops > > +redirect overlayfs redirect_dir feature > > +remote dump and restore with a remote tape > > +remount remounting filesystems > > +rename rename system call > > +repair xfs_repair functional tests > > +replace btrfs device replace > > +replay dm-logwrites replays > > +resize resize2fs functionality tests > > +richacl rich ACL feature > > +rmap XFS reverse mapping exercisers > > +rotate overlayfs feature of some sort" > > I guess that works :-D > but to be accurate, this is actually a unionmount testsuite feature - > at selected test points in the workload, a new upper layer is stacked > on to overlayfs, so maybe: > "upper layer rotate tests from the unionmount test suite"? I've changed it to 'overlayfs upper layer rotate tests from the unionmount test suite'. > > +rw read/write IO tests > > +samefs overlayfs when all layers are on the same fs > > +scrub filesystem metadata scrubbers > > +seed btrfs seeded filesystems > > +seek llseek functionality > > +send btrfs send/receive > > +shrinkfs decreasing the size of a filesystem > > +shutdown FS_IOC_SHUTDOWN ioctl > > +snapshot btrfs snapshots > > +soak long soak tests of any kind > > +spaceman xfs_spaceman functional tests > > +splice splice system call > > +stress fsstress filesystem exerciser > > +subvol btrfs subvolumes > > +subvolume btrfs subvolumes (again?) > > A cleanup patch to fix this typo in btrfs/233? Will do. --D > > Thanks, > Amir.
On Wed, Sep 1, 2021 at 7:43 PM Darrick J. Wong <djwong@kernel.org> wrote: > > On Wed, Sep 01, 2021 at 07:46:01AM +0300, Amir Goldstein wrote: > > On Wed, Sep 1, 2021 at 3:37 AM Darrick J. Wong <djwong@kernel.org> wrote: > > > > > > From: Darrick J. Wong <djwong@kernel.org> > > > > > > Create a file to document the purpose of each test group that is > > > currently defined in fstests, and add a build script to check that every > > > group mentioned in the tests is also mentioned in the documentation. > > > > > > > This is awesome and long due. > > Thanks for doing that! > > > > Minor nits about overlayfs groups below... > > Heh, yeah, thanks for making corrections. :) > > > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > > > --- > > > doc/group-names.txt | 136 ++++++++++++++++++++++++++++++++++++++++++++++++ > > > include/buildgrouplist | 1 > > > tools/check-groups | 33 ++++++++++++ > > > 3 files changed, 170 insertions(+) > > > create mode 100644 doc/group-names.txt > > > create mode 100755 tools/check-groups > > > > > > > > > diff --git a/doc/group-names.txt b/doc/group-names.txt > > > new file mode 100644 > > > index 00000000..ae517328 > > > --- /dev/null > > > +++ b/doc/group-names.txt > > > @@ -0,0 +1,136 @@ > > > +======================= ======================================================= > > > +Group Name: Description: > > > +======================= ======================================================= > > > +all All known tests, automatically generated by ./check at > > > + runtime > > > +auto Tests that should be run automatically. These should > > > + not require more than ~5 minutes to run. > > > +quick Tests that should run in under 30 seconds. > > > +deprecated Old tests that should not be run. > > > + > > > +acl Access Control Lists > > > +admin xfs_admin functionality > > > +aio general libaio async io tests > > > +atime file access time > > > +attr extended attributes > > > +attr2 xfs v2 extended aributes > > > +balance btrfs tree rebalance > > > +bigtime timestamps beyond the year 2038 > > > +blockdev block device functionality > > > +broken broken tests > > > +cap Linux capabilities > > > +casefold directory name casefolding > > > +ci ASCII case-insensitive directory name lookups > > > +clone FICLONE/FICLONERANGE ioctls > > > +clone_stress stress testing FICLONE/FICLONERANGE > > > +collapse fallocate collapse_range > > > +compress file compression > > > +convert btrfs ext[34] conversion tool > > > +copy xfs_copy functionality > > > +copy_range copy_file_range syscall > > > +copyup overlayfs copyup support > > > > The tests in this group exercise copy up. > > There is no such thing as overlayfs without "copyup support", > > so guess my point is - remove the word "support" > > OK. > > > > +dangerous dangerous test that can crash the system > > > +dangerous_bothrepair fuzzers to evaluate xfs_scrub + xfs_repair repair > > > +dangerous_fuzzers fuzzers that can crash your computer > > > +dangerous_norepair fuzzers to evaluate kernel metadata verifiers > > > +dangerous_online_repair fuzzers to evaluate xfs_scrub online repair > > > +dangerous_repair fuzzers to evaluate xfs_repair offline repair > > > +dangerous_scrub fuzzers to evaluate xfs_scrub checking > > > +data data loss checkers > > > +dax direct access mode for persistent memory files > > > +db xfs_db functional tests > > > +dedupe FIEDEDUPERANGE ioctl > > > +defrag filesystem defragmenters > > > +dir directory test functions > > > +dump dump and restore utilities > > > +eio IO error reporting > > > +encrypt encrypted file contents > > > +enospc ENOSPC error reporting > > > +exportfs file handles > > > +filestreams XFS filestreams allocator > > > +freeze filesystem freeze tests > > > +fsck general fsck tests > > > +fsmap FS_IOC_GETFSMAP ioctl > > > +fsr XFS free space reorganizer > > > +fuzzers filesystem fuzz tests > > > +growfs increasing the size of a filesystem > > > +hardlink hardlinks > > > +health XFS health reporting > > > +idmapped idmapped mount functionality > > > +inobtcount XFS inode btree count tests > > > +insert fallocate insert_range > > > +ioctl general ioctl tests > > > +io_uring general io_uring async io tests > > > +label filesystem labelling > > > +limit resource limits > > > +locks file locking > > > +log metadata logging > > > +logprint xfs_logprint functional tests > > > +long_rw long-soak read write IO path exercisers > > > +metacopy overlayfs metadata-only copy-up > > > +metadata filesystem metadata update exercisers > > > +metadump xfs_metadump/xfs_mdrestore functionality > > > +mkfs filesystem formatting tools > > > +mount mount option and functionality checks > > > +nested nested overlayfs instances > > > +nfs4_acl NFSv4 access control lists > > > +nonsamefs overlayfs layers on different filesystems > > > +online_repair online repair functionality tests > > > +other dumping ground, do not add more tests to this group > > > +overlay using overlayfs on top of FSTYP > > > > This description is a bit confusing, because the recommended > > way to run overlayfs tests as described in README.overlay is > > to set FSTYP=xfs and run ./check -overlay > > > > I'm struggling for a better description but perhaps: > > "using overlayfs regardless of ./check -overlay flag"? > > Hmm. Since I'm the author of the only test that uses this tag, I guess > I'm the authority (ha!) on what the name actually means. > > That test (generic/631) is a regression test for a XFS whiteout handling > bug that can only be reproduced by layering overlayfs atop xfs. > Overlayfs is incidental to reproducing the XFS bug, but AFAIK overlayfs > is the only in-kernel user of whiteout, which is why it's critical here. > > It's not right to make it "_supported_fs overlay" because we're not > testing overlayfs functionality; we're merely using it as a stick to > poke another filesystem. Yes. I know. Note that while this is the only case of _require_extra_fs overaly there is another case of _require_extra_fs ext2 (xfs/049) > > How about: "regression tests that require the use of overlayfs in a > targetted configuration" ? > TBH, I do not think it is wise to tag the test by the test method rather than the tested functionality. What is more likely? that a tester wants to run all tests that use overlay over FSTYP? Or that a tester wants to run all tests to verify whiteout related behavior after changing whiteout related code? I suggest that you re-tag this test as 'whiteout', which is documented already. If you want to be more specific, you can create a group rename_whiteout, because RENAME_WHITEOUT is the vfs interface that this test is actually exercising. Thanks, Amir.
On Thu, Sep 02, 2021 at 07:49:51AM +0300, Amir Goldstein wrote: > On Wed, Sep 1, 2021 at 7:43 PM Darrick J. Wong <djwong@kernel.org> wrote: > > > > On Wed, Sep 01, 2021 at 07:46:01AM +0300, Amir Goldstein wrote: > > > On Wed, Sep 1, 2021 at 3:37 AM Darrick J. Wong <djwong@kernel.org> wrote: > > > > > > > > From: Darrick J. Wong <djwong@kernel.org> > > > > > > > > Create a file to document the purpose of each test group that is > > > > currently defined in fstests, and add a build script to check that every > > > > group mentioned in the tests is also mentioned in the documentation. > > > > > > > > > > This is awesome and long due. > > > Thanks for doing that! > > > > > > Minor nits about overlayfs groups below... > > > > Heh, yeah, thanks for making corrections. :) > > > > > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > > > > --- > > > > doc/group-names.txt | 136 ++++++++++++++++++++++++++++++++++++++++++++++++ > > > > include/buildgrouplist | 1 > > > > tools/check-groups | 33 ++++++++++++ > > > > 3 files changed, 170 insertions(+) > > > > create mode 100644 doc/group-names.txt > > > > create mode 100755 tools/check-groups > > > > > > > > > > > > diff --git a/doc/group-names.txt b/doc/group-names.txt > > > > new file mode 100644 > > > > index 00000000..ae517328 > > > > --- /dev/null > > > > +++ b/doc/group-names.txt > > > > @@ -0,0 +1,136 @@ > > > > +======================= ======================================================= > > > > +Group Name: Description: > > > > +======================= ======================================================= > > > > +all All known tests, automatically generated by ./check at > > > > + runtime > > > > +auto Tests that should be run automatically. These should > > > > + not require more than ~5 minutes to run. > > > > +quick Tests that should run in under 30 seconds. > > > > +deprecated Old tests that should not be run. > > > > + > > > > +acl Access Control Lists > > > > +admin xfs_admin functionality > > > > +aio general libaio async io tests > > > > +atime file access time > > > > +attr extended attributes > > > > +attr2 xfs v2 extended aributes > > > > +balance btrfs tree rebalance > > > > +bigtime timestamps beyond the year 2038 > > > > +blockdev block device functionality > > > > +broken broken tests > > > > +cap Linux capabilities > > > > +casefold directory name casefolding > > > > +ci ASCII case-insensitive directory name lookups > > > > +clone FICLONE/FICLONERANGE ioctls > > > > +clone_stress stress testing FICLONE/FICLONERANGE > > > > +collapse fallocate collapse_range > > > > +compress file compression > > > > +convert btrfs ext[34] conversion tool > > > > +copy xfs_copy functionality > > > > +copy_range copy_file_range syscall > > > > +copyup overlayfs copyup support > > > > > > The tests in this group exercise copy up. > > > There is no such thing as overlayfs without "copyup support", > > > so guess my point is - remove the word "support" > > > > OK. > > > > > > +dangerous dangerous test that can crash the system > > > > +dangerous_bothrepair fuzzers to evaluate xfs_scrub + xfs_repair repair > > > > +dangerous_fuzzers fuzzers that can crash your computer > > > > +dangerous_norepair fuzzers to evaluate kernel metadata verifiers > > > > +dangerous_online_repair fuzzers to evaluate xfs_scrub online repair > > > > +dangerous_repair fuzzers to evaluate xfs_repair offline repair > > > > +dangerous_scrub fuzzers to evaluate xfs_scrub checking > > > > +data data loss checkers > > > > +dax direct access mode for persistent memory files > > > > +db xfs_db functional tests > > > > +dedupe FIEDEDUPERANGE ioctl > > > > +defrag filesystem defragmenters > > > > +dir directory test functions > > > > +dump dump and restore utilities > > > > +eio IO error reporting > > > > +encrypt encrypted file contents > > > > +enospc ENOSPC error reporting > > > > +exportfs file handles > > > > +filestreams XFS filestreams allocator > > > > +freeze filesystem freeze tests > > > > +fsck general fsck tests > > > > +fsmap FS_IOC_GETFSMAP ioctl > > > > +fsr XFS free space reorganizer > > > > +fuzzers filesystem fuzz tests > > > > +growfs increasing the size of a filesystem > > > > +hardlink hardlinks > > > > +health XFS health reporting > > > > +idmapped idmapped mount functionality > > > > +inobtcount XFS inode btree count tests > > > > +insert fallocate insert_range > > > > +ioctl general ioctl tests > > > > +io_uring general io_uring async io tests > > > > +label filesystem labelling > > > > +limit resource limits > > > > +locks file locking > > > > +log metadata logging > > > > +logprint xfs_logprint functional tests > > > > +long_rw long-soak read write IO path exercisers > > > > +metacopy overlayfs metadata-only copy-up > > > > +metadata filesystem metadata update exercisers > > > > +metadump xfs_metadump/xfs_mdrestore functionality > > > > +mkfs filesystem formatting tools > > > > +mount mount option and functionality checks > > > > +nested nested overlayfs instances > > > > +nfs4_acl NFSv4 access control lists > > > > +nonsamefs overlayfs layers on different filesystems > > > > +online_repair online repair functionality tests > > > > +other dumping ground, do not add more tests to this group > > > > +overlay using overlayfs on top of FSTYP > > > > > > This description is a bit confusing, because the recommended > > > way to run overlayfs tests as described in README.overlay is > > > to set FSTYP=xfs and run ./check -overlay > > > > > > I'm struggling for a better description but perhaps: > > > "using overlayfs regardless of ./check -overlay flag"? > > > > Hmm. Since I'm the author of the only test that uses this tag, I guess > > I'm the authority (ha!) on what the name actually means. > > > > That test (generic/631) is a regression test for a XFS whiteout handling > > bug that can only be reproduced by layering overlayfs atop xfs. > > Overlayfs is incidental to reproducing the XFS bug, but AFAIK overlayfs > > is the only in-kernel user of whiteout, which is why it's critical here. > > > > It's not right to make it "_supported_fs overlay" because we're not > > testing overlayfs functionality; we're merely using it as a stick to > > poke another filesystem. > > Yes. I know. > Note that while this is the only case of _require_extra_fs overaly > there is another case of _require_extra_fs ext2 (xfs/049) > > > > > How about: "regression tests that require the use of overlayfs in a > > targetted configuration" ? > > > > TBH, I do not think it is wise to tag the test by the test method > rather than the tested functionality. <nod> It seemed kinda awkward to me. > What is more likely? > that a tester wants to run all tests that use overlay over FSTYP? > Or that a tester wants to run all tests to verify whiteout related > behavior after changing whiteout related code? > > I suggest that you re-tag this test as 'whiteout', which is documented > already. Ooh! That's a much better suggestion. I'll do that instead! :) > If you want to be more specific, you can create a group > rename_whiteout, because RENAME_WHITEOUT is the vfs > interface that this test is actually exercising. Eh, if we want to split the groups someday we can always revisit it. Thanks for the suggestion; I'll have a v2 series out shortly. --D > > Thanks, > Amir.
diff --git a/doc/group-names.txt b/doc/group-names.txt new file mode 100644 index 00000000..ae517328 --- /dev/null +++ b/doc/group-names.txt @@ -0,0 +1,136 @@ +======================= ======================================================= +Group Name: Description: +======================= ======================================================= +all All known tests, automatically generated by ./check at + runtime +auto Tests that should be run automatically. These should + not require more than ~5 minutes to run. +quick Tests that should run in under 30 seconds. +deprecated Old tests that should not be run. + +acl Access Control Lists +admin xfs_admin functionality +aio general libaio async io tests +atime file access time +attr extended attributes +attr2 xfs v2 extended aributes +balance btrfs tree rebalance +bigtime timestamps beyond the year 2038 +blockdev block device functionality +broken broken tests +cap Linux capabilities +casefold directory name casefolding +ci ASCII case-insensitive directory name lookups +clone FICLONE/FICLONERANGE ioctls +clone_stress stress testing FICLONE/FICLONERANGE +collapse fallocate collapse_range +compress file compression +convert btrfs ext[34] conversion tool +copy xfs_copy functionality +copy_range copy_file_range syscall +copyup overlayfs copyup support +dangerous dangerous test that can crash the system +dangerous_bothrepair fuzzers to evaluate xfs_scrub + xfs_repair repair +dangerous_fuzzers fuzzers that can crash your computer +dangerous_norepair fuzzers to evaluate kernel metadata verifiers +dangerous_online_repair fuzzers to evaluate xfs_scrub online repair +dangerous_repair fuzzers to evaluate xfs_repair offline repair +dangerous_scrub fuzzers to evaluate xfs_scrub checking +data data loss checkers +dax direct access mode for persistent memory files +db xfs_db functional tests +dedupe FIEDEDUPERANGE ioctl +defrag filesystem defragmenters +dir directory test functions +dump dump and restore utilities +eio IO error reporting +encrypt encrypted file contents +enospc ENOSPC error reporting +exportfs file handles +filestreams XFS filestreams allocator +freeze filesystem freeze tests +fsck general fsck tests +fsmap FS_IOC_GETFSMAP ioctl +fsr XFS free space reorganizer +fuzzers filesystem fuzz tests +growfs increasing the size of a filesystem +hardlink hardlinks +health XFS health reporting +idmapped idmapped mount functionality +inobtcount XFS inode btree count tests +insert fallocate insert_range +ioctl general ioctl tests +io_uring general io_uring async io tests +label filesystem labelling +limit resource limits +locks file locking +log metadata logging +logprint xfs_logprint functional tests +long_rw long-soak read write IO path exercisers +metacopy overlayfs metadata-only copy-up +metadata filesystem metadata update exercisers +metadump xfs_metadump/xfs_mdrestore functionality +mkfs filesystem formatting tools +mount mount option and functionality checks +nested nested overlayfs instances +nfs4_acl NFSv4 access control lists +nonsamefs overlayfs layers on different filesystems +online_repair online repair functionality tests +other dumping ground, do not add more tests to this group +overlay using overlayfs on top of FSTYP +pattern specific IO pattern tests +perms access control and permission checking +pipe pipe functionality +pnfs PNFS +posix POSIX behavior conformance +prealloc fallocate +preallocrw fallocate, then read and write +punch fallocate punch_hole +qgroup btrfs qgroup feature +quota filesystem usage quotas +raid btrfs RAID +realtime XFS realtime volumes +recoveryloop crash recovery loops +redirect overlayfs redirect_dir feature +remote dump and restore with a remote tape +remount remounting filesystems +rename rename system call +repair xfs_repair functional tests +replace btrfs device replace +replay dm-logwrites replays +resize resize2fs functionality tests +richacl rich ACL feature +rmap XFS reverse mapping exercisers +rotate overlayfs feature of some sort +rw read/write IO tests +samefs overlayfs when all layers are on the same fs +scrub filesystem metadata scrubbers +seed btrfs seeded filesystems +seek llseek functionality +send btrfs send/receive +shrinkfs decreasing the size of a filesystem +shutdown FS_IOC_SHUTDOWN ioctl +snapshot btrfs snapshots +soak long soak tests of any kind +spaceman xfs_spaceman functional tests +splice splice system call +stress fsstress filesystem exerciser +subvol btrfs subvolumes +subvolume btrfs subvolumes (again?) +swap swap files +symlink symbolic links +tape dump and restore with a tape +thin thin provisioning +trim FITRIM ioctl +udf UDF functionality tests +union tests from the unionmount test suite +unlink O_TMPFILE unlinked files +unshare fallocate unshare_range +v2log XFS v2 log format tests +verity fsverity +volume btrfs volume management +whiteout overlayfs whiteout functionality +xino overlayfs xino feature +zero fallocate zero_range +zone zoned (SMR) device support +======================= ======================================================= diff --git a/include/buildgrouplist b/include/buildgrouplist index d898efa3..489de965 100644 --- a/include/buildgrouplist +++ b/include/buildgrouplist @@ -6,3 +6,4 @@ group.list: @echo " [GROUP] $$PWD/$@" $(Q)$(TOPDIR)/tools/mkgroupfile $@ + $(Q)$(TOPDIR)/tools/check-groups $(TOPDIR)/doc/group-names.txt $@ diff --git a/tools/check-groups b/tools/check-groups new file mode 100755 index 00000000..bac45bbd --- /dev/null +++ b/tools/check-groups @@ -0,0 +1,33 @@ +#!/bin/bash + +# Make sure that all groups listed in a group.list file are mentioned in the +# group description file. + +if [ -z "$1" ] || [ "$1" = "--help" ]; then + echo "Usage: $0 path_to_group_names [group.list files...]" + exit 1 +fi + +groups_doc_file="$1" +shift + +get_group_list() { + for file in "$@"; do + while read testname groups; do + test -z "${testname}" && continue + test "${testname:0:1}" = "#" && continue + + echo "${groups}" | tr ' ' '\n' + done < "${file}" + done | sort | uniq +} + +ret=0 +while read group; do + if ! grep -q "^${group}[[:space:]]" "${groups_doc_file}"; then + echo "${group}: group not mentioned in documentation." 1>&2 + ret=1 + fi +done < <(get_group_list "$@") + +exit "${ret}"