Werkzeuge
Skripte
| Skript | Zweck |
|---|---|
run-tests.sh | Alle Tests unter Linux bauen und vergleichen |
run-tests-win.sh | Dieselben Tests als PE, unter Wine |
build.sh | Beispiele bauen; _win wird automatisch PE |
tools/screenshot.sh | Fenster aufnehmen, zum Nachsehen von Hand |
tools/gen-theme-template.lyx | Themenvorlage erzeugen |
Statische Prüfungen
Vier Prüfungen laufen bei jedem Testlauf mit. Jede gibt es, weil ein Compilerbefund den entsprechenden Fehler still durchgehen lässt.
| Prüfung | Was sie findet | Wegen |
|---|---|---|
check-ctors.sh | new TFoo() ohne Argumente, obwohl der Konstruktor welche hat | lyxc #1633 |
check-varorder.sh | Modulvariable nach ihrer ersten Verwendung deklariert | lyxc #1665 |
check-fields.sh | self.X auf ein Feld, das die Klasse nicht hat | lyxc #1666 |
check-dupmethods.sh | zwei Methoden gleichen Namens in einer Klasse | lyxc #1668 |
Ausgabe im Testlauf, wenn alles stimmt:
ok 42 Konstruktoren mit Parametern, keine leeren Aufrufe
ok 351 Modulvariablen, alle vor ihrer ersten Verwendung
ok 7264 self-Zugriffe, alle aufloesbar
ok 1443 Methoden, keine Namensdoppelung in einer Klasse
<WRAP center round tip 90%> Diese Prüfungen ersetzen, was der Compiler (noch) nicht meldet. Fällt einer der Befunde weg, kann die zugehörige Prüfung raus — vorher nicht. </WRAP>
Tests schreiben
Ein Test ist ein gewöhnliches Programm, das Zeilen ausgibt. Verglichen wird
gegen tests/<name>.expected.
- Namen mit
t_beginnen, dann findetrun-tests.shsie selbst. t_win*läuft nur im Windows-Testlauf.- Was ohne Fenster prüfbar ist, gehört ohne Fenster geprüft — dafür ist
das Null-Backend da.
- Gezeichnetes prüft man über gezählte Pixel: „ein volles
16×16-Symbol sind exakt 256 Punkte.„
<WRAP center round important 90%>
Eine Prüfung, die nur „gleich“ vergleicht, hält Verlust für Erfolg. Der
LFM-Rundlauf ist byteweise identisch — und verliert trotzdem die Spalten
einer Listenansicht, weil beide Richtungen dieselbe Angabe weglassen.
t_lfmsave prüft die Spaltenzahl deshalb ausdrücklich: 2 vorher, 0
nachher.
</WRAP>
