##/bin/sh # # Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved. # # 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 } here=`pwd` rm -f $here/$iam.out _setenvironment check=${check-true} diff=diff 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 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 export FSTYP=xfs for r do if $group then # arg after -g group_list=`sed -n /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 $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 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] -n show me, do not run tests -q quick [deprecated] -T output timestamps -r randomize test order 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 ;; -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, not gdiff over modems diff=diff xpand=false ;; -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 ;; *) 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 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' $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" ;; nfs) ;; esac