LAVA V2 is the second major version of LAVA. The major user-visible features are:
The architecture has been significantly improved since V1, bringing major changes in terms of how a distributed LAVA instance is installed, configured and used for running test jobs.
Note
This overview document explains LAVA using
http://validation.linaro.org/ which is the official production instance of
LAVA hosted by Linaro. Where examples reference validation.linaro.org
,
replace with the fully qualified domain name of your LAVA instance.
See also
Continuous Integration which covers how LAVA relates to continuous integration (CI) and covers the consequences of what LAVA can and cannot do with particular emphasis on how automation itself can block some forms of testing.
A LAVA instance
consists of two primary components - a server and a
worker. The simplest possible configuration is to run the master and
worker components on a single machine, but a larger instance can also be
configured to support multiple workers controlling a larger number of attached
devices.
Note
Although the Dispatcher interacts directly with the DUT, all the device configuration is sent from the server.
LAVA has a steep learning curve and this does not tend to level off as your lab grows. Even small labs involve additional hardware, infrastructure and administrative tasks.
All test jobs involve a deployment step of some kind, even if that is just to prepare the overlay used to copy the test scripts onto the device or to setup the process of parsing the results when the test job starts.
Hardware devices need to be instructed how to boot, emulated devices need to
boot the emulator. For other devices, a boot
can be simply establishing a
connection to the device.
The principal test method in LAVA is the Lava Test Shell which requires a POSIX type environment to be running on the booted device. Other test methods available include executing tests using ADB.
Some test jobs need to boot up multiple devices in a single, coordinated, group. For example, a server could be tested against multiple clients. LAVA supports starting these sub jobs as a group as well as passing messages between nodes via the dispatcher connection, without needing the devices to have a working network stack.
LAVA has advanced support for scheduling multiple jobs across multiple devices, whether those jobs use one device or several. Scheduling is ordered using these criteria, in this order:
In addition, scheduling can be restricted to devices specified by the admin using:
LAVA comes with comprehensive documentation about use and installation, including advice on how to manage a test lab.