diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
commit | 47e6e7c84f008a53061e661f31ae96629bc694ef (patch) | |
tree | 648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/show-me | |
download | pcp-47e6e7c84f008a53061e661f31ae96629bc694ef.tar.gz |
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/show-me')
-rwxr-xr-x | qa/show-me | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/qa/show-me b/qa/show-me new file mode 100755 index 0000000..b7d1065 --- /dev/null +++ b/qa/show-me @@ -0,0 +1,196 @@ +#!/bin/sh +# +# Show me the QA tests that did not pass +# +# Copyright (c) 1997-2002 Silicon Graphics, Inc. All Rights Reserved. +# + +# generic initialization +iam=show-me +. ./common.rc + +HOST=`hostname` +QA_HOST= +QA_USER= +QA_DIR= + +if which gdiff >/dev/null 2>&1 +then + DIFF=gdiff +else + if which meld >/dev/null 2>&1 + then + DIFF=meld + else + if which xxdiff >/dev/null 2>&1 + then + DIFF=xxdiff + else + DIFF="diff -c" + fi + fi +fi + +tmp=/tmp/$$ +trap "cd /; rm -rf $tmp; exit" 0 1 2 3 15 +rm -rf $tmp +mkdir $tmp + +not_me=false +local=true +keep=false +while getopts d:h:klu: c +do + case $c in + d) QA_DIR=$OPTARG + not_me=true + ;; + + h) QA_HOST=$OPTARG + local=false + ;; + + k) keep=true + ;; + + l) DIFF="diff -c" + ;; + + u) QA_USER=$OPTARG + not_me=true + ;; + + \?) echo "Usage: show-me [-l] [-k] [-d dir] [-h host] [-u user] [test ...]" + exit 2;; + esac +done +shift `expr $OPTIND - 1` + +if [ -z "$QA_DIR" ] +then + if [ -z "$QA_HOST" -o "$QA_HOST" = localhost -o "$QA_HOST" = "`hostname`" ] + then + if [ -z "$QA_USER" -o "$QA_USER" = "$LOGNAME" ] + then + # local and really me + QA_DIR_DEFAULT=`pwd` + else + QA_DIR_DEFAULT=`ssh $QA_USER@$QA_HOST "/bin/ls -d isms/pcp[1-9]*/qa" 2>/dev/null | grep '^isms/' | tail -1` + fi + else + QA_DIR_DEFAULT=`ssh $QA_USER@$QA_HOST "/bin/ls -d isms/pcp[1-9]*/qa" 2>/dev/null | grep '^isms/' | tail -1` + fi + if [ "$QA_DIR_DEFAULT" = "" ] + then + QA_DIR_DEFAULT=isms/pcp/qa + fi + QA_DIR="$QA_DIR_DEFAULT" +fi + +if [ $# -eq -0 ] +then + if $local + then + list="`echo *.out.bad \ + | tr ' ' '\012' \ + | sed -e 's/\.out\.bad//' \ + | LC_COLLATE=POSIX sort -n`" + if [ "$list" = '*' ] + then + echo "No failing tests!" + exit + fi + set - `echo $list` + else + x=`ssh $QA_USER@$QA_HOST echo $QA_DIR/\[0-9]*.out.bad 2>$tmp.err` + if [ -z "$x" ] + then + if [ -s $tmp.err ] + then + echo "ssh failed?" + cat $tmp.err + else + echo "No failing tests!" + fi + exit + fi + set - `echo "$x" \ + | tr ' ' '\012' \ + | sed -e 's/.*\///' -e 's/.out.bad//' \ + | LC_COLLATE=POSIX sort -n` + echo "Failing tests: $*" + fi +fi + +unset ROOT TOOLROOT MAKEFLAGS +quick=true +check=false +. ./common + +here=`pwd` + +for id +do + case "$id" + in + [0-9]) + id=00$id + ;; + [0-9][0-9]) + id=0$id + ;; + esac + + if [ "$QA_HOST" != $HOST ] + then + echo "Fetch files from $QA_USER@$QA_HOST:$QA_DIR ..." + rm -f $tmp/$id.out.bad $tmp/$id.out + scp $QA_USER@$QA_HOST:$QA_DIR/$id.out.bad $tmp + scp $QA_USER@$QA_HOST:$QA_DIR/$id.out $tmp + cd $tmp + elif $not_me + then + if [ -d $QA_DIR ] + then + cd $QA_DIR + else + echo "$id: No directory: $QA_DIR" + exit 1 + fi + fi + $PCP_ECHO_PROG $PCP_ECHO_N "$id: ""$PCP_ECHO_C" + if [ ! -f $id.out ] + then + echo "Could not find $id.out in `pwd`" + elif [ ! -f $id.out.bad ] + then + echo "Could not find $id.out.bad in `pwd`" + else + echo + if [ "$DIFF" = xxdiff ] + then + $DIFF $id.out $id.out.bad >/dev/null 2>&1 + else + $DIFF $id.out $id.out.bad + fi + fi + if $keep + then + if [ -f $here/$id.out.bad ] + then + if diff $here/$id.out.bad $id.out.bad >diff.tmp + then + # same + : + else + echo "Warning: overwriting $id.out.bad ... diffs" + cat diff.tmp + rm -f $here/$id.out.bad + mv $id.out.bad $here + fi + else + mv $id.out.bad $here + fi + fi + cd $here +done |