7f9c12e0a539afaae3745d918762590140f056c5
[testub10.git] / scripts / debug_gesamt
1 #!/bin/bash
2
3 i=$1
4 beispiel=gesamt
5 PROGRAM=./$beispiel
6
7 #LOC=.
8 LOC=/usr/ftp/pub/ubvl/test/$beispiel
9
10 allow_null_glob_expansion=1
11
12 if [ ! -d ~/abgabe/$beispiel ]; then
13   echo "Fehler: Verzeichnis ~/abgabe/$beispiel existiert nicht."
14   exit 1
15 else
16   cd ~/abgabe/$beispiel
17   echo 'Teste "make"'
18   make
19 fi
20
21 if test ! -x $PROGRAM
22 then
23         echo "Fehler: Kein Programm $PROGRAM"
24         exit 1
25 fi
26 let prgnum=0
27 #for i in $LOC/*.0 $LOC2/*.0
28 if [ -f $i ]; then
29         let prgnum=prgnum+1
30         let errorfound=0
31         echo "==========> Eingabe von $i:"
32         cat $i
33         echo
34         RESFILE=test${beispiel}out$$
35         $PROGRAM <$i >$RESFILE
36         retval=$?
37         echo -n "Übersetzung: "
38         if test $retval -eq 0
39         then
40                 echo "Status korrekt"
41         else
42                 echo "[Errot] Status=$retval. Erwartet: 0"
43                 let errorfound=1
44         fi
45         echo
46         echo "Ausgabe:"
47         if [ -f ~/test/scripts/clr.py ]; then
48                 cat $RESFILE | ~/test/scripts/clr.py
49         else
50                 cat $RESFILE
51         fi
52         mv -f $RESFILE $RESFILE.s
53         CALLFILE=${i%.*}.call
54         echo
55         if [ ! -f $CALLFILE ]; then
56         echo "Fehler: Datei $CALLFILE existiert nicht, kann Code nicht ausführen..."
57         exit 1
58         else
59         echo "Übersetze und linke das Testprogramm:"
60         if cc -g -I. -DCALL=\"$CALLFILE\" $LOC/testmain.c $LOC/callingconvention.o $RESFILE.s; then
61                 echo
62                 echo "Rufe folgendes Codefragment auf:"
63                 cat $CALLFILE
64                 echo
65                 gdb ./a.out 
66         else
67                 echo "[Error] Erzeugter Code konnte nicht assembliert und gelinkt werden."
68                 let errorfound=1
69         fi
70         fi
71         rm -f a.out $RESFILE $RESFILE.s
72 fi