From: Dave Chinner <dchinner@xxxxxxxxxx> There is only one user of the common file now - check. Fold the two into one file as the split of functionality is not necessary anymore. Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> --- check | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- common | 334 ---------------------------------------------------------------- 2 files changed, 311 insertions(+), 336 deletions(-) delete mode 100644 common diff --git a/check b/check index a4af0f6..bccdc08 100755 --- a/check +++ b/check @@ -44,9 +44,318 @@ then exit 1 fi -# we need common -. ./common +# argument parsing first - currently very messy, needs cleanup. +_setenvironment() +{ + MSGVERB="text:action" + export MSGVERB +} + +usage() +{ + echo "Usage: $0 [options] [testlist]"' + +common options + -v verbose + +check options + -xfs test XFS (default) + -udf test UDF + -nfs test NFS + -l line mode diff + -xdiff graphical mode diff + -udiff show unified diff (default) + -n show me, do not run tests + -q quick [deprecated] + -T output timestamps + -r randomize test order + --large-fs optimise scratch device for large filesystems + +testlist options + -g group[,group...] include tests from these groups + -x group[,group...] exclude tests from these groups + NNN include test NNN + NNN-NNN include test range (eg. 012-021) +' + exit 0 +} + +here=`pwd` +rm -f $here/$iam.out +_setenvironment + +check=${check-true} + +diff="diff -u" +verbose=false +group=false +xgroup=false +showme=false +sortme=false +expunge=true +have_test_arg=false +randomize=false +rm -f $tmp.list $tmp.tmp $tmp.sed + +# Autodetect fs type based on what's on $TEST_DEV +if [ "$HOSTOS" == "Linux" ] +then + export FSTYP=`blkid -c /dev/null -s TYPE -o value $TEST_DEV` +else + export FSTYP=xfs +fi + +for r +do + + if $group + then + # arg after -g + group_list=$(sed -n < group \ + -e 's/#.*//' \ + -e 's/$/ /' \ + -e "/^[0-9][0-9][0-9].* $r /"'{ s/ .*//p }') + if [ -z "$group_list" ] + then + echo "Group \"$r\" is empty or not defined?" + exit 1 + fi + [ ! -s $tmp.list ] && touch $tmp.list + for t in $group_list + do + if grep -s "^$t\$" $tmp.list >/dev/null + then + : + else + echo "$t" >>$tmp.list + fi + done + group=false + continue + + elif $xgroup + then + # arg after -x + [ ! -s $tmp.list ] && ls [0-9][0-9][0-9] [0-9][0-9][0-9][0-9] >$tmp.list 2>/dev/null + group_list=`sed -n <group -e 's/$/ /' -e "/^[0-9][0-9][0-9].* $r /"'{ +s/ .*//p +}'` + if [ -z "$group_list" ] + then + echo "Group \"$r\" is empty or not defined?" + exit 1 + fi + numsed=0 + rm -f $tmp.sed + for t in $group_list + do + if [ $numsed -gt 100 ] + then + sed -f $tmp.sed <$tmp.list >$tmp.tmp + mv $tmp.tmp $tmp.list + numsed=0 + rm -f $tmp.sed + fi + echo "/^$t\$/d" >>$tmp.sed + numsed=`expr $numsed + 1` + done + sed -f $tmp.sed <$tmp.list >$tmp.tmp + mv $tmp.tmp $tmp.list + xgroup=false + continue + fi + + xpand=true + case "$r" + in + + -\? | -h | --help) # usage + usage + ;; + + -udf) # -udf ... set FSTYP to udf + FSTYP=udf + xpand=false + ;; + + -xfs) # -xfs ... set FSTYP to xfs + FSTYP=xfs + xpand=false + ;; + + -nfs) # -nfs ... set FSTYP to nfs + FSTYP=nfs + xpand=false + ;; + + -g) # -g group ... pick from group file + group=true + xpand=false + ;; + + -l) # line mode for diff, was default before + diff="diff" + xpand=false + ;; + + -xdiff) # graphical diff mode + xpand=false + + if [ ! -z "$DISPLAY" ] + then + which xdiff >/dev/null 2>&1 && diff=xdiff + which gdiff >/dev/null 2>&1 && diff=gdiff + which tkdiff >/dev/null 2>&1 && diff=tkdiff + which xxdiff >/dev/null 2>&1 && diff=xxdiff + fi + ;; + + -udiff) # show a unified diff, default now, keep for backward compat + xpand=false + diff="$diff -u" + ;; + + -q) # "quick", no longer used - always quick :-) + xpand=false + ;; + + -n) # show me, don't do it + showme=true + xpand=false + ;; + -r) # randomize test order + randomize=true + xpand=false + ;; + + -T) # turn on timestamp output + timestamp=true + xpand=false + ;; + + -v) + verbose=true + xpand=false + ;; + -x) # -x group ... exclude from group file + xgroup=true + xpand=false + ;; + '[0-9][0-9][0-9] [0-9][0-9][0-9][0-9]') + echo "No tests?" + status=1 + exit $status + ;; + + [0-9]*-[0-9]*) + eval `echo $r | sed -e 's/^/start=/' -e 's/-/ end=/'` + ;; + + [0-9]*-) + eval `echo $r | sed -e 's/^/start=/' -e 's/-//'` + end=`echo [0-9][0-9][0-9] [0-9][0-9][0-9][0-9] | sed -e 's/\[0-9]//g' -e 's/ *$//' -e 's/.* //'` + if [ -z "$end" ] + then + echo "No tests in range \"$r\"?" + status=1 + exit $status + fi + ;; + + --large-fs) + export LARGE_SCRATCH_DEV=yes + xpand=false + ;; + + -*) + usage + ;; + + --extra-space=*) + export SCRATCH_DEV_EMPTY_SPACE=${r#*=} + xpand=false + ;; + + *) + start=$r + end=$r + ;; + + esac + + # get rid of leading 0s as can be interpreted as octal + start=`echo $start | sed 's/^0*//'` + end=`echo $end | sed 's/^0*//'` + + if $xpand + then + have_test_arg=true + $AWK_PROG </dev/null ' +BEGIN { for (t='$start'; t<='$end'; t++) printf "%03d\n",t }' \ + | while read id + do + if grep -s "^$id " group >/dev/null + then + # in group file ... OK + echo $id >>$tmp.list + else + if [ -f expunged ] && $expunge && egrep "^$id([ ]|\$)" expunged >/dev/null + then + # expunged ... will be reported, but not run, later + echo $id >>$tmp.list + else + # oops + echo "$id - unknown test, ignored" + fi + fi + done + fi + +done + +if [ -s $tmp.list ] +then + # found some valid test numbers ... this is good + : +else + if $have_test_arg + then + # had test numbers, but none in group file ... do nothing + touch $tmp.list + else + # no test numbers, do everything from group file + sed -n -e '/^[0-9][0-9][0-9]*/s/[ ].*//p' <group >$tmp.list + fi +fi + +# should be sort -n, but this did not work for Linux when this +# was ported from IRIX +# +list=`sort $tmp.list` +rm -f $tmp.list $tmp.tmp $tmp.sed + +if $randomize +then + list=`echo $list | awk -f randomize.awk` +fi +case "$FSTYP" in + xfs) + [ "$XFS_LOGPRINT_PROG" = "" ] && _fatal "xfs_logprint not found" + [ "$XFS_REPAIR_PROG" = "" ] && _fatal "xfs_repair not found" + [ "$XFS_CHECK_PROG" = "" ] && _fatal "xfs_check not found" + [ "$XFS_DB_PROG" = "" ] && _fatal "xfs_db not found" + [ "$MKFS_XFS_PROG" = "" ] && _fatal "mkfs_xfs not found" + ;; + udf) + [ "$MKFS_UDF_PROG" = "" ] && _fatal "mkfs_udf/mkudffs not found" + ;; + btrfs) + [ "$MKFS_BTRFS_PROG" = "" ] && _fatal "mkfs.btrfs not found" + ;; + nfs) + ;; +esac # we need common.rc if ! . ./common.rc diff --git a/common b/common deleted file mode 100644 index 78ac654..0000000 --- a/common +++ /dev/null @@ -1,334 +0,0 @@ -##/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 -# -# -# common procedures for QA scripts -# -# $Header: /disk7/depot/linux/pcp/dev/qa/RCS/common,v 2.52 2000/04/05 18:24:51 kenmcd Exp $ -# - -_setenvironment() -{ - MSGVERB="text:action" - export MSGVERB -} - -usage() -{ - echo "Usage: $0 [options] [testlist]"' - -common options - -v verbose - -check options - -xfs test XFS (default) - -udf test UDF - -nfs test NFS - -l line mode diff - -xdiff graphical mode diff - -udiff show unified diff (default) - -n show me, do not run tests - -q quick [deprecated] - -T output timestamps - -r randomize test order - --large-fs optimise scratch device for large filesystems - -testlist options - -g group[,group...] include tests from these groups - -x group[,group...] exclude tests from these groups - NNN include test NNN - NNN-NNN include test range (eg. 012-021) -' - exit 0 -} - -here=`pwd` -rm -f $here/$iam.out -_setenvironment - -check=${check-true} - -diff="diff -u" -verbose=false -group=false -xgroup=false -showme=false -sortme=false -expunge=true -have_test_arg=false -randomize=false -rm -f $tmp.list $tmp.tmp $tmp.sed - -# Autodetect fs type based on what's on $TEST_DEV -if [ "$HOSTOS" == "Linux" ] -then - export FSTYP=`blkid -c /dev/null -s TYPE -o value $TEST_DEV` -else - export FSTYP=xfs -fi - -for r -do - - if $group - then - # arg after -g - group_list=$(sed -n < group \ - -e 's/#.*//' \ - -e 's/$/ /' \ - -e "/^[0-9][0-9][0-9].* $r /"'{ s/ .*//p }') - if [ -z "$group_list" ] - then - echo "Group \"$r\" is empty or not defined?" - exit 1 - fi - [ ! -s $tmp.list ] && touch $tmp.list - for t in $group_list - do - if grep -s "^$t\$" $tmp.list >/dev/null - then - : - else - echo "$t" >>$tmp.list - fi - done - group=false - continue - - elif $xgroup - then - # arg after -x - [ ! -s $tmp.list ] && ls [0-9][0-9][0-9] [0-9][0-9][0-9][0-9] >$tmp.list 2>/dev/null - group_list=`sed -n <group -e 's/$/ /' -e "/^[0-9][0-9][0-9].* $r /"'{ -s/ .*//p -}'` - if [ -z "$group_list" ] - then - echo "Group \"$r\" is empty or not defined?" - exit 1 - fi - numsed=0 - rm -f $tmp.sed - for t in $group_list - do - if [ $numsed -gt 100 ] - then - sed -f $tmp.sed <$tmp.list >$tmp.tmp - mv $tmp.tmp $tmp.list - numsed=0 - rm -f $tmp.sed - fi - echo "/^$t\$/d" >>$tmp.sed - numsed=`expr $numsed + 1` - done - sed -f $tmp.sed <$tmp.list >$tmp.tmp - mv $tmp.tmp $tmp.list - xgroup=false - continue - fi - - xpand=true - case "$r" - in - - -\? | -h | --help) # usage - usage - ;; - - -udf) # -udf ... set FSTYP to udf - FSTYP=udf - xpand=false - ;; - - -xfs) # -xfs ... set FSTYP to xfs - FSTYP=xfs - xpand=false - ;; - - -nfs) # -nfs ... set FSTYP to nfs - FSTYP=nfs - xpand=false - ;; - - -g) # -g group ... pick from group file - group=true - xpand=false - ;; - - -l) # line mode for diff, was default before - diff="diff" - xpand=false - ;; - - -xdiff) # graphical diff mode - xpand=false - - if [ ! -z "$DISPLAY" ] - then - which xdiff >/dev/null 2>&1 && diff=xdiff - which gdiff >/dev/null 2>&1 && diff=gdiff - which tkdiff >/dev/null 2>&1 && diff=tkdiff - which xxdiff >/dev/null 2>&1 && diff=xxdiff - fi - ;; - - -udiff) # show a unified diff, default now, keep for backward compat - xpand=false - diff="$diff -u" - ;; - - -q) # "quick", no longer used - always quick :-) - xpand=false - ;; - - -n) # show me, don't do it - showme=true - xpand=false - ;; - -r) # randomize test order - randomize=true - xpand=false - ;; - - -T) # turn on timestamp output - timestamp=true - xpand=false - ;; - - -v) - verbose=true - xpand=false - ;; - -x) # -x group ... exclude from group file - xgroup=true - xpand=false - ;; - '[0-9][0-9][0-9] [0-9][0-9][0-9][0-9]') - echo "No tests?" - status=1 - exit $status - ;; - - [0-9]*-[0-9]*) - eval `echo $r | sed -e 's/^/start=/' -e 's/-/ end=/'` - ;; - - [0-9]*-) - eval `echo $r | sed -e 's/^/start=/' -e 's/-//'` - end=`echo [0-9][0-9][0-9] [0-9][0-9][0-9][0-9] | sed -e 's/\[0-9]//g' -e 's/ *$//' -e 's/.* //'` - if [ -z "$end" ] - then - echo "No tests in range \"$r\"?" - status=1 - exit $status - fi - ;; - - --large-fs) - export LARGE_SCRATCH_DEV=yes - xpand=false - ;; - - -*) - usage - ;; - - --extra-space=*) - export SCRATCH_DEV_EMPTY_SPACE=${r#*=} - xpand=false - ;; - - *) - start=$r - end=$r - ;; - - esac - - # get rid of leading 0s as can be interpreted as octal - start=`echo $start | sed 's/^0*//'` - end=`echo $end | sed 's/^0*//'` - - if $xpand - then - have_test_arg=true - $AWK_PROG </dev/null ' -BEGIN { for (t='$start'; t<='$end'; t++) printf "%03d\n",t }' \ - | while read id - do - if grep -s "^$id " group >/dev/null - then - # in group file ... OK - echo $id >>$tmp.list - else - if [ -f expunged ] && $expunge && egrep "^$id([ ]|\$)" expunged >/dev/null - then - # expunged ... will be reported, but not run, later - echo $id >>$tmp.list - else - # oops - echo "$id - unknown test, ignored" - fi - fi - done - fi - -done - -if [ -s $tmp.list ] -then - # found some valid test numbers ... this is good - : -else - if $have_test_arg - then - # had test numbers, but none in group file ... do nothing - touch $tmp.list - else - # no test numbers, do everything from group file - sed -n -e '/^[0-9][0-9][0-9]*/s/[ ].*//p' <group >$tmp.list - fi -fi - -# should be sort -n, but this did not work for Linux when this -# was ported from IRIX -# -list=`sort $tmp.list` -rm -f $tmp.list $tmp.tmp $tmp.sed - -if $randomize -then - list=`echo $list | awk -f randomize.awk` -fi - -case "$FSTYP" in - xfs) - [ "$XFS_LOGPRINT_PROG" = "" ] && _fatal "xfs_logprint not found" - [ "$XFS_REPAIR_PROG" = "" ] && _fatal "xfs_repair not found" - [ "$XFS_CHECK_PROG" = "" ] && _fatal "xfs_check not found" - [ "$XFS_DB_PROG" = "" ] && _fatal "xfs_db not found" - [ "$MKFS_XFS_PROG" = "" ] && _fatal "mkfs_xfs not found" - ;; - udf) - [ "$MKFS_UDF_PROG" = "" ] && _fatal "mkfs_udf/mkudffs not found" - ;; - btrfs) - [ "$MKFS_BTRFS_PROG" = "" ] && _fatal "mkfs.btrfs not found" - ;; - nfs) - ;; -esac -- 1.7.10 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs