[PATCHSET v1 00/13] fstests: move test group lists into test files

Darrick J. Wong
2021-06-08T17:19:24Z

Hi all,

Test group files (e.g. tests/generic/group) are a pain to keep up.
Every week I rebase on Eryu's latest upstream, and every week I have to
slog through dozens of trivial merge conflicts because of the
groupfiles. Moving tests is annoying because we have to maintain all
this code to move the group associations from one /group file to
another.

It doesn't need to be this way -- we could move each test's group
information into the test itself, and automatically generate the group
files as part of the make process. This series does exactly that.

The first few patches add some convenient anchors for the new
per-testfile group tagging and a conversion script to migrate existing
test files. Next there's a huge patch that is the results of running
the conversion script, followed by cleanup of the golden outputs. After
that comes the build infrastructure to generate group files and other
tweaks to the existing maintainer scripts to use the new infrastructure.
Finally, remove the group files themselves and the (now unnecessary)
code that maintained them.

v1: promote from rfc, use group.list for autogenerated group files, fix
odd build warts, rename preamble function, update readme

If you're going to start using this mess, you probably ought to just
pull from my git trees, which are linked below.

This is an extraordinary way to destroy everything. Enjoy!
Comments and questions are, as always, welcome.

--D

fstests git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=autogenerate-groupfiles-5.14
---
.gitignore | 3
README | 19 +
check | 6
common/preamble | 57 ++++
include/buildgrouplist | 8 +
new | 217 +++++-----------
tests/Makefile | 4
tests/btrfs/001 | 15 -
tests/btrfs/002 | 15 -
tests/btrfs/003 | 15 -
tests/btrfs/004 | 15 -
tests/btrfs/005 | 16 -
tests/btrfs/006 | 16 -
tests/btrfs/006.out | 2
tests/btrfs/012.out | 2
tests/btrfs/Makefile | 4
tests/btrfs/group | 245 ------------------
tests/ceph/Makefile | 4
tests/ceph/group | 4
tests/cifs/Makefile | 4
tests/cifs/group | 6
tests/ext4/Makefile | 4
tests/ext4/group | 63 -----
tests/f2fs/Makefile | 4
tests/f2fs/group | 7 -
tests/generic/068 | 3
tests/generic/184.out | 2
tests/generic/Makefile | 4
tests/generic/group | 643 ------------------------------------------------
tests/nfs/Makefile | 4
tests/nfs/group | 6
tests/ocfs2/Makefile | 4
tests/ocfs2/group | 1
tests/overlay/Makefile | 4
tests/overlay/group | 100 -------
tests/perf/Makefile | 4
tests/perf/group | 1
tests/shared/Makefile | 4
tests/shared/group | 8 -
tests/udf/Makefile | 4
tests/udf/group | 6
tests/xfs/004 | 3
tests/xfs/Makefile | 4
tests/xfs/group | 534 ----------------------------------------
tools/convert-group | 131 ++++++++++
tools/mkgroupfile | 42 +++
tools/mvtest | 12 -
tools/nextid | 1
tools/nextid | 39 +++
tools/sort-group | 112 --------
50 files changed, 451 insertions(+), 1980 deletions(-)
create mode 100644 common/preamble
create mode 100644 include/buildgrouplist
delete mode 100644 tests/btrfs/group
delete mode 100644 tests/ceph/group
delete mode 100644 tests/cifs/group
delete mode 100644 tests/ext4/group
delete mode 100644 tests/f2fs/group
delete mode 100644 tests/generic/group
delete mode 100644 tests/nfs/group
delete mode 100644 tests/ocfs2/group
delete mode 100644 tests/overlay/group
delete mode 100644 tests/perf/group
delete mode 100644 tests/shared/group
delete mode 100644 tests/udf/group
delete mode 100644 tests/xfs/group
create mode 100755 tools/convert-group
create mode 100755 tools/mkgroupfile
delete mode 120000 tools/nextid
create mode 100755 tools/nextid
delete mode 100755 tools/sort-group