codea: offizielle testumgebung
authorBernhard Urban <lewurm@gmail.com>
Tue, 27 Apr 2010 22:06:02 +0000 (00:06 +0200)
committerBernhard Urban <lewurm@gmail.com>
Tue, 27 Apr 2010 22:06:02 +0000 (00:06 +0200)
codea/Makefile
codea/testit/callingconvention.c [deleted file]
codea/testit/test [deleted file]
codea/testit/testmain.c [deleted file]

index a7c5036c26e40a58c31651a3e64ab9dc387bc7eb..7439d1c4649849e8c7b6967e0ea0cfb34d13e335 100644 (file)
@@ -36,11 +36,7 @@ oxout.y oxout.l: parser.y scanner.lex
 clean:
        rm -f $(NAME) $(OBJS) scanner.c parser.{h,c,output} oxout.{y,l,h} code.c
 
-1test:
-       @echo "  CC      callingconvention.c"
-       @gcc -c -fomit-frame-pointer -fno-defer-pop testit/callingconvention.c -o testit/callingconvention.o
-       @./testit/test
-       @rm testcodeaout*.s a.out
+1test: 2test
 
 2test:
        /usr/ftp/pub/ublu/test/$(NAME)/test 2>&1
diff --git a/codea/testit/callingconvention.c b/codea/testit/callingconvention.c
deleted file mode 100644 (file)
index 018b1d1..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* gcc -c -fomit-frame-pointer -fno-defer-pop callingconvention.c */
-
-#include <stdlib.h>
-
-extern int call(void);
-
-/* geprueft werden callee gesicherte Register: rbx,r12-r15, 
- * rsp (stackptr), rbp (frameptr) */
-
-#define CHECKNUM 0x1234567812345678
-long callchecking() 
-{
-  long ret;
-  register long x0 asm("%rbx")=CHECKNUM+0;
-  register long x1 asm("%r12")=CHECKNUM+1;
-  register long x2 asm("%r13")=CHECKNUM+2;
-  register long x3 asm("%r14")=CHECKNUM+3;
-  register long x4 asm("%r15")=CHECKNUM+4;
-  register long x5 asm("%rbp")=CHECKNUM+5;
-  static void* origsp;
-  void*newsp;
-  asm("movq %%rsp,%0":"=g"(origsp):);
-  ret=call();
-  if(x0!=CHECKNUM+0) exit(11);
-  if(x1!=CHECKNUM+1) exit(12);
-  if(x2!=CHECKNUM+2) exit(13);
-  if(x3!=CHECKNUM+3) exit(14);
-  if(x4!=CHECKNUM+4) exit(15);
-  if(x5!=CHECKNUM+5) exit(16);
-  asm("movq %%rsp,%0":"=g"(newsp):);
-  if(origsp!=newsp) exit(30);
-  return ret;
-}
diff --git a/codea/testit/test b/codea/testit/test
deleted file mode 100755 (executable)
index dc5e893..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-#! /bin/bash
-
-beispiel=codea
-PROGRAM=./$beispiel
-
-errnum=0
-prgnum=0
-
-#LOC=.
-LOC=/usr/ftp/pub/ubvl/test/$beispiel
-LOC2=~/test/$beispiel
-
-/usr/ftp/pub/ublu/test/accounttest || exit 1
-allow_null_glob_expansion=1
-
-if [ ! -d ~/abgabe/$beispiel ]; then
-  echo "Fehler: Verzeichnis ~/abgabe/$beispiel existiert nicht."
-  exit 1
-else
-  cd ~/abgabe/$beispiel
-  echo 'Teste "make clean"'
-  make clean
-  /usr/ftp/pub/ubvl/test/cleantest
-  echo 'Teste "make"'
-  make
-fi
-
-if test ! -x $PROGRAM
-then
-       echo "Fehler: Kein Programm $PROGRAM"
-       exit 1
-fi
-let prgnum=0
-for i in $LOC2/*.0
-do
-       if [ -f $i ]; then
-           let prgnum=prgnum+1
-           let errorfound=0
-           echo "==========> Eingabe von $i:"
-           cat $i
-           echo
-           RESFILE=test${beispiel}out$$
-           $PROGRAM <$i >$RESFILE
-           retval=$?
-           echo -n "Übersetzung: "
-           if test $retval -eq 0
-           then
-                   echo "Status korrekt"
-           else
-                   echo "[Errot] Status=$retval. Erwartet: 0"
-                   let errorfound=1
-           fi
-           echo
-           echo "Ausgabe:"
-           cat $RESFILE
-           mv -f $RESFILE $RESFILE.s
-           CALLFILE=${i%.*}.call
-           echo
-           if [ ! -f $CALLFILE ]; then
-               echo "Fehler: Datei $CALLFILE existiert nicht, kann Code nicht ausführen..."
-               exit 1
-           else
-               echo "Übersetze und linke das Testprogramm:"
-               if cc -g -I. -DCALL=\"$CALLFILE\" ~/abgabe/codea/testit/testmain.c ~/abgabe/codea/testit/callingconvention.o $RESFILE.s; then
-                   echo
-                   echo "Rufe folgendes Codefragment auf:"
-                   cat $CALLFILE
-                   echo
-                   ./a.out 
-                   retval=$?
-                   # test callee saved registers
-                   if [ "$retval" -ge 12 ] && [ "$retval" -le 15 ]; then
-                       echo "[Error] Callee-saved register %r$retval modified."
-                        let errorfound=1
-                   elif [ "$retval" -eq 11 ]; then
-                       echo "[Error] Callee-saved register %rbx modified."
-                        let errorfound=1
-                   elif [ "$retval" -eq 16 ]; then
-                       echo "[Error] Callee-saved register %rbp modified."
-                        let errorfound=1
-                   elif [ "$retval" -eq 30 ]; then
-                       echo "[Error] Stack pointer %rsp modified."
-                        let errorfound=1
-                    else
-                        # test signals  
-                       test $retval -gt 127
-                       retsig=$?
-                       test ${i##*.} = xin
-                       expsig=$?
-                       if test $retsig -eq $expsig; then
-                           if test $retval -eq 1; then
-                               echo "[Error] Das Ergebnis des Aufrufs ist falsch."
-                               let errorfound=1
-                           elif test $retval -eq 0; then
-                               echo "Das Ergebnis des Ausdrucks ist korrekt."
-                           else
-                               echo "[Error] Erzeugter Code verhaelt sich bzgl. Signalerzeugung anders als erwartet."
-                               let errorfound=1
-                           fi
-                       else
-                           echo "[Error] Erzeugter Code verhaelt sich bezueglich Signalerzeugung anders als erwartet."
-                           let errorfound=1
-                           echo "Rueckgabewert = $retval";
-                       fi
-                   fi
-                   echo
-               else
-                   echo "[Error] Erzeugter Code konnte nicht assembliert und gelinkt werden."
-                   let errorfound=1
-               fi
-           fi
-           let errnum=errnum+errorfound
-           #rm -f a.out $RESFILE $RESFILE.s
-       fi
-done
-
-for i in $LOC2/*.[123]
-do
-       if [ -f $i ]; then
-       let prgnum=prgnum+1
-       echo "==========> Eingabe von $i:"
-       cat $i
-       echo
-       echo "Ausgabe:"
-       $PROGRAM <$i
-       retval=$?
-       if test $retval -eq ${i#*.}
-       then
-               echo "Status: korrekt"
-       else
-               echo "[Error] Status: $retval. Erwartet: ${i#*.}"
-               let errnum=errnum+1
-       fi
-       echo
-fi
-done
-let corrnum=prgnum-errnum
-echo "Statistics: "
-echo "==========="
-echo "           $prgnum Tests total"
-echo "           $corrnum Tests passed"
-echo "           $errnum Tests failed"
diff --git a/codea/testit/testmain.c b/codea/testit/testmain.c
deleted file mode 100644 (file)
index 6756a64..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-extern long callchecking();
-
-#define RET return
-
-int call(void)
-{
-#include CALL
-}
-
-long labs(long);
-
-#ifdef DEFINE_G
-long g(long x, long y)
-{
-  return h(x*2, y*3)+1;
-}
-#endif
-
-int main(int argc, char *argv[])
-{
-  long r;
-  r=callchecking();
-  if(r==0 || r==1)
-    return !r;
-  return r;
-}
-