From patchwork Tue Jun 8 17:20:11 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: 12307685 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.2 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=unavailable 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 BB40EC47082 for ; Tue, 8 Jun 2021 17:20:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A413A6135D for ; Tue, 8 Jun 2021 17:20:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233407AbhFHRWF (ORCPT ); Tue, 8 Jun 2021 13:22:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:55206 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233005AbhFHRWE (ORCPT ); Tue, 8 Jun 2021 13:22:04 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 96B8A61351; Tue, 8 Jun 2021 17:20:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1623172811; bh=uexrAPdEV/eyPYb9Dn/votVKWIOE9QTNY6pH9KR3WaU=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=Oie7LTGuTa2l184/nvGy1x3pDX7CRkSg1qnDGmCu4mXEeV9yxmjMaBBxCIlPV6xbp VePH/m/IVAVrMT2FjjwdJda++Zru28Ffn20q45atxFsbmYB8XlbQwg1qekuVULvZNa +IILjZFinaYDLAnm6HPWym9eVnt6/oG4Nf1i0cb2+WG4lqOWbIa3yjK2tq9uV7KjOH P4zeB6qrM84nJqDDhhgDdsEfofketfcNurskE8Ph0KBYoRwY+8AusXfw1nuR509Wj7 xXxUdubKNcwbvy/gGnd8ZGrOt4Tb8p96QuxYsibRxVjRNwWysFn/jXrRnmBLZY53xz c1R4Xkkp4o5OQ== Subject: [PATCH 09/13] fstests: adapt the new test script to our new group tagging scheme From: "Darrick J. Wong" To: djwong@kernel.org, guaneryu@gmail.com Cc: linux-xfs@vger.kernel.org, fstests@vger.kernel.org, guan@eryu.me, amir73il@gmail.com, ebiggers@kernel.org Date: Tue, 08 Jun 2021 10:20:11 -0700 Message-ID: <162317281137.653489.16228043613270527911.stgit@locust> In-Reply-To: <162317276202.653489.13006238543620278716.stgit@locust> References: <162317276202.653489.13006238543620278716.stgit@locust> User-Agent: StGit/0.19 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org From: Darrick J. Wong Now that we autogenerate group files, adapt the new test creation script to use autogenerated group files and to set the group data in the new test. Signed-off-by: Darrick J. Wong Reviewed-by: Chandan Babu R Reviewed-by: Allison Henderson --- new | 179 ++++++++++++++++++++----------------------------------------------- 1 file changed, 54 insertions(+), 125 deletions(-) diff --git a/new b/new index 16e7c782..cdd909ad 100755 --- a/new +++ b/new @@ -9,7 +9,8 @@ iam=new . ./common/test_names -trap "rm -f /tmp/$$.; exit" 0 1 2 3 15 +tmpfile="/tmp/$$." +trap "rm -f $tmpfile; exit" 0 1 2 3 15 _cleanup() { @@ -26,71 +27,18 @@ usage() [ $# -eq 0 ] && usage tdir=tests/$1 -shift - -if [ ! -f $tdir/group ] -then - echo "Creating the $tdir/group index ..." - cat <<'End-of-File' >$tdir/group -# QA groups control -# -# define groups and default group owners -# do not start group name with a digit -# - -# catch-all -# -other some-user-login - -# test-group association ... one line per test -# -End-of-File -fi - -if [ ! -w $tdir/group ] -then - chmod u+w $tdir/group - echo "Warning: making the index file \"$tdir/group\" writeable" -fi - -if make -then - : -else - echo "Warning: make failed -- some tests may be missing" -fi i=0 line=0 eof=1 -[ -f "$tdir/group" ] || usage +[ -d "$tdir/" ] || usage export AWK_PROG="$(type -P awk)" [ "$AWK_PROG" = "" ] && { echo "awk not found"; exit; } -for found in `cat $tdir/group | tr - ' ' | $AWK_PROG '{ print $1 }'` -do - line=$((line+1)) - if [ -z "$found" ] || [ "$found" == "#" ]; then - continue - elif ! echo "$found" | grep -q "^$VALID_TEST_NAME$"; then - # this one is for tests not named by a number - continue - fi - i=$((i+1)) - id=`printf "%03d" $i` - if [ "$id" != "$found" ];then - eof=0 - break - fi -done -if [ $eof -eq 1 ]; then - line=$((line+1)) - i=$((i+1)) - id=`printf "%03d" $i` -fi - +id="$(basename "$(./tools/nextid "$1")")" echo "Next test id is $id" +shift read -p "Append a name to the ID? Test name will be $id-\$name. y,[n]: " -r if [[ $REPLY = [Yy] ]]; then @@ -113,24 +61,9 @@ if [[ $REPLY = [Yy] ]]; then fi done - # now find where to insert this name - eof=1 - for found in `tail -n +$line $tdir/group | $AWK_PROG '{ print $1 }'`; do - found_id=$(echo "$found" | cut -d "-" -f 1 - ) - line=$((line+1)) - if [ -z "$found" ] || [ "$found" == "#" ]; then - continue - elif [ $found_id -gt $id ]; then - eof=0 - break - fi - done - if [ $eof -eq 0 ]; then - # If place wasn't found, let $line be the end of the file - line=$((line-1)) - fi id="$id-$name" fi + echo "Creating test file '$id'" if [ -f $tdir/$id ] @@ -140,6 +73,53 @@ then exit 1 fi +if [ $# -eq 0 ] +then + + 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 + for d in $SRC_GROUPS; do + (cd "tests/$d/" ; ../../tools/mkgroupfile "$tmpfile") + l=$(set -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 + 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 +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" + fi + done + ans="$*" +fi + echo -n "Creating skeletal script for you to edit ..." year=`date +%Y` @@ -154,7 +134,7 @@ cat <$tdir/$id # what am I here for? # . ./common/preamble -_begin_fstest group list here +_begin_fstest $ans # Override the default cleanup function. # _cleanup() @@ -196,56 +176,5 @@ QA output created by $id Silence is golden End-of-File -if [ $# -eq 0 ] -then - - 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 - for d in $SRC_GROUPS; do - l=$(sed -n < tests/$d/group \ - -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 - 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 -else - # expert mode, groups are on the command line - # - for g in $* - do - if ! grep -q "[[:space:]]$g" "$tdir/group"; then - echo "Warning: group \"$g\" not defined in $tdir/group" - fi - done - ans="$*" -fi - -echo -n "Adding $id to group index ..." -head -n $(($line-1)) $tdir/group > /tmp/$$.group -echo "$id $ans" >> /tmp/$$.group -tail -n +$((line)) $tdir/group >> /tmp/$$.group -mv /tmp/$$.group $tdir/group echo " done." - exit 0