Linaro Automated Validation Architecture (LAVA)

Overview

LAVA is a continuous integration system for deploying operating systems onto physical and virtual hardware for running tests. Tests can be simple boot testing, bootloader testing and system level testing, although extra hardware may be required for some system tests. Results are tracked over time and data can be exported for further analysis.

LAVA architecturally is comprised of two main components, the lava-server and the lava-dispatcher. The lava-server is a django web application that provides a central scheduler, management dashboard, job monitoring, authentication and authorization as well as a test result visualization system. The lava-dispatcher is the sub-system that controls communication to the physical test devices.

As of 2013, LAVA is available as a comprehensive set of packages within Debian.

Getting LAVA

Linaro Automated Validation Architecture (LAVA) is available as a Debian package in jessie (stable), testing (stretch) and unstable (Sid). LAVA support for Ubuntu Trusty (14.04) was frozen at 2015.9.post1 and no further updates will be available. Ubuntu 16.04LTS Xenial is not supported for LAVA.

https://tracker.debian.org/pkg/lava-server

   1   $ sudo apt-get install lava

Releases with release notes are made every month, available via Linaro releases website and tagged in the git repository with tags in the form "YYYY.M", for example the 2015.9 release (September 2015) is tagged "2015.9". Builds of tagged releases are uploaded to Debian and will merge automatically into the current development release of Ubuntu. Extra testing is performed on these releases in addition to the continuous integration done in development using the functional tests on the staging instance.

Using LAVA

LAVA is intended to be used by skilled automation and system administrators to automate testing on real and virtual systems. At Linaro, Linaro CI, executes over 800 tests across ~30 device types every week to support Linaro's engineering teams.

Documentation is available on validation.linaro.org, at http://localhost/static/docs/ of any installed instance and also at file:///usr/share/doc/lava-server-doc/html/index.html on the filesystem once lava-server is installed.

The documentation includes guides on installing LAVA, writing tests, administering a LAVA instance and developing code for LAVA.

Support

LAVA is currently an actively maintained 'as-is' open source project at Linaro. LAVA's roadmap is determined by Linaro's Technical Steering Committee, Linaro members and Linaro Engineering teams. Bug reports should be filed against Create a bug report for LAVA. Note: All inquiries should be directed to the Linaro support system.

Introduction to LAVA

LAVA is the Linaro Automation and Validation Architecture.

LAVA is an automation system for deploying operating systems onto physical and virtual hardware for running tests. Tests can be simple boot testing, bootloader testing and system level testing, although extra hardware may be required for some system tests. Results are tracked over time and data can be exported for further analysis.

LAVA is a collection of participating components, the overall idea and evolving architecture that allows us to make testing, quality control and automation. LAVA-the-stack aims to make systematic, automatic and manual quality control more approachable for projects of all sizes.

LAVA is for validation - telling whether the code the other Linaro engineers are producing “works” in whatever sense that means. It could be a simple compile or boot test for the kernel, testing whether the code produced by gcc is smaller or faster, whether a kernel scheduler change reduces power consumption for a certain workload, or many other things.

Beyond simple validation though, what LAVA really about is automated validation. LAVA builds and tests the kernel on all supported boards every day. LAVA builds and tests proposed android changes in gerrit before they are landed, and the same for the gcc work. There is a validation lab in Cambridge - the boards from the Linaro members we want to test on, but also Cyclades serial console servers, routers, and a few servers.

How to Contribute

The best way to protect your investment on LAVA is to contribute your changes back. This way you don’t have to maintain the changes you need by yourself, and you don’t run the risk of LAVA changed in a way that is incompatible with your changes.

More information on how you can contribute can be found in LAVA Documentation: https://validation.linaro.org/static/docs/v2/development.html#contributing-upstream

  • Linaro Validation mailing list <linaro-validation AT lists DOT linaro DOT org>

LAVA (last modified 2017-07-17 12:07:30)