]> git.ipfire.org Git - thirdparty/gcc.git/blob - fixincludes/check.tpl
s390: testsuite: Fix risbg-ll-2.c
[thirdparty/gcc.git] / fixincludes / check.tpl
1 [= autogen5 template sh=check.sh =]
2 [=
3 #
4 # This file contains the shell template to run tests on the fixes
5 #
6 =]#!/bin/sh
7
8 set -e
9 TESTDIR=tests
10 TESTBASE=`cd $1;${PWDCMD-pwd}`
11
12 [ -d ${TESTDIR} ] || mkdir ${TESTDIR}
13 cd ${TESTDIR}
14 TESTDIR=`${PWDCMD-pwd}`
15
16 TARGET_MACHINE='*'
17 DESTDIR=`${PWDCMD-pwd}`/res
18 SRCDIR=`${PWDCMD-pwd}`/inc
19 FIND_BASE='.'
20 VERBOSE=[=` echo ${VERBOSE-1} `=]
21 INPUT=`${PWDCMD-pwd}`
22 ORIGDIR=${INPUT}
23
24 export TARGET_MACHINE DESTDIR SRCDIR FIND_BASE VERBOSE INPUT ORIGDIR
25
26 rm -rf ${DESTDIR} ${SRCDIR}
27 mkdir ${DESTDIR} ${SRCDIR}
28 (
29 [=
30 (shellf
31 "for f in %s
32 do case $f in
33 */* ) echo $f | sed 's;/[^/]*$;;' ;;
34 esac
35 done | sort -u | \
36 while read g
37 do echo \" mkdir \\${SRCDIR}/$g || mkdir -p \\${SRCDIR}/$g || exit 1\"
38 done" (join " " (stack "fix.files")) ) =]
39 ) 2> /dev/null[= # suppress 'No such file or directory' messages =]
40 cd inc
41 [=
42 (define sfile "")
43 (define HACK "")
44 (define dfile "") =][=
45
46 FOR fix =][=
47
48 IF (> (count "test_text") 1) =][=
49 (set! HACK (string-upcase! (get "hackname")))
50 (set! sfile (if (exist? "files") (get "files[]") "testing.h"))
51 (set! dfile (string-append
52 (if (*==* sfile "/")
53 (shellf "echo \"%s\"|sed 's,/[^/]*,/,'" sfile )
54 "" )
55 (string-tr! (get "hackname") "_A-Z" "-a-z")
56 ) ) =][=
57
58 FOR test_text (for-from 1) =]
59 cat >> [=(. sfile)=] <<_HACK_EOF_
60
61
62 #if defined( [=(. HACK)=]_CHECK_[=(for-index)=] )
63 [=test_text=]
64 #endif /* [=(. HACK)=]_CHECK_[=(for-index)=] */
65 _HACK_EOF_
66 echo [=(. sfile)=] | ../../fixincl
67 mv -f [=(. sfile)=] [=(. dfile)=]-[=(for-index)=].h
68 [ -f ${DESTDIR}/[=(. sfile)=] ] && [=#
69 =]mv ${DESTDIR}/[=(. sfile)=] ${DESTDIR}/[=(. dfile)=]-[=(for-index)=].h[=
70
71 ENDFOR test_text =][=
72
73 ENDIF multi-test =][=
74
75 ENDFOR fix
76
77 =][=
78
79 FOR fix =][=
80 (set! HACK (string-upcase! (get "hackname"))) =][=
81
82 IF (not (exist? "test_text")) =][=
83 (if (not (exist? "replace"))
84 (error (sprintf "include fix '%s' has no test text"
85 (get "hackname") )) )
86 =][=
87 ELSE =]
88 cat >> [= (raw-shell-str (if (exist? "files") (get "files[0]") "testing.h"))
89 =] <<_HACK_EOF_
90
91
92 #if defined( [=(. HACK)=]_CHECK )
93 [=test_text=]
94 #endif /* [=(. HACK)=]_CHECK */
95 _HACK_EOF_
96 [=ENDIF =][=
97
98 ENDFOR fix
99
100 =]
101
102 export TEST_MODE=true
103 find . -type f | sed 's;^\./;;' | sort | ../../fixincl
104 cd ${DESTDIR}
105
106 exitok=true
107
108 find * -type f -print > ${TESTDIR}/LIST
109
110 # Special hack for sys/types.h: the #define-d types for size_t,
111 # ptrdiff_t and wchar_t are different for each port. Therefore,
112 # strip off the defined-to type so that the test results are the
113 # same for all platforms.
114 #
115 sed 's/\(#define __[A-Z_]*_TYPE__\).*/\1/' sys/types.h > XX
116 mv -f XX sys/types.h
117
118 # The following subshell weirdness is for saving an exit
119 # status from within a while loop that reads input. If you can
120 # think of a cleaner way, suggest away, please...
121 #
122 exitok=`
123 exec < ${TESTDIR}/LIST
124 while read f
125 do
126 if [ -n "$MSYSTEM" -o -n "$DJGPP" ]
127 then
128 # On MinGW and DJGPP convert line endings to avoid false positives
129 mv $f $f.dos; tr -d '\r' < $f.dos > $f; rm $f.dos
130 fi
131 if [ ! -f ${TESTBASE}/$f ]
132 then
133 echo "Newly fixed header: $f" >&2
134 exitok=false
135
136 elif cmp $f ${TESTBASE}/$f >&2
137 then
138 :
139
140 else
141 ${DIFF:-diff} -c $f ${TESTBASE}/$f >&2 || :
142 exitok=false
143 fi
144 done
145 echo $exitok`
146
147 cd $TESTBASE
148
149 find * -type f ! -name .DS_Store ! -name CVS ! -name .svn -print \
150 > ${TESTDIR}/LIST
151
152 exitok=`
153 exec < ${TESTDIR}/LIST
154 while read f
155 do
156 if [ -s $f ] && [ ! -f ${DESTDIR}/$f ]
157 then
158 echo "Missing header fix: $f" >&2
159 exitok=false
160 fi
161 done
162 echo $exitok`
163
164 echo
165 if $exitok
166 then
167 cd ${TESTDIR}
168 rm -rf inc res LIST
169 cd ..
170 rmdir ${TESTDIR} > /dev/null 2>&1 || :
171 echo All fixinclude tests pass >&2
172 else
173 echo There were fixinclude test FAILURES >&2
174 fi
175 $exitok[=
176
177 (if (defined? 'set-writable) (set-writable))
178
179 =]