1#! /bin/sh
2
3# Run one or more regression hunts
4#
5# The file specified as the single argument is a queue of regression
6# hunts and/or lists of patches to test.  Each entry in the file is
7# "hunt" or "test" followed by a bugid for which there is a config
8# file and other required files (patch list and test source file).
9# Each line of the file is removed as it is processed, and new ones
10# can be added while the script is still running.
11
12#set -ex
13
14if [ $# != 1 ]; then
15  echo "usage: $0 testfile"
16  exit 1
17fi
18
19REGFILE=$1
20TMPFILE=testall.tmp
21
22if [ ! -f $REGFILE ]; then
23  echo "$0: file $REGFILE does not exist"
24  exit 1
25fi
26
27RETURN_FOR_TEST=return
28RETURN_FOR_TEST=true
29
30. ../gcc-svn-env
31
32hunt() {
33  id=$1
34
35  echo regression hunt for $id
36  $RETURN_FOR_TEST
37  $REG_CLEANUP
38  reg-hunt $id.config >> $id.log 2>&1
39  tail -n 1 $id.log
40  #tail -n 1 $id.log | mutt -s "reghunt for $id finished" janis187
41}
42
43testit() {
44  id=$1
45
46  echo testing specific dates for $id
47  $RETURN_FOR_TEST
48  $REG_CLEANUP
49  reg-test $id.config >> $id.log 2>&1
50  #mutt -s "reg-test for $id finished" janis187 < /dev/null
51}
52
53rm -f $REG_STOP
54
55while
56  read WHICH ID < $REGFILE
57do
58  if [ -f $REG_STOP ]; then
59    echo "$REG_STOP detected"
60    rm -f $REG_STOP
61    exit 1
62  fi
63
64  sed 1d < $REGFILE > $TMPFILE
65  mv $TMPFILE $REGFILE
66
67  case $WHICH in
68    hunt)  hunt $ID;;
69    test)  testit $ID;;
70    *)     echo "unknown action $WHICH, skipping $ID";;
71  esac
72  echo
73done
74