Linux-Kerneländerungen - Konzepte um Testbarrieren abzubauen ============================================================ Kerneländerungen zu testen ist relativ problematisch. Änderungen bei Dateisystemen und in ähnlich allgemeinen Bereichen können noch relativ einfach auf dem eigenen Rechner oder in einer Virtuellen Maschine getestet werden, da sie sich auf verschiedenen Systemen trotzdem gleich verhalten. Im Bereich der Hardwaretreiber sind die Hürden aber ungleich höher, denn Hardware verhält sich zum einen oftmals nicht immer so, wie im Handbuch beschrieben und es gibt oftmals mehrere Varianten derselben Komponente mit unterschiedlichen Verhaltensweisen und zum anderen werden in Virtuellen Maschinen nur Standardkomponenten emuliert und im Allgemeinen nicht die Hardware an der man arbeitet. Gerade im embedded-Bereich gibt es zuhauf Peripherie-Blöcke die zwar den selben Namen tragen, aber dann doch minimale Unterschiede aufweisen, die zu Problemen führen können. D.h. hier muss auch immer auf echter Hardware getestet werden. Am Anfang ist Testen immernoch sehr einfach, wenn das einzige Board auf dem Tisch liegt und die Funkionalität einer Änderung auf diesem direkt geprüft werden kann. Aber schon mit dem zweiten betroffenen Board wird es aufwändiger und voller auf dem Tisch. Um diesem Problem zu begegnen gibt es zum einen allgemeine Testprojekte wie den 0-day Builder und KernelCI, die es sich zur Aufgabe gemacht haben, Änderungen möglichst breit zu testen. Zum anderen ist es auch möglich die eigenen Tests auszubauen und zu optimieren, um nicht erst im Nachhinein zu erfahren das eine Änderung etwas anderes stört. Der Vortrag soll also einerseits die großen Projekte vorstellen, als auch zeigen, wie man als Entwickler die eigene Testumgebung skalieren kann, wenn das eine Board zum testen nicht mehr reicht. Dies soll am Beispiel meiner eigenen Boardfarm passieren, die mir ein einfaches WebGUI [0] bietet, um Kerneländerungen auf einer Vielzahl von Boards testen zu können - auch aus der Ferne und ggf. in einer Live-Demonstration. [0] https://plus.google.com/+HeikoSt%C3%BCbner_x/posts/2qc17siX48A