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