Brussels / 31 January & 1 February 2015


Using LAVA for bisecting bugs

The Linaro Automated Validation Architecture

LAVA is a python service created by Linaro for testing software on hardware which accepts test jobs to perform on selected hardware to provide a black box to continuous integration tests. Bisecting is a technique for finding commit in version control system that broke the software. Git provides the powerful "git bisect" subcommand for this purposes. In this talk we give and introduction to LAVA and explain howto combine LAVA and git bisect to automatically find offending commits in the Linux kernel.

LAVA stands for "The Linaro Automated Validation Architecture", A tool created to help automatic testing of ARM Linux systems. It is completely open source and developed out in open. LAVA is the testing side of the Linaro's continous integration loop, providing users ability to do smoke, regression and performance test easily on wide variety of ARM boards. It provides a web dashboard for submitting test jobs, viewing results, trends and states of users jobs. Pretty much any embedded Linux project involves updating the kernel and booting the target board numerous times. LAVA helps take away the manuals steps from the process.

"Git bisect" is a powerful command in git. It lets users do a binary search from git version history between a "known good" and "known bad" commit to find which exact commit is at the fault on regressions. Most developers who actively use git are familiar with bisect, those who are not, should definitely consider learning it.

Wiring up LAVA to manual bisect testing is easy, but why settle there, when you can automate it all the way? During the presentation we let the computer do a bisecting demo in background.


Photo of Riku Voipio Riku Voipio