X-Git-Url: http://git.apps.os.sepia.ceph.com/?p=xfstests-dev.git;a=blobdiff_plain;f=new;h=bb427f0db23619f9032adc321738ef97483a4fb1;hp=d1f8939d963b3ca28bdcc089a0dc95b4bdf31cac;hb=69db2233f3570ca64e78300bcc04fef183775ee3;hpb=d3d25b0cd43cd2c7880afa9288e1b564e4bf87b3 diff --git a/new b/new index d1f8939d..bb427f0d 100755 --- a/new +++ b/new @@ -1,29 +1,13 @@ #! /bin/bash -# -#----------------------------------------------------------------------- -# Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it would be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# -#----------------------------------------------------------------------- +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved. # # Make a new test # # generic initialization iam=new -. ./common/rc +. ./common/test_names trap "rm -f /tmp/$$.; exit" 0 1 2 3 15 @@ -81,11 +65,17 @@ line=0 eof=1 [ -f "$tdir/group" ] || usage -for found in `cat $tdir/group | $AWK_PROG '{ print $1 }'` +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 + 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` @@ -100,7 +90,48 @@ if [ $eof -eq 1 ]; then id=`printf "%03d" $i` fi -echo "Next test is $id" +echo "Next test id is $id" + +read -p "Append a name to the ID? Test name will be $id-\$name. y,[n]: " -r +if [[ $REPLY = [Yy] ]]; then + # get the new name from user + name="" + while [ "$name" = "" ]; do + read -p "Enter the name: " + if [ "$REPLY" = "" ]; then + echo "For canceling, use ctrl+c." + elif echo "$id-$REPLY" | grep -q "^$VALID_TEST_NAME$"; then + if [ -e "$tdir/$id-$REPLY" ]; then + echo "File '$id-$REPLY' already exists, use another one." + echo + else + name="$REPLY" + fi + else + echo "A name can contain only alphanumeric symbols and dash!" + echo + 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 ] then @@ -115,28 +146,13 @@ year=`date +%Y` cat <$tdir/$id #! /bin/bash -# FS QA Test No. $id -# -# what am I here for? -# -#----------------------------------------------------------------------- +# SPDX-License-Identifier: GPL-2.0 # Copyright (c) $year YOUR NAME HERE. All Rights Reserved. # -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation. +# FS QA Test $id # -# This program is distributed in the hope that it would be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write the Free Software Foundation, -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -#----------------------------------------------------------------------- +# what am I here for? # - seq=\`basename \$0\` seqres=\$RESULT_DIR/\$seq echo "QA output created by \$seq" @@ -156,11 +172,13 @@ _cleanup() . ./common/rc . ./common/filter +# remove previous \$seqres.full before test +rm -f \$seqres.full + # real QA test starts here # Modify as appropriate. _supported_fs generic -_supported_os IRIX Linux _require_test # if error @@ -181,12 +199,18 @@ echo "" chmod 755 $tdir/$id ${EDITOR-vi} $tdir/$id +# Create default .out file +cat <$tdir/$id.out +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] (? for list): " + echo -n "Add to group(s) [other] (separate by space, ? for list): " read ans [ -z "$ans" ] && ans=other if [ "X$ans" = "X?" ] @@ -201,7 +225,17 @@ then lst=`for word in $grpl; do echo $word; done | sort| uniq ` echo $lst else - break + # 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