mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-07-08 02:35:58 +02:00

most tests which have to succeed (except the extended ones, as they have to succeed on some and fail on other platforms) in a single file to speed up testing (the ivarol*.pp files can also still be compiled separately, but the testsuite will only compile the tnofalvarol program which includes them all) git-svn-id: trunk@8947 -
79 lines
2.1 KiB
Bash
Executable File
79 lines
2.1 KiB
Bash
Executable File
#!/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
|