fstests: automatically generate group files

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.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
Darrick J. Wong
2021-06-21 08:55:09 -07:00
committed by Eryu Guan
parent 7e98d41a6e
commit 17f6ac8ecc
18 changed files with 130 additions and 13 deletions
+3
View File
@@ -11,6 +11,9 @@ tags
/local.config
/results
# autogenerated group files
/tests/*/group.list
# autoconf generated files
/aclocal.m4
/autom4te.cache
+8
View File
@@ -38,6 +38,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"
+8
View File
@@ -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 $@
+4
View File
@@ -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))
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -2,16 +2,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -5,16 +5,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+5 -1
View File
@@ -4,16 +4,20 @@
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)
install:
$(INSTALL) -m 755 -d $(TARGET_DIR)
$(INSTALL) -m 755 $(TESTS) $(TARGET_DIR)
$(INSTALL) -m 644 group $(TARGET_DIR)
$(INSTALL) -m 644 group.list $(TARGET_DIR)
$(INSTALL) -m 644 $(OUTFILES) $(TARGET_DIR)
# Nothing.
+42
View File
@@ -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"