123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #!/bin/bash
- # Generates the tests in tests/test/cg/variants by
- # a) generating the test programs
- # b) compiling them with kylix and running them
- # c) changing them based on the Kylix compilation and running result, so
- # they become self-checking
- # Only tested under Linux with Kylix installed, might also work under cygwin
- ./genvartests
- BIGTEST=tnofalvarol.pp
- BIGTESTMAIN=tnofalvarol.inc
- rm ivarol*
- rm $BIGTEST
- rm $BIGTESTMAIN
- echo '{$ifdef fpc}' > $BIGTEST
- echo '{$mode delphi}' >> $BIGTEST
- echo '{$else fpc}' >> $BIGTEST
- echo '{$define FPC_HAS_TYPE_EXTENDED}' >> $BIGTEST
- echo '{$endif fpc}' >> $BIGTEST
- echo '{$define bigfile}' >> $BIGTEST
- echo >> $BIGTEST
- for file in tvarol*.pp
- do
- dcc $file
- if [ $? -ne 0 ]; then
- echo '{ %fail }' > $file.new
- cat $file >> $file.new
- mv $file.new $file
- else
- ./`basename $file .pp` > output
- if grep XXX output >/dev/null; then
- sed -e "s/writeln('YYY')/halt(1)/" < $file > $file.new
- grep -v "writeln('XXX')" < $file.new > $file
- rm $file.new
- fi
- if grep YYY output >/dev/null; then
- sed -e "s/writeln('XXX')/halt(1)/" < $file > $file.new
- grep -v "writeln('YYY')" < $file.new > $file
- rm $file.new
- fi
- if grep VVV output >/dev/null; then
- sed -e "s/writeln('COMPFAILV')/raise tobject.create/" < $file > $file.new
- else
- sed -e "s/writeln('VVV')/halt(1)/" < $file > $file.new
- fi
- mv $file.new $file
- if grep QQQ output >/dev/null; then
- sed -e "s/writeln('COMPFAILQ')/raise tobject.create/" < $file > $file.new
- else
- sed -e "s/writeln('QQQ')/halt(1)/" < $file > $file.new
- fi
- mv $file.new $file
- if ! grep "ifdef FPC_HAS_TYPE_EXTENDED" $file >/dev/null; then
- namenr=`echo $file | sed -e 's/tvarol//' -e 's/\.pp//'`
- # lines=`wc -l < $file`
- # lines=$(($lines - 5))
- # tail -$lines < $file >> $BIGTEST
- echo " dotest${namenr};" >> $BIGTESTMAIN
- newname=`echo $file | sed -e 's/tvarol/ivarol/'`
- mv $file $newname
- echo '{$i' $newname '}' >> $BIGTEST
- fi
- fi
- done
- echo >> $BIGTEST
- echo Begin >> $BIGTEST
- cat $BIGTESTMAIN >> $BIGTEST
- echo End. >> $BIGTEST
- rm $BIGTESTMAIN
|