summaryrefslogtreecommitdiff
path: root/contrib/reghunt/examples/testall
blob: 61d99e0b6a6607d382827e382113c774f1ca4535 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#! /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