Re: [PATCH 8/9] new: only allow documented test group names

Amir Goldstein
2021-09-16T06:10:15Z

On Thu, Sep 16, 2021 at 2:43 AM Darrick J. Wong <djwong@kernel.org> wrote:
>
> From: Darrick J. Wong <djwong@kernel.org>
>
> Now that we require all group names to be listed in doc/group-names.txt,
> we can use that (instead of running mkgroupfile) to check if the group
> name(s) supplied by the user actually exist. This has the secondary
> effect of being a second nudge towards keeping the description of groups
> up to date.
>
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>

> ---
> new | 24 +++++++++++-------------
> 1 file changed, 11 insertions(+), 13 deletions(-)
>
>
> diff --git a/new b/new
> index 2097a883..6b7dc5d4 100755
> --- a/new
> +++ b/new
> @@ -83,6 +83,14 @@ then
> exit 1
> fi
>
> +# Extract group names from the documentation.
> +group_names() {
> + awk '/^[[:lower:][:digit:]_]/ {
> + if ($1 != "" && $1 != "Group" && $2 != "Name:" && $1 != "all")
> + printf("%s\n", $1);
> + }' doc/group-names.txt
> +}
> +
> if [ $# -eq 0 ]
> then
>
> @@ -93,16 +101,7 @@ then
> [ -z "$ans" ] && ans=other
> if [ "X$ans" = "X?" ]
> then
> - for d in $SRC_GROUPS; do
> - (cd "tests/$d/" ; ../../tools/mkgroupfile "$tmpfile")
> - l=$(sed -n < "$tmpfile" \
> - -e 's/#.*//' \
> - -e 's/$/ /' \
> - -e 's;\(^[0-9][0-9][0-9]\)\(.*$\);\2;p')
> - grpl="$grpl $l"
> - done
> - lst=`for word in $grpl; do echo $word; done | sort| uniq `
> - echo $lst
> + echo $(group_names)
> else
> # only allow lower cases, spaces, digits and underscore in group
> inval=`echo $ans | tr -d '[:lower:][:space:][:digit:]_'`
> @@ -120,11 +119,10 @@ then
> else
> # expert mode, groups are on the command line
> #
> - (cd "$tdir" ; ../../tools/mkgroupfile "$tmpfile")
> for g in $*
> do
> - if ! grep -q "[[:space:]]$g" "$tmpfile"; then
> - echo "Warning: group \"$g\" not defined in $tdir tests"
> + if ! grep -q "^$g" doc/group-names.txt; then
> + echo "Warning: group \"$g\" not defined in documentation"
> fi
> done
> ans="$*"
>