scripts: add onetest_gesamt for arm64
[testub10.git] / README.markdown
1 # Uebersetzerbau \(SS10\)
2
3 Dies ist eine gemeinschaftliche Sammlung von Testfaellen fuer die Uebungsbeispiele
4 der LVA "Uebersetzerbau \(SS10\)" an der TU Wien.
5
6 Kurzes HOWTO (fuer die g0):
7
8         $ git clone git://github.com/lewurm/testub10.git ~/test
9
10 Danach koennen die Testfaelle durch diesen Befehl aktualisiert werden:
11
12         $ cd ~/test && git pull
13
14 Das Testskript selbst wird von der LVA-Leitung zur Verfuegung gestellt:
15
16         $ /usr/ftp/pub/ubvl/test/scanner/test
17         $ /usr/ftp/pub/ubvl/test/parser/test
18         $ /usr/ftp/pub/ubvl/test/ag/test
19         $ /usr/ftp/pub/ubvl/test/codea/test
20         $ /usr/ftp/pub/ubvl/test/codeb/test
21         $ /usr/ftp/pub/ubvl/test/gesamt/test
22
23 Weiters wurde das bekannte Benchmarkskript von viper fuer codea, codeb und
24 gesamt angepasst und eingebaut das sich in
25
26         $ ~/test/scripts/test.sh
27
28 befindet und mit {code{a,b},gesamt} als parameter aufgerufen wird.
29
30 # Namenskonventionen fuer das Skript (Zitat LVA Leitung):
31
32 Die Dateien mit der Eingabe heissen \*.0, \*.1, \*.2 oder \*.3, wobei die
33 Ziffer hinten den Exit-Code angibt. Eine Datei, die einen
34 Syntax-Fehler enthaelt, werden Sie also z.B. foo.2 nennen.  Beim
35 Scanner-Beispiel gibt es fuer akzeptable Eingaben (also Dateien, die
36 auf .0 enden) auch noch eine Ausgabe, die ueberprueft werden muss; die
37 erwartete Ausgabe fuer die Datei bar.0 nennen Sie bar.out.
38
39 ## Weitere Namenskonventionen fuer uns:
40
41 *       Jeder Testfall hat als Praefix "<nick>_", sodass keine Namenskonflikte entstehen.
42 *       Ab codea sollte auch fuer jeden erfolgreichen Testfall eine .instr Datei angelegt werden die einen Referenzwert der Instruktionen enthaelt.
43
44 ### Hinweis fuer *gesamt* und `bench.sh`
45
46 In der Call-Datei bitte **nur** Funktionen deklarieren die tatsaechlich in der
47 Call-Datei selbst aufgerufen werden. Beispiel:
48         method f()
49                 return g();
50         end;
51         method g()
52                 return 123;
53         end;
54 so muss in der Call-Datei nur `f()` deklariert werden.
55
56
57 # Wie kannst du beitragen?
58
59 ## mit git:
60
61 *       forke das Repository auf github, committe deine Aenderungen und mach einen "Pull Request"
62 *       clone das Repository, committe deine Aenderungen, erzeuge Patches mit
63
64                 git format-patch
65
66         und maile sie oder poste sie im Informatikforum
67
68 ## ohne git:
69
70 *       schicke deine Testfaelle als Anhang per Mail (mit passenden Dateinamen bitte!)
71 *       poste deine Testfaelle im Informatikforum und haenge sie als Attachment an (mit passenden Dateinamen bitte!)
72
73 und natuerlich ist jeder herzlichst dazu eingeladen im Forum ueber Testfaelle zu diskutieren :)
74
75 Infforum-Thread: <http://tinyurl.com/testub10>
76
77 Mailadresse(n): lewurm_AT_gmail_DOT_com (weitere Freiwillige sind willkommen, einfach eintragen)
78
79
80
81 # Allgemeine Tipps:
82
83 praktische Ergaenzungen am Makefile fuer codea:
84
85         #bricht beim ersten fehlerhaften Testfall ab
86         #usage: make atest
87         
88         atest:
89                 ~/test/scripts/modlvatest_codea.sh 2>&1
90
91         
92         #offizielles Testskript der LVA
93         #usage: make lvatest
94         
95         lvatest:
96                 /usr/ftp/pub/ublu/test/codea/test 2>&1
97
98         
99         #Benchmarkskript. Testet nur *.0 Testfaelle
100         #usage: make bench
101         
102         bench:
103                 ~/test/scripts/bench.sh codea
104
105 Ausserdem befindet sich ein Skript zum Testen *eines* Testfalles (auch nur fuer
106 \*.0 Testfaelle gedacht) hier:
107         $ ~/test/scripts/onetest ~/test/codea/namen.0