| #! /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 |