blob: c8374bc7b0fe30e6a3db34ac3e5eeb2045e7187b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#!/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
|