All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chandan Babu R <chandanrlinux@gmail.com>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: guaneryu@gmail.com, linux-xfs@vger.kernel.org,
	fstests@vger.kernel.org, guan@eryu.me, amir73il@gmail.com,
	ebiggers@kernel.org
Subject: Re: [PATCH 07/13] fstests: automatically generate group files
Date: Fri, 11 Jun 2021 11:09:41 +0530	[thread overview]
Message-ID: <87wnr12c4i.fsf@garuda> (raw)
In-Reply-To: <162317280046.653489.3322406175723320960.stgit@locust>

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"


-- 
chandan

  reply	other threads:[~2021-06-11  5:40 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-08 17:19 [PATCHSET v1 00/13] fstests: move test group lists into test files Darrick J. Wong
2021-06-08 17:19 ` [PATCH 01/13] fstests: fix group check in new script Darrick J. Wong
2021-06-10  8:43   ` Chandan Babu R
2021-06-11 21:54     ` Allison Henderson
2021-06-08 17:19 ` [PATCH 02/13] misc: move exit status into trap handler Darrick J. Wong
2021-06-10  8:43   ` Chandan Babu R
2021-06-11 21:55   ` Allison Henderson
2021-06-08 17:19 ` [PATCH 03/13] fstests: refactor test boilerplate code Darrick J. Wong
2021-06-10  8:44   ` Chandan Babu R
2021-06-11 21:55   ` Allison Henderson
2021-06-12  0:08   ` Eric Biggers
2021-06-12  0:34     ` Darrick J. Wong
2021-06-08 17:19 ` [PATCH 04/13] fstests: add tool migrate group membership data to test files Darrick J. Wong
2021-06-10  8:44   ` Chandan Babu R
2021-06-11 21:55   ` Allison Henderson
2021-06-08 17:19 ` [PATCH 05/13] fstests: move test group info " Darrick J. Wong
2021-06-11 21:55   ` Allison Henderson
2021-06-11 23:29   ` Eric Biggers
2021-06-12  0:17     ` Eric Biggers
2021-06-12  0:34       ` Darrick J. Wong
2021-06-08 17:19 ` [PATCH 06/13] fstests: clean up open-coded golden output Darrick J. Wong
2021-06-10  8:57   ` Chandan Babu R
2021-06-11 21:55   ` Allison Henderson
2021-06-08 17:20 ` [PATCH 07/13] fstests: automatically generate group files Darrick J. Wong
2021-06-11  5:39   ` Chandan Babu R [this message]
2021-06-11 23:37   ` [PATCH v1.1 " Darrick J. Wong
2021-06-14  5:38     ` Allison Henderson
2021-06-08 17:20 ` [PATCH 08/13] fstests: convert nextid to use automatic group generation Darrick J. Wong
2021-06-11  6:31   ` Chandan Babu R
2021-06-11 23:46   ` Eric Biggers
2021-06-12  0:40     ` Darrick J. Wong
2021-06-14  5:38   ` Allison Henderson
2021-06-08 17:20 ` [PATCH 09/13] fstests: adapt the new test script to our new group tagging scheme Darrick J. Wong
2021-06-11  6:55   ` Chandan Babu R
2021-06-14  5:38   ` Allison Henderson
2021-06-08 17:20 ` [PATCH 10/13] check: use generated group files Darrick J. Wong
2021-06-11  7:49   ` Chandan Babu R
2021-06-14 19:39   ` Allison Henderson
2021-06-08 17:20 ` [PATCH 11/13] fstests: remove " Darrick J. Wong
2021-06-11  7:53   ` Chandan Babu R
2021-06-11 23:24   ` Eric Biggers
2021-06-11 23:29     ` Darrick J. Wong
2021-06-11 23:51       ` Eric Biggers
2021-06-14 19:39   ` Allison Henderson
2021-06-08 17:20 ` [PATCH 12/13] fstests: remove test group management code Darrick J. Wong
2021-06-11  8:19   ` Chandan Babu R
2021-06-14 19:39   ` Allison Henderson
2021-06-08 17:20 ` [PATCH 13/13] misc: update documentation to reflect auto-generated group files Darrick J. Wong
2021-06-11  8:23   ` Chandan Babu R
2021-06-14 19:39   ` Allison Henderson
2021-06-14 20:49     ` Darrick J. Wong
2021-06-14 20:58 [PATCHSET v2 00/13] fstests: move test group lists into test files Darrick J. Wong
2021-06-14 20:59 ` [PATCH 07/13] fstests: automatically generate group files Darrick J. Wong
2021-06-16  7:32   ` Christoph Hellwig
2021-06-17  0:13     ` Darrick J. Wong
2021-06-17  7:56       ` Christoph Hellwig
2021-06-17 17:15         ` Darrick J. Wong
2021-06-18 13:45           ` Christoph Hellwig
2021-06-18 15:32             ` Amir Goldstein
2021-06-18 15:56               ` Darrick J. Wong
2021-06-21  5:25                 ` Christoph Hellwig
2021-06-21  6:38                   ` Eryu Guan
2021-06-21 16:14                     ` Darrick J. Wong
2021-06-21  5:20               ` Christoph Hellwig
2021-06-21 23:10 [PATCHSET v3 00/13] fstests: move test group lists into test files Darrick J. Wong
2021-06-21 23:10 ` [PATCH 07/13] fstests: automatically generate group files Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87wnr12c4i.fsf@garuda \
    --to=chandanrlinux@gmail.com \
    --cc=amir73il@gmail.com \
    --cc=djwong@kernel.org \
    --cc=ebiggers@kernel.org \
    --cc=fstests@vger.kernel.org \
    --cc=guan@eryu.me \
    --cc=guaneryu@gmail.com \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.