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