10 #LOC=/usr/ftp/pub/ubvl/test/$beispiel
13 #/usr/ftp/pub/ublu/test/accounttest || exit 1
14 allow_null_glob_expansion=1
16 if [ ! -d ~/abgabe/$beispiel ]; then
17 echo "Fehler: Verzeichnis ~/abgabe/$beispiel existiert nicht."
21 echo 'Teste "make clean"'
23 #/usr/ftp/pub/ubvl/test/cleantest
30 echo "Fehler: Kein Programm $PROGRAM"
34 for i in $LOC/*.0 $LOC2/*.0
39 echo "==========> Eingabe von $i:"
42 RESFILE=test${beispiel}out$$
43 $PROGRAM <$i >$RESFILE
45 echo -n "Übersetzung: "
50 echo "[Errot] Status=$retval. Erwartet: 0"
55 #if [ -f ~/test/scripts/clr.py ]; then
56 # cat $RESFILE | ~/test/scripts/clr.py
60 mv -f $RESFILE $RESFILE.s
63 if [ ! -f $CALLFILE ]; then
64 echo "Fehler: Datei $CALLFILE existiert nicht, kann Code nicht ausführen..."
67 echo "Übersetze und linke das Testprogramm:"
68 if cc -g -I. -DCALL=\"$CALLFILE\" $LOC/testmain.c $LOC/callingconvention.o $RESFILE.s; then
70 echo "Rufe folgendes Codefragment auf:"
74 # in order to bypass a bus error on codea_abgabe_aj.0 (wtf???)
77 # test callee saved registers
78 if [ "$retval" -ge 12 ] && [ "$retval" -le 15 ]; then
79 echo "[Error] Callee-saved register %r$retval modified."
81 elif [ "$retval" -eq 11 ]; then
82 echo "[Error] Callee-saved register %rbx modified."
84 elif [ "$retval" -eq 16 ]; then
85 echo "[Error] Callee-saved register %rbp modified."
87 elif [ "$retval" -eq 30 ]; then
88 echo "[Error] Stack pointer %rsp modified."
96 if test $retsig -eq $expsig; then
97 if test $retval -eq 1; then
98 echo "[Error] Das Ergebnis des Aufrufs ist falsch."
100 elif test $retval -eq 0; then
101 echo "Das Ergebnis des Ausdrucks ist korrekt."
103 echo "[Error] Erzeugter Code verhaelt sich bzgl. Signalerzeugung anders als erwartet."
107 echo "[Error] Erzeugter Code verhaelt sich bezueglich Signalerzeugung anders als erwartet."
109 echo "Rueckgabewert = $retval";
114 echo "[Error] Erzeugter Code konnte nicht assembliert und gelinkt werden."
118 let errnum=errnum+errorfound
119 if [ 1 -eq $errorfound ]; then
124 rm -f a.out $RESFILE $RESFILE.s
128 for i in $LOC/*.[123] $LOC2/*.[123]
132 echo "==========> Eingabe von $i:"
138 if test $retval -eq ${i#*.}
140 echo "Status: korrekt"
142 echo "[Error] Status: $retval. Erwartet: ${i#*.}"
149 let corrnum=prgnum-errnum
152 echo " $prgnum Tests total"
153 echo " $corrnum Tests passed"
154 echo " $errnum Tests failed"