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 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.„

<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>