Message ID | 162317280046.653489.3322406175723320960.stgit@locust (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fstests: move test group lists into test files | expand |
On 08 Jun 2021 at 22:50, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > Now that we've moved the group membership details into the test case > files themselves, automatically generate the group files during build. > The autogenerated files are named "group.list" instead of "group" to > avoid conflicts between generated and (stale) SCM files as everyone > rebases. Looks good to me. Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com> > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > --- > .gitignore | 3 +++ > common/preamble | 8 ++++++++ > include/buildgrouplist | 8 ++++++++ > tests/Makefile | 4 ++++ > tests/btrfs/Makefile | 4 ++++ > tests/ceph/Makefile | 4 ++++ > tests/cifs/Makefile | 4 ++++ > tests/ext4/Makefile | 4 ++++ > tests/f2fs/Makefile | 4 ++++ > tests/generic/Makefile | 4 ++++ > tests/nfs/Makefile | 4 ++++ > tests/ocfs2/Makefile | 4 ++++ > tests/overlay/Makefile | 4 ++++ > tests/perf/Makefile | 4 ++++ > tests/shared/Makefile | 4 ++++ > tests/udf/Makefile | 4 ++++ > tests/xfs/Makefile | 4 ++++ > tools/mkgroupfile | 42 ++++++++++++++++++++++++++++++++++++++++++ > 18 files changed, 117 insertions(+) > create mode 100644 include/buildgrouplist > create mode 100755 tools/mkgroupfile > > > diff --git a/.gitignore b/.gitignore > index c62c1556..ab366961 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -11,6 +11,9 @@ tags > /local.config > /results > > +# autogenerated group files > +/tests/*/group.list > + > # autoconf generated files > /aclocal.m4 > /autom4te.cache > diff --git a/common/preamble b/common/preamble > index 63f66957..4fe8fd3f 100644 > --- a/common/preamble > +++ b/common/preamble > @@ -32,6 +32,14 @@ _begin_fstest() > fi > > seq=`basename $0` > + > + # If we're only running the test to generate a group.list file, > + # spit out the group data and exit. > + if [ -n "$GENERATE_GROUPS" ]; then > + echo "$seq $@" > + exit 0 > + fi > + > seqres=$RESULT_DIR/$seq > echo "QA output created by $seq" > > diff --git a/include/buildgrouplist b/include/buildgrouplist > new file mode 100644 > index 00000000..d898efa3 > --- /dev/null > +++ b/include/buildgrouplist > @@ -0,0 +1,8 @@ > +# SPDX-License-Identifier: GPL-2.0 > +# Copyright (c) 2021 Oracle, Inc. All Rights Reserved. > +# > +.PHONY: group.list > + > +group.list: > + @echo " [GROUP] $$PWD/$@" > + $(Q)$(TOPDIR)/tools/mkgroupfile $@ > diff --git a/tests/Makefile b/tests/Makefile > index 8ce8f209..5c8f0b10 100644 > --- a/tests/Makefile > +++ b/tests/Makefile > @@ -7,6 +7,10 @@ include $(TOPDIR)/include/builddefs > > TESTS_SUBDIRS = $(sort $(dir $(wildcard $(CURDIR)/[[:lower:]]*/))) > > +SUBDIRS = $(wildcard [[:lower:]]*) > + > +default: $(SUBDIRS) > + > include $(BUILDRULES) > > install: $(addsuffix -install,$(TESTS_SUBDIRS)) > diff --git a/tests/btrfs/Makefile b/tests/btrfs/Makefile > index 2d936421..cc2b2fc9 100644 > --- a/tests/btrfs/Makefile > +++ b/tests/btrfs/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > BTRFS_DIR = btrfs > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(BTRFS_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/ceph/Makefile b/tests/ceph/Makefile > index 55e35d77..61ab01d4 100644 > --- a/tests/ceph/Makefile > +++ b/tests/ceph/Makefile > @@ -2,9 +2,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > CEPH_DIR = ceph > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(CEPH_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/cifs/Makefile b/tests/cifs/Makefile > index 0c5cf3be..5356a682 100644 > --- a/tests/cifs/Makefile > +++ b/tests/cifs/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > CIFS_DIR = cifs > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(CIFS_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/ext4/Makefile b/tests/ext4/Makefile > index beb1541f..9c765497 100644 > --- a/tests/ext4/Makefile > +++ b/tests/ext4/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > EXT4_DIR = ext4 > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(EXT4_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/f2fs/Makefile b/tests/f2fs/Makefile > index d13bca3f..d2374018 100644 > --- a/tests/f2fs/Makefile > +++ b/tests/f2fs/Makefile > @@ -5,9 +5,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > F2FS_DIR = f2fs > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(F2FS_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/generic/Makefile b/tests/generic/Makefile > index 3878d05c..95cd403c 100644 > --- a/tests/generic/Makefile > +++ b/tests/generic/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > GENERIC_DIR = generic > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(GENERIC_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/nfs/Makefile b/tests/nfs/Makefile > index 754f2b25..e372b305 100644 > --- a/tests/nfs/Makefile > +++ b/tests/nfs/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > NFS_DIR = nfs > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(NFS_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/ocfs2/Makefile b/tests/ocfs2/Makefile > index e1337908..d85c4fd3 100644 > --- a/tests/ocfs2/Makefile > +++ b/tests/ocfs2/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > OCFS2_DIR = ocfs2 > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(OCFS2_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/overlay/Makefile b/tests/overlay/Makefile > index b07f8925..b995a6ec 100644 > --- a/tests/overlay/Makefile > +++ b/tests/overlay/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > TEST_DIR = overlay > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(TEST_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/perf/Makefile b/tests/perf/Makefile > index 620f1dbf..5d82cccc 100644 > --- a/tests/perf/Makefile > +++ b/tests/perf/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > PERF_DIR = perf > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(PERF_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/shared/Makefile b/tests/shared/Makefile > index 8a832782..6c6533c8 100644 > --- a/tests/shared/Makefile > +++ b/tests/shared/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > SHARED_DIR = shared > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(SHARED_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/udf/Makefile b/tests/udf/Makefile > index c9c9f1bd..bfaa1b0e 100644 > --- a/tests/udf/Makefile > +++ b/tests/udf/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > UDF_DIR = udf > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(UDF_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tests/xfs/Makefile b/tests/xfs/Makefile > index d64800ea..c2f0ba48 100644 > --- a/tests/xfs/Makefile > +++ b/tests/xfs/Makefile > @@ -4,9 +4,13 @@ > > TOPDIR = ../.. > include $(TOPDIR)/include/builddefs > +include $(TOPDIR)/include/buildgrouplist > > XFS_DIR = xfs > TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(XFS_DIR) > +DIRT = group.list > + > +default: $(DIRT) > > include $(BUILDRULES) > > diff --git a/tools/mkgroupfile b/tools/mkgroupfile > new file mode 100755 > index 00000000..0681e5d2 > --- /dev/null > +++ b/tools/mkgroupfile > @@ -0,0 +1,42 @@ > +#!/bin/bash > + > +# Generate a group file from the _begin_fstest call in each test. > + > +if [ "$1" = "--help" ]; then > + echo "Usage: (cd tests/XXX/ ; ../../tools/mkgroupfile [output])" > + exit 1 > +fi > + > +test_dir="$PWD" > +groupfile="$1" > + > +if [ ! -x ../../check ]; then > + echo "$0: Run this from tests/XXX/." > + exit 1 > +fi > + > +generate_groupfile() { > + cat << ENDL > +# QA groups control file, automatically generated. > +# See _begin_fstest in each test for details. > + > +ENDL > + cd ../../ > + export GENERATE_GROUPS=yes > + grep -R -l "^_begin_fstest" "$test_dir/" 2>/dev/null | while read testfile; do > + test -x "$testfile" && "$testfile" > + done | sort -g > + cd "$test_dir" > +} > + > +if [ -z "$groupfile" ] || [ "$groupfile" = "-" ]; then > + # Dump the group file to stdout and exit > + generate_groupfile > + exit 0 > +fi > + > +# Otherwise, write the group file to disk somewhere. > +ngroupfile="${groupfile}.new" > +rm -f "$ngroupfile" > +generate_groupfile >> "$ngroupfile" > +mv "$ngroupfile" "$groupfile"
diff --git a/.gitignore b/.gitignore index c62c1556..ab366961 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,9 @@ tags /local.config /results +# autogenerated group files +/tests/*/group.list + # autoconf generated files /aclocal.m4 /autom4te.cache diff --git a/common/preamble b/common/preamble index 63f66957..4fe8fd3f 100644 --- a/common/preamble +++ b/common/preamble @@ -32,6 +32,14 @@ _begin_fstest() fi seq=`basename $0` + + # If we're only running the test to generate a group.list file, + # spit out the group data and exit. + if [ -n "$GENERATE_GROUPS" ]; then + echo "$seq $@" + exit 0 + fi + seqres=$RESULT_DIR/$seq echo "QA output created by $seq" diff --git a/include/buildgrouplist b/include/buildgrouplist new file mode 100644 index 00000000..d898efa3 --- /dev/null +++ b/include/buildgrouplist @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2021 Oracle, Inc. All Rights Reserved. +# +.PHONY: group.list + +group.list: + @echo " [GROUP] $$PWD/$@" + $(Q)$(TOPDIR)/tools/mkgroupfile $@ diff --git a/tests/Makefile b/tests/Makefile index 8ce8f209..5c8f0b10 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -7,6 +7,10 @@ include $(TOPDIR)/include/builddefs TESTS_SUBDIRS = $(sort $(dir $(wildcard $(CURDIR)/[[:lower:]]*/))) +SUBDIRS = $(wildcard [[:lower:]]*) + +default: $(SUBDIRS) + include $(BUILDRULES) install: $(addsuffix -install,$(TESTS_SUBDIRS)) diff --git a/tests/btrfs/Makefile b/tests/btrfs/Makefile index 2d936421..cc2b2fc9 100644 --- a/tests/btrfs/Makefile +++ b/tests/btrfs/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist BTRFS_DIR = btrfs TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(BTRFS_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/ceph/Makefile b/tests/ceph/Makefile index 55e35d77..61ab01d4 100644 --- a/tests/ceph/Makefile +++ b/tests/ceph/Makefile @@ -2,9 +2,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist CEPH_DIR = ceph TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(CEPH_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/cifs/Makefile b/tests/cifs/Makefile index 0c5cf3be..5356a682 100644 --- a/tests/cifs/Makefile +++ b/tests/cifs/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist CIFS_DIR = cifs TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(CIFS_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/ext4/Makefile b/tests/ext4/Makefile index beb1541f..9c765497 100644 --- a/tests/ext4/Makefile +++ b/tests/ext4/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist EXT4_DIR = ext4 TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(EXT4_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/f2fs/Makefile b/tests/f2fs/Makefile index d13bca3f..d2374018 100644 --- a/tests/f2fs/Makefile +++ b/tests/f2fs/Makefile @@ -5,9 +5,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist F2FS_DIR = f2fs TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(F2FS_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/generic/Makefile b/tests/generic/Makefile index 3878d05c..95cd403c 100644 --- a/tests/generic/Makefile +++ b/tests/generic/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist GENERIC_DIR = generic TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(GENERIC_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/nfs/Makefile b/tests/nfs/Makefile index 754f2b25..e372b305 100644 --- a/tests/nfs/Makefile +++ b/tests/nfs/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist NFS_DIR = nfs TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(NFS_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/ocfs2/Makefile b/tests/ocfs2/Makefile index e1337908..d85c4fd3 100644 --- a/tests/ocfs2/Makefile +++ b/tests/ocfs2/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist OCFS2_DIR = ocfs2 TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(OCFS2_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/overlay/Makefile b/tests/overlay/Makefile index b07f8925..b995a6ec 100644 --- a/tests/overlay/Makefile +++ b/tests/overlay/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist TEST_DIR = overlay TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(TEST_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/perf/Makefile b/tests/perf/Makefile index 620f1dbf..5d82cccc 100644 --- a/tests/perf/Makefile +++ b/tests/perf/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist PERF_DIR = perf TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(PERF_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/shared/Makefile b/tests/shared/Makefile index 8a832782..6c6533c8 100644 --- a/tests/shared/Makefile +++ b/tests/shared/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist SHARED_DIR = shared TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(SHARED_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/udf/Makefile b/tests/udf/Makefile index c9c9f1bd..bfaa1b0e 100644 --- a/tests/udf/Makefile +++ b/tests/udf/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist UDF_DIR = udf TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(UDF_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tests/xfs/Makefile b/tests/xfs/Makefile index d64800ea..c2f0ba48 100644 --- a/tests/xfs/Makefile +++ b/tests/xfs/Makefile @@ -4,9 +4,13 @@ TOPDIR = ../.. include $(TOPDIR)/include/builddefs +include $(TOPDIR)/include/buildgrouplist XFS_DIR = xfs TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(XFS_DIR) +DIRT = group.list + +default: $(DIRT) include $(BUILDRULES) diff --git a/tools/mkgroupfile b/tools/mkgroupfile new file mode 100755 index 00000000..0681e5d2 --- /dev/null +++ b/tools/mkgroupfile @@ -0,0 +1,42 @@ +#!/bin/bash + +# Generate a group file from the _begin_fstest call in each test. + +if [ "$1" = "--help" ]; then + echo "Usage: (cd tests/XXX/ ; ../../tools/mkgroupfile [output])" + exit 1 +fi + +test_dir="$PWD" +groupfile="$1" + +if [ ! -x ../../check ]; then + echo "$0: Run this from tests/XXX/." + exit 1 +fi + +generate_groupfile() { + cat << ENDL +# QA groups control file, automatically generated. +# See _begin_fstest in each test for details. + +ENDL + cd ../../ + export GENERATE_GROUPS=yes + grep -R -l "^_begin_fstest" "$test_dir/" 2>/dev/null | while read testfile; do + test -x "$testfile" && "$testfile" + done | sort -g + cd "$test_dir" +} + +if [ -z "$groupfile" ] || [ "$groupfile" = "-" ]; then + # Dump the group file to stdout and exit + generate_groupfile + exit 0 +fi + +# Otherwise, write the group file to disk somewhere. +ngroupfile="${groupfile}.new" +rm -f "$ngroupfile" +generate_groupfile >> "$ngroupfile" +mv "$ngroupfile" "$groupfile"