46 lines
1006 B
Bash
46 lines
1006 B
Bash
|
# lcsc test harness
|
||
|
|
||
|
# ./run.sh file...
|
||
|
|
||
|
CSC="csc -nologo -w:0"
|
||
|
LCSC="../lcsc -r:System.Drawing.dll"
|
||
|
# set -x
|
||
|
for f
|
||
|
do
|
||
|
b=`basename $f .cs`
|
||
|
echo 1>&2 $f:
|
||
|
if [ ! -e $b.1.expected ]; then
|
||
|
$CSC $f
|
||
|
./$b >$b.1.expected; fi
|
||
|
|
||
|
# test ilgen
|
||
|
echo $LCSC $f
|
||
|
if $LCSC $f; then
|
||
|
if [ -e $b.il.expected ]; then
|
||
|
echo diff $b.il.expected $b.il
|
||
|
if diff $b.il.expected $b.il; then rm $b.il; fi
|
||
|
else
|
||
|
cp $b.il $b.il.expected; fi
|
||
|
if [ -x $b.exe ]; then
|
||
|
echo ./$b \>$b.1
|
||
|
./$b >$b.1
|
||
|
echo diff $b.1.expected $b.1
|
||
|
if diff $b.1.expected $b.1; then rm $b.1; fi
|
||
|
rm -f $b.exe $b.pdb
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# test emit
|
||
|
echo $LCSC -v:bind -v:typecheck -v:rewrite -v:emit -v:save,../emit/emit.dll $f
|
||
|
if $LCSC -v:bind -v:typecheck -v:rewrite -v:emit -v:save,../emit/emit.dll $f; then
|
||
|
if [ -x $b.exe ]; then
|
||
|
echo ./$b \>$b.1
|
||
|
./$b >$b.1
|
||
|
echo diff $b.1.expected $b.1
|
||
|
if diff $b.1.expected $b.1; then rm $b.1; fi
|
||
|
rm -f $b.exe $b.pdb
|
||
|
fi
|
||
|
fi
|
||
|
done
|
||
|
exit 0
|