From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- fixincludes/check.tpl | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 fixincludes/check.tpl (limited to 'fixincludes/check.tpl') diff --git a/fixincludes/check.tpl b/fixincludes/check.tpl new file mode 100644 index 000000000..b239d8b55 --- /dev/null +++ b/fixincludes/check.tpl @@ -0,0 +1,177 @@ +[= autogen5 template sh=check.sh =] +[= +# +# This file contains the shell template to run tests on the fixes +# +=]#!/bin/sh + +set -e +TESTDIR=tests +TESTBASE=`cd $1;${PWDCMD-pwd}` + +[ -d ${TESTDIR} ] || mkdir ${TESTDIR} +cd ${TESTDIR} +TESTDIR=`${PWDCMD-pwd}` + +TARGET_MACHINE='*' +DESTDIR=`${PWDCMD-pwd}`/res +SRCDIR=`${PWDCMD-pwd}`/inc +FIND_BASE='.' +VERBOSE=[=` echo ${VERBOSE-1} `=] +INPUT=`${PWDCMD-pwd}` +ORIGDIR=${INPUT} + +export TARGET_MACHINE DESTDIR SRCDIR FIND_BASE VERBOSE INPUT ORIGDIR + +rm -rf ${DESTDIR} ${SRCDIR} +mkdir ${DESTDIR} ${SRCDIR} +( +[= + (shellf + "for f in %s + do case $f in + */* ) echo $f | sed 's;/[^/]*$;;' ;; + esac + done | sort -u | \ + while read g + do echo \" mkdir \\${SRCDIR}/$g || mkdir -p \\${SRCDIR}/$g || exit 1\" + done" (join " " (stack "fix.files")) ) =] +) 2> /dev/null[= # suppress 'No such file or directory' messages =] +cd inc +[= +(define sfile "") +(define HACK "") +(define dfile "") =][= + +FOR fix =][= + + IF (> (count "test_text") 1) =][= + (set! HACK (string-upcase! (get "hackname"))) + (set! sfile (if (exist? "files") (get "files[]") "testing.h")) + (set! dfile (string-append + (if (*==* sfile "/") + (shellf "echo \"%s\"|sed 's,/[^/]*,/,'" sfile ) + "" ) + (string-tr! (get "hackname") "_A-Z" "-a-z") + ) ) =][= + + FOR test_text (for-from 1) =] +cat >> [=(. sfile)=] <<_HACK_EOF_ + + +#if defined( [=(. HACK)=]_CHECK_[=(for-index)=] ) +[=test_text=] +#endif /* [=(. HACK)=]_CHECK_[=(for-index)=] */ +_HACK_EOF_ +echo [=(. sfile)=] | ../../fixincl +mv -f [=(. sfile)=] [=(. dfile)=]-[=(for-index)=].h +[ -f ${DESTDIR}/[=(. sfile)=] ] && [=# + =]mv ${DESTDIR}/[=(. sfile)=] ${DESTDIR}/[=(. dfile)=]-[=(for-index)=].h[= + + ENDFOR test_text =][= + + ENDIF multi-test =][= + +ENDFOR fix + +=][= + +FOR fix =][= + (set! HACK (string-upcase! (get "hackname"))) =][= + + IF (not (exist? "test_text")) =][= + (if (not (exist? "replace")) + (error (sprintf "include fix '%s' has no test text" + (get "hackname") )) ) + =][= + ELSE =] +cat >> [= + IF (exist? "files") =][= + files[0] =][= + ELSE =]testing.h[= + ENDIF =] <<_HACK_EOF_ + + +#if defined( [=(. HACK)=]_CHECK ) +[=test_text=] +#endif /* [=(. HACK)=]_CHECK */ +_HACK_EOF_ +[=ENDIF =][= + +ENDFOR fix + +=] + +find . -type f | sed 's;^\./;;' | sort | ../../fixincl +cd ${DESTDIR} + +exitok=true + +find * -type f -print > ${TESTDIR}/LIST + +# Special hack for sys/types.h: the #define-d types for size_t, +# ptrdiff_t and wchar_t are different for each port. Therefore, +# strip off the defined-to type so that the test results are the +# same for all platforms. +# +sed 's/\(#define __[A-Z_]*_TYPE__\).*/\1/' sys/types.h > XX +mv -f XX sys/types.h + +# The following subshell weirdness is for saving an exit +# status from within a while loop that reads input. If you can +# think of a cleaner way, suggest away, please... +# +exitok=` +exec < ${TESTDIR}/LIST +while read f +do + if [ ! -f ${TESTBASE}/$f ] + then + echo "Newly fixed header: $f" >&2 + exitok=false + + elif cmp $f ${TESTBASE}/$f >&2 + then + : + + else + ${DIFF:-diff} -c $f ${TESTBASE}/$f >&2 || : + exitok=false + fi +done +echo $exitok` + +cd $TESTBASE + +find * -type f -print | \ +fgrep -v 'CVS/' | \ +fgrep -v '.svn/' > ${TESTDIR}/LIST + +exitok=` +exec < ${TESTDIR}/LIST +while read f +do + if [ -s $f ] && [ ! -f ${DESTDIR}/$f ] + then + echo "Missing header fix: $f" >&2 + exitok=false + fi +done +echo $exitok` + +echo +if $exitok +then + cd ${TESTDIR} + rm -rf inc res LIST + cd .. + rmdir ${TESTDIR} > /dev/null 2>&1 || : + echo All fixinclude tests pass >&2 +else + echo There were fixinclude test FAILURES >&2 +fi +$exitok[= + +(if (defined? 'set-writable) (set-writable)) + +=] -- cgit v1.2.3