OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [fixincludes/] [check.tpl] - Blame information for rev 776

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 724 jeremybenn
[= 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
find . -type f | sed 's;^\./;;' | sort | ../../fixincl
103
cd ${DESTDIR}
104
 
105
exitok=true
106
 
107
find * -type f -print > ${TESTDIR}/LIST
108
 
109
#  Special hack for sys/types.h:  the #define-d types for size_t,
110
#  ptrdiff_t and wchar_t are different for each port.  Therefore,
111
#  strip off the defined-to type so that the test results are the
112
#  same for all platforms.
113
#
114
sed 's/\(#define __[A-Z_]*_TYPE__\).*/\1/' sys/types.h > XX
115
mv -f XX sys/types.h
116
 
117
#  The following subshell weirdness is for saving an exit
118
#  status from within a while loop that reads input.  If you can
119
#  think of a cleaner way, suggest away, please...
120
#
121
exitok=`
122
exec < ${TESTDIR}/LIST
123
while read f
124
do
125
  if [ ! -f ${TESTBASE}/$f ]
126
  then
127
    echo "Newly fixed header:  $f" >&2
128
    exitok=false
129
 
130
  elif cmp $f ${TESTBASE}/$f >&2
131
  then
132
    :
133
 
134
  else
135
    ${DIFF:-diff} -c $f ${TESTBASE}/$f >&2 || :
136
    exitok=false
137
  fi
138
done
139
echo $exitok`
140
 
141
cd $TESTBASE
142
 
143
find * -type f -print | \
144
fgrep -v 'CVS/' | \
145
fgrep -v '.svn/' > ${TESTDIR}/LIST
146
 
147
exitok=`
148
exec < ${TESTDIR}/LIST
149
while read f
150
do
151
  if [ -s $f ] && [ ! -f ${DESTDIR}/$f ]
152
  then
153
    echo "Missing header fix:  $f" >&2
154
    exitok=false
155
  fi
156
done
157
echo $exitok`
158
 
159
echo
160
if $exitok
161
then
162
  cd ${TESTDIR}
163
  rm -rf inc res LIST
164
  cd ..
165
  rmdir ${TESTDIR} > /dev/null 2>&1 || :
166
  echo All fixinclude tests pass >&2
167
else
168
  echo There were fixinclude test FAILURES  >&2
169
fi
170
$exitok[=
171
 
172
(if (defined? 'set-writable) (set-writable))
173
 
174
=]

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.