Linuxcon Europe: Automatisierte Kernel-Tests mit Autotest
Am letzten Tag der Linuxcon Europe hat Lucas Meneghel Rodrigues vom Autotest-Projekt gezeigt, wie man das Framework für automatisierte Kernel-Tests einsetzt.
Das Testwerkzeug entstand vor sechs Jahren bei IBM und war vorübergehend auch auf den Servern von Kernel.org im Einsatz. Für einen dauerhaften Betrieb habe allerdings zu wenig Personal zur Verfügung gestanden, erzählte der Referent.
Lucas Meneghel, einer der Autotest-Maintainer, arbeitet bei Red Hat und testet dort die Kernel Virtual Machine KVM mit dem Werkzeug. Bei Google steuert Autotest in einer angepassten Version bis zu 5000 Testmaschinen. Das Ziel solcher Tests sei es, Bugs im Kernel frühzeitig aufzuspüren, bevor sie in die Verwertungskette der Releases und Distributionskernel eingehen und so zum Anwender gelangen. Bei mehreren Tausend Kernel-Commits pro Woche gäbe es somit einiges zu testen, meinte der Referent.
Autotest besteht aus einem Server, der sich per schlüssellosem SSH mit der Clientsoftware auf den Testmaschinen verbindet. Er überträgt eine in Python geschriebene Konfigurationsdatei, die den gewünschten Kernel herunterlädt, konfiguriert, baut und bootet und eine Auswahl von derzeit 100 verfügbaren Test durchführt. Die Ergebnisse speichert der Server in einer Datenbank. Optional kommt das Tool Cobbler zum Einsatz, um das Betriebssystem der Testmaschinen zu provisionieren.
Das Testframework ist in Python geschrieben und verwendet Django. Der Anwender steuert es per Weboberfläche oder mit einem Kommandozeilentool. Daneben besitzt der Server eine RPC-Schnittstelle, für die derzeit ein Qt-Client in Entwicklung ist.
Lucas Meneghel Rodrigues demonstrierte Installation und Konfiguration von Server und Client in virtuellen Maschinen auf seinem Laptop. Dabei verwendet er Fedora 17 als Distribution. RHEL 6 und Ubuntu 12.04 eignen sich nach seinen Angaben auch für diesen Zweck.
Autotest habe allerdings auch Beschränkungen, räumte der Sprecher ein. Da es für für Intel- und PPC-Server entwickelt wurde, eigne es sich nicht für Embedded-Geräte mit ARM-CPU. Das soll sich aber in Zukunft ändern. Das Projekt sucht derzeit interessierte Embedded-Entwickler zur Mitarbeit. Daneben haben die Entwickler im letzten Jahr den Python-Code bereinigt und die Installation FHS-konform gemacht. Demnächst soll es Fedora-Pakete geben, derzeit dient ein Skript zur Installation.
Weitere Informationen finden sich auf der Github-Seite von Autotest, dort gibt es auch ein Wiki und den GPL/LGPL-lizenzierten Quelltext.





