LAVA@LCE13 - Schedule
Monday● LAVA Introduction & update - Dave & Milo● LAVA Lab Deployment Workshop - Matt, Senthil & James
Tuesday● Test & Validation Summit - How do we better test our engineering?
○ LAVA: Faster, Higher, Stronger (& easier to use)Wednesday● Afternoon Hacking Sessions
Thursday● LAVA Multi-node testing - Antonio, Neil, Senthil, James & Fu Wei● Advanced LAVA Lab Configuration - Tyler and Georgy● Training: Adding 3rd Party Boards into LAVA - Senthil & Tyler
Friday● Infrastructure update - Paul, James & Philip● LAVA Multi-node testing: LNG Use Cases● Demo Friday
LAVA Introduction
Dave PigottMilo Casagrande
LCE13 - Dublin, July 2013
Introduction to LAVA and Updates
LAVA - Who is LAVA?
LAVA team is
Diverse experience● Embedded Systems● Kernel Development● Web Frameworks● Information Systems● Integration Test
Geographically Distributed● ~13 Members ● 8 timezones● 10 Countries
Our team motto:"The only place in the world where LAVA is cool!"
LAVA - What is it?
The Linaro Automated Validation ArchitectureA framework...● for testing software on
hardware● that accepts "jobs" to perform
on selected hardware● that produces result bundlesA black box to CI...● all devices have the same
LAVA interfaceA cloud like solution...● for ARM devicesLAVA itself is an enabler - we do not define what can be run
LAVA - Why LAVA?
● Validate Linaro Engineering output
● Test Linaro Engineering output on a diverse range of member hardware
● Support automated kernel testing
● Ensure a device can be bricked, including the bootloader, and resurrected without manual intervention
● No assumptions of special capabilities
LAVA - What can I do with it?
● Submit jobs that will be run on a selected device with user selected combination of kernel and system image
● Snapshots and releases● Run user selected and
defined tasks on that image
● Can execute anything - e.g. toolchain submission - it's not just about tests
LAVA - Workflow
LAVA http front endCheck job validity and reject if not
possible or bad syntax
LAVA SchedulerWait for appropriate resource to
Become available
Daemon
Submit jobDefine in JSON with YAML
Manual or automated submission
LAVA DispatcherOn demand
Control platform over serial lineTest Platform
(Boot master image)
Deploy test image
Install tests on test image
Boot test image
Run tests
Submit resultsDatabase
LAVA DashboardView jobs, results, boards
Web GUI
LAVA - Manifestations
● LAVA as a service● LAVA as a product
○ It's Open Source - PYC! (Push Your Changes)
● LAVA for developers - LAVA@home● Easy deployment - lava-deployment-tool - packaging
LAVA - Lab Inventory● 75 Devices online & ~300 ARM CPUs
○ 4 TI Beagleboards○ 30 TI Panda 4430s○ 14 TI Panda 4460s○ 10 ST-Ericsson Snowball PDKs○ 10 Samsung Origens○ 4 Samsung Quad Core Origens○ 5 Samsung Arndale boards○ 2 ARM Versatile Express a9s○ 1 ARM Versatile Express a5○ 4 ARM Versatile Express TC2s○ 2 Calxeda 96 CPU Servers○ 1 Samsung Galaxy Nexus○ 2 Beaglebone Black○ 8 Fastmodels○ 2 Broadcom Capri○ 3 Nexus 10○ Member only access
● Lots of other devices used for staging and debugging
LAVA - Reliability
● Must be confident that if a job fails it is most likely the job and not LAVA
● Health checks run once every 24 hours
● If a board fails it is automatically taken offline
● Reliability now ~99%
● LAVA Lmp - LAVA Multi-purpose Probe" ○ The Holy Grail of automation"
● Bootloader testing with LAVA Lmp - sdmux● Multi-node testing● LEG and LNG server systems in the LAVA Lab● LAVA Helper Tools
LAVA - What's new?
LAVA - What's coming?
● CI/LAVA Integration○ A one stop shop for all automated testing
● Test on commit○ Every commit in engineering
● x86 Double Check
LAVA - Conclusion
● LAVA usage is growing● LAVA interest is growing● LAVA lab is expanding● LAVA Roadmap is very full and very exciting
LAVA - Lab Usage