summaryrefslogtreecommitdiff
path: root/qa/show-me
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
committerIgor Pashev <pashev.igor@gmail.com>2014-10-26 12:33:50 +0400
commit47e6e7c84f008a53061e661f31ae96629bc694ef (patch)
tree648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/show-me
downloadpcp-47e6e7c84f008a53061e661f31ae96629bc694ef.tar.gz
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/show-me')
-rwxr-xr-xqa/show-me196
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