====== 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
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.
===== Tests schreiben =====
Ein Test ist ein gewöhnliches Programm, das Zeilen ausgibt. Verglichen wird
gegen ''tests/.expected''.
* Namen mit ''t_'' beginnen, dann findet ''run-tests.sh'' sie 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."
**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.