From patchwork Fri Sep 17 00:39:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 12500677 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E01D8C433EF for ; Fri, 17 Sep 2021 00:39:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C911061209 for ; Fri, 17 Sep 2021 00:39:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241827AbhIQAlR (ORCPT ); Thu, 16 Sep 2021 20:41:17 -0400 Received: from mail.kernel.org ([198.145.29.99]:35170 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241821AbhIQAlQ (ORCPT ); Thu, 16 Sep 2021 20:41:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id B598B611EE; Fri, 17 Sep 2021 00:39:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1631839195; bh=hAoEiKSz7HwtWsrHBERX4sHFy3K76eWmeT0zUxCj/Yw=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=PmSgq8oFEmXqIlvk1dUCdgOyIY+H7jcGJBdFJ6z0OXUfhk4nt22TCXW0DsUro5QK5 m8lmACOHN7kauXPBG1tHP8+Ty/5bCYiIZOrbKWcudo8gnINw6Iu+QnPc2YIDYGrHHQ oxjR8xItw56LUc0yDHSE7TQ/QmHCa7usfJzoWZvzwKkxWNEdorN8Tdp+L1JaulmtSF mm1qGt385rQUhrJibrEAfJOId3gYd+FVOSMzfPmPIKz3eBhlKTzTiTykHxkRKs3gVJ AvoxG/OI9odXLE/Fu3gGIfTWOxqReL/ZEBYoWuxTgHfGs3fwn4en8DxSDYIXCDT4fq UrFeWuMda6tKQ== Subject: [PATCH 1/3] new: clean up the group name input code From: "Darrick J. Wong" To: djwong@kernel.org, guaneryu@gmail.com Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org, guan@eryu.me Date: Thu, 16 Sep 2021 17:39:55 -0700 Message-ID: <163183919544.953189.7870290547648551530.stgit@magnolia> In-Reply-To: <163183918998.953189.9876855385681643134.stgit@magnolia> References: <163183918998.953189.9876855385681643134.stgit@magnolia> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Darrick J. Wong Clean up the code that reads group names in from the command line to take advantage of the read command's ability to display a prompt. While we're at it, we should abort the script if the group list encounters EOF, and we can tighten up some of the other sh-isms too. Signed-off-by: Darrick J. Wong Reviewed-by: Amir Goldstein --- new | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/new b/new index 6b7dc5d4..ea7cf25e 100755 --- a/new +++ b/new @@ -91,16 +91,13 @@ group_names() { }' doc/group-names.txt } -if [ $# -eq 0 ] -then - +if [ $# -eq 0 ]; then + prompt="Add to group(s) [other] (separate by space, ? for list): " while true do - echo -n "Add to group(s) [other] (separate by space, ? for list): " - read ans - [ -z "$ans" ] && ans=other - if [ "X$ans" = "X?" ] - then + read -p "${prompt}" ans || exit 1 + test -z "${ans}" && ans=other + if [ "${ans}" = "?" ]; then echo $(group_names) else # only allow lower cases, spaces, digits and underscore in group From patchwork Fri Sep 17 00:40:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 12500679 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD010C433F5 for ; Fri, 17 Sep 2021 00:40:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B7C7C611F2 for ; Fri, 17 Sep 2021 00:40:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241878AbhIQAlX (ORCPT ); Thu, 16 Sep 2021 20:41:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:35204 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241872AbhIQAlW (ORCPT ); Thu, 16 Sep 2021 20:41:22 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 2CFF2611C4; Fri, 17 Sep 2021 00:40:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1631839201; bh=aaPUDlLInNgEqiNlg2aIZrl6gGhVgTFJ2AwS2DaNqOU=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=G/5afHtp9TlbXIrL9Y8qTo6D1h31qyxZGr5fE2Kr7GkAxkH7/E1kGgGfyfZrrC5ql v2BC+HGAushSkylGpJru2HEMPFPVM7xi00A/qNMnyCxU7QmynVPK/MWQ+ctqGjXI1b utSahdWsGZuNOFnvS5OIU999S3IsukiJ9raEoqfQDpnppHo6Tf67Mq6UwPUXNp4eI9 o7uZRntEEuikT7ZYwyCUEUZvq+Qqbbp76gU5ezuVciDyZp5btuovIcuQtBlHrHmHUB 93eHLwM5wV95fjgauJXUpr7v3vrigL6WDhlCgh/aUgppfk2SHUeVyCmZa3JdwGGHzJ 041QOs08hGqiw== Subject: [PATCH 2/3] new: standardize group name checking From: "Darrick J. Wong" To: djwong@kernel.org, guaneryu@gmail.com Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org, guan@eryu.me Date: Thu, 16 Sep 2021 17:40:00 -0700 Message-ID: <163183920093.953189.1288298157221770906.stgit@magnolia> In-Reply-To: <163183918998.953189.9876855385681643134.stgit@magnolia> References: <163183918998.953189.9876855385681643134.stgit@magnolia> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Darrick J. Wong Use the same group name validation when reading group names from standard input or from the command line. Now that we require all group names to be documented, there's no reason to leave these separate requirements. Signed-off-by: Darrick J. Wong Reviewed-by: Amir Goldstein --- new | 68 +++++++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/new b/new index ea7cf25e..3a657d20 100755 --- a/new +++ b/new @@ -91,38 +91,46 @@ group_names() { }' doc/group-names.txt } +# Make sure that the new test's groups fit the correct format and are listed +# in the group documentation file. +check_groups() { + for g in "$@"; do + local inval="$(echo "${g}" | tr -d '[:lower:][:space:][:digit:]_')" + if [ -n "${inval}" ]; then + echo "Invalid characters in group(s): ${inval}" + echo "Only lower cases, digits and underscore are allowed in groups, separated by space" + return 1 + elif ! group_names | grep -q -w "${g}"; then + echo "Warning: group \"${g}\" not defined in documentation" + return 1 + fi + done + + return 0 +} + if [ $# -eq 0 ]; then + # interactive mode prompt="Add to group(s) [other] (separate by space, ? for list): " - while true - do - read -p "${prompt}" ans || exit 1 - test -z "${ans}" && ans=other - if [ "${ans}" = "?" ]; then - echo $(group_names) - else - # only allow lower cases, spaces, digits and underscore in group - inval=`echo $ans | tr -d '[:lower:][:space:][:digit:]_'` - if [ "$inval" != "" ]; then - echo "Invalid characters in group(s): $inval" - echo "Only lower cases, digits and underscore are allowed in groups, separated by space" - continue - else - # remove redundant spaces/tabs - ans=`echo "$ans" | sed 's/\s\+/ /g'` - break - fi - fi - done + while true; do + read -p "${prompt}" -a new_groups || exit 1 + case "${#new_groups[@]}" in + 0) + new_groups=("other") + ;; + 1) + if [ "${new_groups[0]}" = "?" ]; then + echo $(group_names) + continue + fi + ;; + esac + check_groups "${new_groups[@]}" && break + done else - # expert mode, groups are on the command line - # - for g in $* - do - if ! grep -q "^$g" doc/group-names.txt; then - echo "Warning: group \"$g\" not defined in documentation" - fi - done - ans="$*" + # expert mode, groups are on the command line + new_groups=("$@") + check_groups "${new_groups[@]}" || exit 1 fi echo -n "Creating skeletal script for you to edit ..." @@ -139,7 +147,7 @@ cat <$tdir/$id # what am I here for? # . ./common/preamble -_begin_fstest $ans +_begin_fstest ${new_groups[@]} # Override the default cleanup function. # _cleanup() From patchwork Fri Sep 17 00:40:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Darrick J. Wong" X-Patchwork-Id: 12500681 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 80246C433EF for ; Fri, 17 Sep 2021 00:40:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5FBBD611F2 for ; Fri, 17 Sep 2021 00:40:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241857AbhIQAl3 (ORCPT ); Thu, 16 Sep 2021 20:41:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:35242 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241821AbhIQAl1 (ORCPT ); Thu, 16 Sep 2021 20:41:27 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9E82E611EE; Fri, 17 Sep 2021 00:40:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1631839206; bh=lOxPg35IZQjxcnlNins9aJGnfI+XvqldJIH82GknP1g=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=nGX9tP9//9cRv7WTEZ5uGw3f7kv+s1xqcbyybVev9boed+IJ8wcKNAAR3+jlzF5DT +jkfBcM0HuUU/1auoDAh5Judn0ULwZKFuLHtDn7fjutVy+u1aVCgqFf2kklv8ACnyz ST+69wsSHQepM25yd39pxtJt1Aq9a04Jg90GdRkXHCX2cFpjhvmbMHnQTZou0lXSCG jHTan0e7xkZGqRlU/uyLuBcQxFORHyGmp/w5PVeP7FnRM5Th+mnqlRCKS8y7Smdpf7 1l9B2MGtdbK6UvsehH14FrcisXzEmLGGKCJ+Elh/aHzcWv9IOceFPLIp3EHZtuaW93 KPucdCmlqlY8w== Subject: [PATCH 3/3] new: don't allow new tests in group 'other' From: "Darrick J. Wong" To: djwong@kernel.org, guaneryu@gmail.com Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org, guan@eryu.me Date: Thu, 16 Sep 2021 17:40:06 -0700 Message-ID: <163183920637.953189.13037781612178012211.stgit@magnolia> In-Reply-To: <163183918998.953189.9876855385681643134.stgit@magnolia> References: <163183918998.953189.9876855385681643134.stgit@magnolia> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Darrick J. Wong The 'other' group is vaguely defined at best -- other than what? It's not clear what tests belong in this group, and it has become a dumping ground for random stuff that are classified in other groups. Don't let people create new other group tests. Signed-off-by: Darrick J. Wong Reviewed-by: Amir Goldstein --- new | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/new b/new index 3a657d20..9651e0e0 100755 --- a/new +++ b/new @@ -100,6 +100,9 @@ check_groups() { echo "Invalid characters in group(s): ${inval}" echo "Only lower cases, digits and underscore are allowed in groups, separated by space" return 1 + elif [ "${g}" = "other" ]; then + echo "Do not add more tests to group \"other\"" + return 1 elif ! group_names | grep -q -w "${g}"; then echo "Warning: group \"${g}\" not defined in documentation" return 1 @@ -111,16 +114,16 @@ check_groups() { if [ $# -eq 0 ]; then # interactive mode - prompt="Add to group(s) [other] (separate by space, ? for list): " + prompt="Add to group(s) [auto] (separate by space, ? for list): " while true; do read -p "${prompt}" -a new_groups || exit 1 case "${#new_groups[@]}" in 0) - new_groups=("other") + new_groups=("auto") ;; 1) if [ "${new_groups[0]}" = "?" ]; then - echo $(group_names) + echo $(group_names | grep -v -w 'other') continue fi ;;