OSDN Git Service

5bc8aa3e5aa75d9288c134a64fc11b6a3e65c47a
[pf3gnuchains/gcc-fork.git] / gcc / fixinc / check.tpl
1 [= autogen template sh=check.sh =]
2 [=
3 #
4 #  This file contanes the shell template to run tests on the fixes
5 #
6 =]#!/bin/sh
7
8 set -e
9 TESTDIR=tests
10 TESTBASE=`cd $1;pwd`
11
12 [ -d ${TESTDIR} ] || mkdir ${TESTDIR}
13 cd ${TESTDIR}
14 TESTDIR=`pwd`
15
16 TARGET_MACHINE='*'
17 DESTDIR=`pwd`/res
18 SRCDIR=`pwd`/inc
19 FIND_BASE='.'
20 VERBOSE=1
21
22 export TARGET_MACHINE DESTDIR SRCDIR FIND_BASE VERBOSE
23
24 rm -rf ${DESTDIR} ${SRCDIR}
25 mkdir ${DESTDIR} ${SRCDIR}
26
27 ( cd ${SRCDIR}
28   set +e
29   for f in [=
30
31   _EVAL fix.files _stack _join "echo `
32
33   for f in %s
34   do case $f in
35      */* ) echo $f | sed 's;/[^/]*$;;' ;;
36      esac
37   done | sort -u
38
39   ` " _printf _shell =]
40   do
41     mkdir $f || mkdir -p $f
42   done ) > /dev/null 2>&1
43
44 cd inc
45 [=
46
47 _FOR fix =][=
48
49   _IF test_text _count 1 > =]
50 #
51 #  [=hackname=] has [=_EVAL test_text _count=] tests
52 #
53 sfile=[=
54     _IF files _exist =][=
55       files[0] =][=
56     _ELSE =]testing.h[=
57     _ENDIF =]
58 dfile=`dirname $sfile`/[=hackname "_A-Z" "-a-z" _tr=]-[=_EVAL _index=].h
59 fixnum=[=_EVAL _index=][=
60     _FOR test_text FROM 1 =]
61 cat >> $sfile <<_HACK_EOF_
62
63
64 #if defined( [=hackname _up=]_CHECK_[=_EVAL _index=] )
65 [=test_text=]
66 #endif  /* [=hackname _up=]_CHECK_[=_EVAL _index=] */
67 _HACK_EOF_
68 echo $sfile | ../../fixincl
69 [ -f ${DESTDIR}/$sfile ] && mv ${DESTDIR}/$sfile ${DESTDIR}/$dfile[=
70     /test_text =][=
71   _ENDIF =][=
72
73 /fix
74
75 =][=
76
77 _FOR fix =][=
78
79   _IF test_text _exist ! =][=
80     _IF replace _exist ! =]
81 echo No test for [=hackname=] in inc/[=
82       _IF files _exist =][=
83         files[0] =][=
84       _ELSE =]testing.h[=
85       _ENDIF =][=
86     _ENDIF =][=
87   _ELSE =]
88 cat >> [=
89     _IF files _exist =][=
90       files[0] =][=
91     _ELSE =]testing.h[=
92     _ENDIF =] <<_HACK_EOF_
93
94
95 #if defined( [=hackname _up=]_CHECK )
96 [=test_text=]
97 #endif  /* [=hackname _up=]_CHECK */
98 _HACK_EOF_
99 [=_ENDIF =][=
100
101 /fix
102
103 =]
104
105 find . -type f | sed 's;\./;;' | sort | ../../fixincl
106 cd ${DESTDIR}
107
108 exitok=true
109
110 find * -type f -print > ${TESTDIR}/LIST
111
112 exitok=`
113 exec < ${TESTDIR}/LIST
114 while read f
115 do
116   if [ ! -f ${TESTBASE}/$f ]
117   then
118     echo "Newly fixed header:  $f" >&2
119     exitok=false
120
121   elif cmp $f ${TESTBASE}/$f >&2
122   then
123     :
124
125   else
126     diff -c $f ${TESTBASE}/$f >&2 || :
127     exitok=false
128   fi
129 done
130 echo $exitok`
131
132 cd $TESTBASE
133
134 find * -type f -print | \
135 fgrep -v 'CVS/' > ${TESTDIR}/LIST
136
137 exitok=`
138 exec < ${TESTDIR}/LIST
139 while read f
140 do
141   if [ -s $f ] && [ ! -f ${DESTDIR}/$f ]
142   then
143     echo "Missing header fix:  $f" >&2
144     exitok=false
145   fi
146 done
147 echo $exitok`
148
149 echo
150 if $exitok
151 then
152   cd ${TESTDIR}
153   rm -rf inc res LIST
154   cd ..
155   rmdir ${TESTDIR} > /dev/null 2>&1 || :
156   echo All fixinclude tests pass >&2
157 else
158   echo There were fixinclude test FAILURES  >&2
159 fi
160 $exitok[=
161
162 _eval _outfile "chmod +x %s" _printf _shell
163
164 =]