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