]>
Commit | Line | Data |
---|---|---|
865e0a83 | 1 | [= autogen5 template sh=check.sh =] |
7a544ce1 BK |
2 | [= |
3 | # | |
4 | # This file contanes the shell template to run tests on the fixes | |
5 | # | |
6 | =]#!/bin/sh | |
7 | ||
8 | set -e | |
5d7d28c2 | 9 | TESTDIR=tests |
1e6347d8 | 10 | TESTBASE=`cd $1;${PWDCMD-pwd}` |
5d7d28c2 BK |
11 | |
12 | [ -d ${TESTDIR} ] || mkdir ${TESTDIR} | |
13 | cd ${TESTDIR} | |
1e6347d8 | 14 | TESTDIR=`${PWDCMD-pwd}` |
7a544ce1 BK |
15 | |
16 | TARGET_MACHINE='*' | |
1e6347d8 RO |
17 | DESTDIR=`${PWDCMD-pwd}`/res |
18 | SRCDIR=`${PWDCMD-pwd}`/inc | |
7a544ce1 | 19 | FIND_BASE='.' |
7a9cdb10 | 20 | VERBOSE=[=` echo ${VERBOSE-1} `=] |
1e6347d8 | 21 | INPUT=`${PWDCMD-pwd}` |
62a99405 | 22 | ORIGDIR=${INPUT} |
7a544ce1 | 23 | |
62a99405 | 24 | export TARGET_MACHINE DESTDIR SRCDIR FIND_BASE VERBOSE INPUT ORIGDIR |
7a544ce1 | 25 | |
5d7d28c2 | 26 | rm -rf ${DESTDIR} ${SRCDIR} |
7a544ce1 | 27 | mkdir ${DESTDIR} ${SRCDIR} |
8d75cd1f BK |
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 =] | |
5d7d28c2 | 40 | cd inc |
7a544ce1 | 41 | [= |
8d75cd1f | 42 | (define sfile "") |
7b78a14a | 43 | (define HACK "") |
8d75cd1f | 44 | (define dfile "") =][= |
7a544ce1 | 45 | |
8d75cd1f | 46 | FOR fix =][= |
5d7d28c2 | 47 | |
8d75cd1f | 48 | IF (> (count "test_text") 1) =][= |
7b78a14a | 49 | (set! HACK (string-upcase! (get "hackname"))) |
8d75cd1f BK |
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_ | |
5d7d28c2 BK |
60 | |
61 | ||
7b78a14a | 62 | #if defined( [=(. HACK)=]_CHECK_[=(for-index)=] ) |
5d7d28c2 | 63 | [=test_text=] |
7b78a14a | 64 | #endif /* [=(. HACK)=]_CHECK_[=(for-index)=] */ |
5d7d28c2 | 65 | _HACK_EOF_ |
8d75cd1f BK |
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 | ||
865e0a83 | 71 | ENDFOR test_text =][= |
8d75cd1f BK |
72 | |
73 | ENDIF multi-test =][= | |
5d7d28c2 | 74 | |
865e0a83 | 75 | ENDFOR fix |
5d7d28c2 BK |
76 | |
77 | =][= | |
78 | ||
7b78a14a BK |
79 | FOR fix =][= |
80 | (set! HACK (string-upcase! (get "hackname"))) =][= | |
7a544ce1 | 81 | |
865e0a83 | 82 | IF (not (exist? "test_text")) =][= |
7b78a14a BK |
83 | (if (not (exist? "replace")) |
84 | (error (sprintf "include fix '%s' has no test text" | |
85 | (get "hackname") )) ) | |
86 | =][= | |
87 | ELSE =] | |
5d7d28c2 | 88 | cat >> [= |
865e0a83 | 89 | IF (exist? "files") =][= |
7a544ce1 | 90 | files[0] =][= |
865e0a83 BK |
91 | ELSE =]testing.h[= |
92 | ENDIF =] <<_HACK_EOF_ | |
7a544ce1 BK |
93 | |
94 | ||
7b78a14a | 95 | #if defined( [=(. HACK)=]_CHECK ) |
5d7d28c2 | 96 | [=test_text=] |
7b78a14a | 97 | #endif /* [=(. HACK)=]_CHECK */ |
7a544ce1 | 98 | _HACK_EOF_ |
865e0a83 | 99 | [=ENDIF =][= |
7a544ce1 | 100 | |
865e0a83 | 101 | ENDFOR fix |
7a544ce1 BK |
102 | |
103 | =] | |
104 | ||
7b78a14a | 105 | find . -type f | sed 's;^\./;;' | sort | ../../fixincl |
5d7d28c2 BK |
106 | cd ${DESTDIR} |
107 | ||
108 | exitok=true | |
35dfe415 | 109 | |
5d7d28c2 BK |
110 | find * -type f -print > ${TESTDIR}/LIST |
111 | ||
a83b3e4f BK |
112 | # Special hack for sys/types.h: the #define-d types for size_t, |
113 | # ptrdiff_t and wchar_t are different for each port. Therefore, | |
114 | # strip off the defined-to type so that the test results are the | |
115 | # same for all platforms. | |
116 | # | |
117 | sed 's/\(#define __[A-Z_]*_TYPE__\).*/\1/' sys/types.h > XX | |
118 | mv -f XX sys/types.h | |
119 | ||
120 | # The following subshell weirdness is for saving an exit | |
121 | # status from within a while loop that reads input. If you can | |
122 | # think of a cleaner way, suggest away, please... | |
123 | # | |
5d7d28c2 BK |
124 | exitok=` |
125 | exec < ${TESTDIR}/LIST | |
35dfe415 BK |
126 | while read f |
127 | do | |
5d7d28c2 BK |
128 | if [ ! -f ${TESTBASE}/$f ] |
129 | then | |
130 | echo "Newly fixed header: $f" >&2 | |
131 | exitok=false | |
132 | ||
133 | elif cmp $f ${TESTBASE}/$f >&2 | |
35dfe415 | 134 | then |
5d7d28c2 BK |
135 | : |
136 | ||
35dfe415 | 137 | else |
6bf1ffe1 | 138 | ${DIFF:-diff} -c $f ${TESTBASE}/$f >&2 || : |
5d7d28c2 | 139 | exitok=false |
35dfe415 | 140 | fi |
5d7d28c2 BK |
141 | done |
142 | echo $exitok` | |
35dfe415 | 143 | |
5d7d28c2 | 144 | cd $TESTBASE |
7a544ce1 | 145 | |
5d7d28c2 | 146 | find * -type f -print | \ |
42068fd9 | 147 | fgrep -v 'CVS/' | \ |
541c886c | 148 | fgrep -v '.svn/' > ${TESTDIR}/LIST |
7a544ce1 | 149 | |
5d7d28c2 BK |
150 | exitok=` |
151 | exec < ${TESTDIR}/LIST | |
152 | while read f | |
153 | do | |
154 | if [ -s $f ] && [ ! -f ${DESTDIR}/$f ] | |
155 | then | |
156 | echo "Missing header fix: $f" >&2 | |
157 | exitok=false | |
158 | fi | |
159 | done | |
160 | echo $exitok` | |
7a544ce1 | 161 | |
5d7d28c2 BK |
162 | echo |
163 | if $exitok | |
164 | then | |
165 | cd ${TESTDIR} | |
166 | rm -rf inc res LIST | |
167 | cd .. | |
168 | rmdir ${TESTDIR} > /dev/null 2>&1 || : | |
169 | echo All fixinclude tests pass >&2 | |
170 | else | |
171 | echo There were fixinclude test FAILURES >&2 | |
172 | fi | |
173 | $exitok[= | |
7a544ce1 | 174 | |
abaa8559 | 175 | (if (defined? 'set-writable) (set-writable)) |
5d7d28c2 | 176 | |
7a544ce1 | 177 | =] |