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