#! /bin/sh # Run one or more regression hunts # # The file specified as the single argument is a queue of regression # hunts and/or lists of patches to test. Each entry in the file is # "hunt" or "test" followed by a bugid for which there is a config # file and other required files (patch list and test source file). # Each line of the file is removed as it is processed, and new ones # can be added while the script is still running. #set -ex if [ $# != 1 ]; then echo "usage: $0 testfile" exit 1 fi REGFILE=$1 TMPFILE=testall.tmp if [ ! -f $REGFILE ]; then echo "$0: file $REGFILE does not exist" exit 1 fi RETURN_FOR_TEST=return RETURN_FOR_TEST=true . ../gcc-svn-env hunt() { id=$1 echo regression hunt for $id $RETURN_FOR_TEST $REG_CLEANUP reg-hunt $id.config >> $id.log 2>&1 tail -n 1 $id.log #tail -n 1 $id.log | mutt -s "reghunt for $id finished" janis187 } testit() { id=$1 echo testing specific dates for $id $RETURN_FOR_TEST $REG_CLEANUP reg-test $id.config >> $id.log 2>&1 #mutt -s "reg-test for $id finished" janis187 < /dev/null } rm -f $REG_STOP while read WHICH ID < $REGFILE do if [ -f $REG_STOP ]; then echo "$REG_STOP detected" rm -f $REG_STOP exit 1 fi sed 1d < $REGFILE > $TMPFILE mv $TMPFILE $REGFILE case $WHICH in hunt) hunt $ID;; test) testit $ID;; *) echo "unknown action $WHICH, skipping $ID";; esac echo done |