SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Getting Started in LAVA
Linaro
Automated
Validation
Architecture
● Daily automated tests of multiple images and hardware
packs on Linaro member hardware
● Continuous Integration testing on Linaro Android images
● Continuous Integration testing of multiple kernel
trees/config/boards
How is Linaro Using LAVA?
● LAVA Server
● LAVA Dashboard
● LAVA Scheduler
● LAVA Dispatcher
● LAVA Test
● ...and many other tools and libraries that I'll completely
gloss over here in the interest of time
Overview: Major LAVA Components
● Primary entry point for test jobs
● Displays current device status and current job status
● Provides XML-RPC API for job submission
● Provides command-line tools for job submission
● Live monitoring of jobs in progress
● Admin functions for taking down boards for maintenance
and canceling jobs
LAVA Scheduler
● Storage and retrieval of raw test results and attachements
● Provides XML-RPC API for results submission
● Provides command-line interface to the API
Some Terminology:
● Bundle Stream - A way of organizing related result bundles
● Result Bundle - a set of results submitted after a testing
session, can contain multiple test runs, as well as other
information about the system where the testing was
performed
● Test Run - The results from a single test suite
● Test Case - The individual id and result of a single test
within a test run
LAVA Dashboard
● Server framework for LAVA web components
● Extensions can be written to add functionality
● Dashboard and Scheduler are the primary extensions
● Extensions can also be written to do things like special data
or results handling (example: Kernel CI results)
LAVA Server
● Talks to the individual test devices
● Executes actions such as deploying images, running tests,
and submitting results
● Currently supports Linaro and Android image deployments
● Local board configuration details are stored in config files
● Can be used standalone, or kicked off by the scheduler
daemon
LAVA Dispatcher
● Provides a uniform interface for installing tests, running
them, and parsing results
● Test wrappers act as the "glue" between individual test
suites and LAVA
● Supports out-of-tree tests for tests that can't be included
● Test parameter defaults can be overridden
● Can be used standalone for convenient local execution
LAVA Android Test
● Provides the Above functionality for Android testing
● Uses ADB to talk to Android devices rather than running
locally
LAVA Test
● Install lava-test from pypi, bzr, or package (linaro-validation
ppa)
$ pip install --user lava-test
$ lava-test install stream
$ lava-test run stream
Running a test
● LAVA Test (or LAVA Android Test)
● Test wrapper simply defines the basics of your test
● Let's see an example:
from lava_test.core.installers import TestInstaller
from lava_test.core.parsers import TestParser
from lava_test.core.runners import TestRunner
from lava_test.core.tests import Test
URL="http://www.cs.virginia.edu/stream/FTP/Code/stream.c"
INSTALLSTEPS = ['cc stream.c -O2 -fopenmp -o stream']
DEPS = ['gcc', 'build-essential']
DEFAULT_OPTIONS = ""
RUNSTEPS = ['./stream $(OPTIONS)']
PATTERN = "^(?P<test_case_id>w+):W+(?P<measurement>d+.d+)"
streaminst = TestInstaller(INSTALLSTEPS, deps=DEPS, url=URL)
streamrun = TestRunner(RUNSTEPS,default_options=DEFAULT_OPTIONS)
streamparser = TestParser(PATTERN, appendall={'units':'MB/s', 'result':'pass'})
testobj = Test(test_id="stream", installer=streaminst, runner=streamrun, parser=streamparser)
How can I add my test?
● Patterns are defined using regular expressions
● Fields matched correspond to result bundle fields
PATTERN = "((?P<test_case_id>A(w+[/]+)+w+[-]*w*[-]*w*) .*? (?P<result>w+))"
PATTERN = "^(?P<test_case_id>w+):W+(?P<measurement>d+.d+)"
Mandatory fields:
● test_case_id (text field)
● result (see previous slide for values)
Other useful fields:
● measurement - for benchmarks
● units - used for measurements (ex. MB/s, foos/bar)
Pattern fields
● Sometimes results have a value you just "know" but can't be
parsed
● Sometimes all results have something in common
my_parser = TestParser(PATTERN, appendall={'units':'ms','result':'pass'})
Adding things to every result
● You can have 100,000 identical test_case_id's with their
own results in the same test run (but this probably isn't what
you want)
● IDs help someone looking at the results to identify which
testcase this result is describing (this may include sub-ids,
or parameters)
● For tests that do the same thing every time, and vary only
on parameters, the id might encode the parameters
Overall, you want to ensure that when looking at two different
test runs, the SAME test_case_id is used to describe the same
test case being run (otherwise it will be very confusing if you
ever want to graph, compare, etc)
Tips for test_case_id fields
● LTP Tests commonly have test cases, with sub test cases
within them
● Without dealing with this, you might end up with multiple
results for the same test_case_id
● Solution: encode sub-test-id in the test_case_id
● Example:
ftruncate03.1
ftruncate03.2
ftruncate03.3
An example: LTP
● LAVA supported test results are: pass, fail, skip, unknown
● example, posixtestsuite contains very different results:
PATTERN = "((?P<test_case_id>A(w+[/]+)+w+[-]*w*[-]*w*) .*? (?P<result>w+))"
FIXUPS = {
"FAILED" : "fail",
"INTERRUPTED" : "skip",
"PASSED" : "pass",
"UNRESOLVED" : "unknown",
"UNSUPPORTED" : "skip",
"UNTESTED" : "skip",
"SKIPPING" : "skip"
}
posixparser = PosixParser(PATTERN, fixupdict = FIXUPS)
Adapting Test Results
● Some test results can't be easily parsed with a run line rule
○ Results that span multiple lines
○ Results that must be accumulated over multiple passes
○ Results that must be heavily modified
○ Results that contain lines that would match your pattern,
but aren't actual result lines
● One option, is to inherit TestParser and bend it to your will
○ Will require a bit of extra python in your wrapper
● Another option: run your test through a filter, or script it to
output things in a nicer way that you *can* easily deal with
Strategies for Complex Test Results
● Out of tree tests can be used for handling private tests, or tests
with licensing restrictions
● Take care that you don't publish results to a public location (yes,
dashboard can store private bundle streams)
● Option 1: Create a normal python test wrapper, with a setup file
that specifies: entry points for lava_test.test_definitions
○ ex: see https://code.launchpad.net/linaro-graphics-tests
○ This can be installed from bzr, package, pypi, whatever and
just used by lava-test
● Option 2: for very simple tests, json based out-of-tree test
definitions.
○ These can be registered via a URL, then used normally by
lava-test
● RECOMMENDATION: If you are writing an out of tree test, use a
name that will keep it from getting confused (ex: graphicswg.
x11perf)
What if my test can't be public?
{
"format": "LAVA-Test Test Definition Format",
"test_id": "stream-json",
"install": {
"url": "http://www.cs.virginia.edu/stream/FTP/Code/stream.c",
"steps": ["cc stream.c -O2 -fopenmp -o stream"]
},
"run": {
"steps": ["./stream"]
},
"parse": {
"pattern": "^(?P<test_case_id>w+):W+(?P<measurement>d+.d+)",
"appendall": {
"units": "MB/s",
"result": "pass"
}
}
}
Example JSON Test Wrapper
● First, get your test into lava test or an out-of-tree wrapper
● Next, decide when/where/how often your test should run
○ Daily image testing
○ Android CI testing
○ Kernel CI testing
○ Your own periodic runs
● Talk to the Validation team, we'll be happy to help make
sure your tests get in the right place
How do I get these running in the lab?
● Several options exist for visualizing test results
● Basic table view with column sorting an filtering - easy, and
available with no additional work
● Simple charts, tables adapted to your results
○ data view - parameterized db query defined in xml
○ data report - small javascript snippit to display results of
query in the data view
○ These can be integrated into lava web server pages
○ See examples in the "Reports" section of the dashboard
● Custom LAVA Extension
○ More advanced reporting
○ Can include multiple pages, multiple views, controls that
modify the views
○ Can include additional data models
○ Example: Kernel CI Results extension
Visualization
Q4.11: Getting Started in LAVA

Mais conteúdo relacionado

Mais procurados

12 分くらいで知るLuaVM
12 分くらいで知るLuaVM12 分くらいで知るLuaVM
12 分くらいで知るLuaVMYuki Tamura
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDKKernel TLV
 
The columnar roadmap: Apache Parquet and Apache Arrow
The columnar roadmap: Apache Parquet and Apache ArrowThe columnar roadmap: Apache Parquet and Apache Arrow
The columnar roadmap: Apache Parquet and Apache ArrowDataWorks Summit
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Andriy Berestovskyy
 
DPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingDPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingMichelle Holley
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingMichelle Holley
 
ファイルシステム比較
ファイルシステム比較ファイルシステム比較
ファイルシステム比較NaoyaFukuda
 
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421Linaro
 
Real-time Hadoop: The Ideal Messaging System for Hadoop
Real-time Hadoop: The Ideal Messaging System for Hadoop Real-time Hadoop: The Ideal Messaging System for Hadoop
Real-time Hadoop: The Ideal Messaging System for Hadoop DataWorks Summit/Hadoop Summit
 
Debug dpdk process bottleneck & painpoints
Debug dpdk process bottleneck & painpointsDebug dpdk process bottleneck & painpoints
Debug dpdk process bottleneck & painpointsVipin Varghese
 
そろそろRStudioの話
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話Kazuya Wada
 
SR-IOV ixgbe Driver Limitations and Improvement
SR-IOV ixgbe Driver Limitations and ImprovementSR-IOV ixgbe Driver Limitations and Improvement
SR-IOV ixgbe Driver Limitations and ImprovementLF Events
 
Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirtplarsen67
 
Capturing NIC and Kernel TX and RX Timestamps for Packets in Go
Capturing NIC and Kernel TX and RX Timestamps for Packets in GoCapturing NIC and Kernel TX and RX Timestamps for Packets in Go
Capturing NIC and Kernel TX and RX Timestamps for Packets in GoScyllaDB
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/CoreShay Cohen
 

Mais procurados (20)

12 分くらいで知るLuaVM
12 分くらいで知るLuaVM12 分くらいで知るLuaVM
12 分くらいで知るLuaVM
 
Introduction to DPDK
Introduction to DPDKIntroduction to DPDK
Introduction to DPDK
 
The columnar roadmap: Apache Parquet and Apache Arrow
The columnar roadmap: Apache Parquet and Apache ArrowThe columnar roadmap: Apache Parquet and Apache Arrow
The columnar roadmap: Apache Parquet and Apache Arrow
 
Character Drivers
Character DriversCharacter Drivers
Character Drivers
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
DPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet ProcessingDPDK: Multi Architecture High Performance Packet Processing
DPDK: Multi Architecture High Performance Packet Processing
 
DPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet ProcessingDPDK & Layer 4 Packet Processing
DPDK & Layer 4 Packet Processing
 
ファイルシステム比較
ファイルシステム比較ファイルシステム比較
ファイルシステム比較
 
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421
 
Real-time Hadoop: The Ideal Messaging System for Hadoop
Real-time Hadoop: The Ideal Messaging System for Hadoop Real-time Hadoop: The Ideal Messaging System for Hadoop
Real-time Hadoop: The Ideal Messaging System for Hadoop
 
Debug dpdk process bottleneck & painpoints
Debug dpdk process bottleneck & painpointsDebug dpdk process bottleneck & painpoints
Debug dpdk process bottleneck & painpoints
 
そろそろRStudioの話
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話
 
SR-IOV ixgbe Driver Limitations and Improvement
SR-IOV ixgbe Driver Limitations and ImprovementSR-IOV ixgbe Driver Limitations and Improvement
SR-IOV ixgbe Driver Limitations and Improvement
 
Kvm and libvirt
Kvm and libvirtKvm and libvirt
Kvm and libvirt
 
Dpdk pmd
Dpdk pmdDpdk pmd
Dpdk pmd
 
Understanding DPDK
Understanding DPDKUnderstanding DPDK
Understanding DPDK
 
Capturing NIC and Kernel TX and RX Timestamps for Packets in Go
Capturing NIC and Kernel TX and RX Timestamps for Packets in GoCapturing NIC and Kernel TX and RX Timestamps for Packets in Go
Capturing NIC and Kernel TX and RX Timestamps for Packets in Go
 
Linux Internals - Kernel/Core
Linux Internals - Kernel/CoreLinux Internals - Kernel/Core
Linux Internals - Kernel/Core
 
Intel dpdk Tutorial
Intel dpdk TutorialIntel dpdk Tutorial
Intel dpdk Tutorial
 
A Robust and Flexible Operating System Compatibility Architecture
A Robust and Flexible Operating System Compatibility ArchitectureA Robust and Flexible Operating System Compatibility Architecture
A Robust and Flexible Operating System Compatibility Architecture
 

Semelhante a Q4.11: Getting Started in LAVA

Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)Matt Fuller
 
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracleprohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
prohuddle-utPLSQL v3 - Ultimate unit testing framework for OracleJacek Gebal
 
POUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youPOUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youJacek Gebal
 
Bgoug 2019.11 test your pl sql - not your patience
Bgoug 2019.11   test your pl sql - not your patienceBgoug 2019.11   test your pl sql - not your patience
Bgoug 2019.11 test your pl sql - not your patienceJacek Gebal
 
Getting by with just psql
Getting by with just psqlGetting by with just psql
Getting by with just psqlCorey Huinker
 
Developer Tests - Things to Know (Vilnius JUG)
Developer Tests - Things to Know (Vilnius JUG)Developer Tests - Things to Know (Vilnius JUG)
Developer Tests - Things to Know (Vilnius JUG)vilniusjug
 
Intro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiIntro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiRan Mizrahi
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for CassandraEdward Capriolo
 
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"DataStax Academy
 
Monitoring Kafka w/ Prometheus
Monitoring Kafka w/ PrometheusMonitoring Kafka w/ Prometheus
Monitoring Kafka w/ Prometheuskawamuray
 
Android Automated Testing
Android Automated TestingAndroid Automated Testing
Android Automated Testingroisagiv
 
Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016Holden Karau
 
Performance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle CoherencePerformance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle Coherencearagozin
 
HKG15-204: OpenStack: 3rd party testing and performance benchmarking
HKG15-204: OpenStack: 3rd party testing and performance benchmarkingHKG15-204: OpenStack: 3rd party testing and performance benchmarking
HKG15-204: OpenStack: 3rd party testing and performance benchmarkingLinaro
 
Beyond Parallelize and Collect by Holden Karau
Beyond Parallelize and Collect by Holden KarauBeyond Parallelize and Collect by Holden Karau
Beyond Parallelize and Collect by Holden KarauSpark Summit
 
Programming in java basics
Programming in java  basicsProgramming in java  basics
Programming in java basicsLovelitJose
 
Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0Lars Albertsson
 

Semelhante a Q4.11: Getting Started in LAVA (20)

Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
Presto Testing Tools: Benchto & Tempto (Presto Boston Meetup 10062015)
 
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracleprohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
 
POUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youPOUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love you
 
Bgoug 2019.11 test your pl sql - not your patience
Bgoug 2019.11   test your pl sql - not your patienceBgoug 2019.11   test your pl sql - not your patience
Bgoug 2019.11 test your pl sql - not your patience
 
Getting by with just psql
Getting by with just psqlGetting by with just psql
Getting by with just psql
 
Developer Tests - Things to Know (Vilnius JUG)
Developer Tests - Things to Know (Vilnius JUG)Developer Tests - Things to Know (Vilnius JUG)
Developer Tests - Things to Know (Vilnius JUG)
 
Intro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran MizrahiIntro To JavaScript Unit Testing - Ran Mizrahi
Intro To JavaScript Unit Testing - Ran Mizrahi
 
Intravert Server side processing for Cassandra
Intravert Server side processing for CassandraIntravert Server side processing for Cassandra
Intravert Server side processing for Cassandra
 
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
NYC* 2013 - "Advanced Data Processing: Beyond Queries and Slices"
 
Monitoring Kafka w/ Prometheus
Monitoring Kafka w/ PrometheusMonitoring Kafka w/ Prometheus
Monitoring Kafka w/ Prometheus
 
Android Automated Testing
Android Automated TestingAndroid Automated Testing
Android Automated Testing
 
Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016Testing and validating spark programs - Strata SJ 2016
Testing and validating spark programs - Strata SJ 2016
 
Performance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle CoherencePerformance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle Coherence
 
HKG15-204: OpenStack: 3rd party testing and performance benchmarking
HKG15-204: OpenStack: 3rd party testing and performance benchmarkingHKG15-204: OpenStack: 3rd party testing and performance benchmarking
HKG15-204: OpenStack: 3rd party testing and performance benchmarking
 
Beyond Parallelize and Collect by Holden Karau
Beyond Parallelize and Collect by Holden KarauBeyond Parallelize and Collect by Holden Karau
Beyond Parallelize and Collect by Holden Karau
 
Scala test
Scala testScala test
Scala test
 
Scala test
Scala testScala test
Scala test
 
Good Practices On Test Automation
Good Practices On Test AutomationGood Practices On Test Automation
Good Practices On Test Automation
 
Programming in java basics
Programming in java  basicsProgramming in java  basics
Programming in java basics
 
Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0Test strategies for data processing pipelines, v2.0
Test strategies for data processing pipelines, v2.0
 

Mais de Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloLinaro
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaLinaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraLinaro
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaLinaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 

Mais de Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 

Último

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Q4.11: Getting Started in LAVA

  • 3. ● Daily automated tests of multiple images and hardware packs on Linaro member hardware ● Continuous Integration testing on Linaro Android images ● Continuous Integration testing of multiple kernel trees/config/boards How is Linaro Using LAVA?
  • 4. ● LAVA Server ● LAVA Dashboard ● LAVA Scheduler ● LAVA Dispatcher ● LAVA Test ● ...and many other tools and libraries that I'll completely gloss over here in the interest of time Overview: Major LAVA Components
  • 5. ● Primary entry point for test jobs ● Displays current device status and current job status ● Provides XML-RPC API for job submission ● Provides command-line tools for job submission ● Live monitoring of jobs in progress ● Admin functions for taking down boards for maintenance and canceling jobs LAVA Scheduler
  • 6. ● Storage and retrieval of raw test results and attachements ● Provides XML-RPC API for results submission ● Provides command-line interface to the API Some Terminology: ● Bundle Stream - A way of organizing related result bundles ● Result Bundle - a set of results submitted after a testing session, can contain multiple test runs, as well as other information about the system where the testing was performed ● Test Run - The results from a single test suite ● Test Case - The individual id and result of a single test within a test run LAVA Dashboard
  • 7. ● Server framework for LAVA web components ● Extensions can be written to add functionality ● Dashboard and Scheduler are the primary extensions ● Extensions can also be written to do things like special data or results handling (example: Kernel CI results) LAVA Server
  • 8. ● Talks to the individual test devices ● Executes actions such as deploying images, running tests, and submitting results ● Currently supports Linaro and Android image deployments ● Local board configuration details are stored in config files ● Can be used standalone, or kicked off by the scheduler daemon LAVA Dispatcher
  • 9. ● Provides a uniform interface for installing tests, running them, and parsing results ● Test wrappers act as the "glue" between individual test suites and LAVA ● Supports out-of-tree tests for tests that can't be included ● Test parameter defaults can be overridden ● Can be used standalone for convenient local execution LAVA Android Test ● Provides the Above functionality for Android testing ● Uses ADB to talk to Android devices rather than running locally LAVA Test
  • 10. ● Install lava-test from pypi, bzr, or package (linaro-validation ppa) $ pip install --user lava-test $ lava-test install stream $ lava-test run stream Running a test
  • 11. ● LAVA Test (or LAVA Android Test) ● Test wrapper simply defines the basics of your test ● Let's see an example: from lava_test.core.installers import TestInstaller from lava_test.core.parsers import TestParser from lava_test.core.runners import TestRunner from lava_test.core.tests import Test URL="http://www.cs.virginia.edu/stream/FTP/Code/stream.c" INSTALLSTEPS = ['cc stream.c -O2 -fopenmp -o stream'] DEPS = ['gcc', 'build-essential'] DEFAULT_OPTIONS = "" RUNSTEPS = ['./stream $(OPTIONS)'] PATTERN = "^(?P<test_case_id>w+):W+(?P<measurement>d+.d+)" streaminst = TestInstaller(INSTALLSTEPS, deps=DEPS, url=URL) streamrun = TestRunner(RUNSTEPS,default_options=DEFAULT_OPTIONS) streamparser = TestParser(PATTERN, appendall={'units':'MB/s', 'result':'pass'}) testobj = Test(test_id="stream", installer=streaminst, runner=streamrun, parser=streamparser) How can I add my test?
  • 12. ● Patterns are defined using regular expressions ● Fields matched correspond to result bundle fields PATTERN = "((?P<test_case_id>A(w+[/]+)+w+[-]*w*[-]*w*) .*? (?P<result>w+))" PATTERN = "^(?P<test_case_id>w+):W+(?P<measurement>d+.d+)" Mandatory fields: ● test_case_id (text field) ● result (see previous slide for values) Other useful fields: ● measurement - for benchmarks ● units - used for measurements (ex. MB/s, foos/bar) Pattern fields
  • 13. ● Sometimes results have a value you just "know" but can't be parsed ● Sometimes all results have something in common my_parser = TestParser(PATTERN, appendall={'units':'ms','result':'pass'}) Adding things to every result
  • 14. ● You can have 100,000 identical test_case_id's with their own results in the same test run (but this probably isn't what you want) ● IDs help someone looking at the results to identify which testcase this result is describing (this may include sub-ids, or parameters) ● For tests that do the same thing every time, and vary only on parameters, the id might encode the parameters Overall, you want to ensure that when looking at two different test runs, the SAME test_case_id is used to describe the same test case being run (otherwise it will be very confusing if you ever want to graph, compare, etc) Tips for test_case_id fields
  • 15. ● LTP Tests commonly have test cases, with sub test cases within them ● Without dealing with this, you might end up with multiple results for the same test_case_id ● Solution: encode sub-test-id in the test_case_id ● Example: ftruncate03.1 ftruncate03.2 ftruncate03.3 An example: LTP
  • 16. ● LAVA supported test results are: pass, fail, skip, unknown ● example, posixtestsuite contains very different results: PATTERN = "((?P<test_case_id>A(w+[/]+)+w+[-]*w*[-]*w*) .*? (?P<result>w+))" FIXUPS = { "FAILED" : "fail", "INTERRUPTED" : "skip", "PASSED" : "pass", "UNRESOLVED" : "unknown", "UNSUPPORTED" : "skip", "UNTESTED" : "skip", "SKIPPING" : "skip" } posixparser = PosixParser(PATTERN, fixupdict = FIXUPS) Adapting Test Results
  • 17. ● Some test results can't be easily parsed with a run line rule ○ Results that span multiple lines ○ Results that must be accumulated over multiple passes ○ Results that must be heavily modified ○ Results that contain lines that would match your pattern, but aren't actual result lines ● One option, is to inherit TestParser and bend it to your will ○ Will require a bit of extra python in your wrapper ● Another option: run your test through a filter, or script it to output things in a nicer way that you *can* easily deal with Strategies for Complex Test Results
  • 18. ● Out of tree tests can be used for handling private tests, or tests with licensing restrictions ● Take care that you don't publish results to a public location (yes, dashboard can store private bundle streams) ● Option 1: Create a normal python test wrapper, with a setup file that specifies: entry points for lava_test.test_definitions ○ ex: see https://code.launchpad.net/linaro-graphics-tests ○ This can be installed from bzr, package, pypi, whatever and just used by lava-test ● Option 2: for very simple tests, json based out-of-tree test definitions. ○ These can be registered via a URL, then used normally by lava-test ● RECOMMENDATION: If you are writing an out of tree test, use a name that will keep it from getting confused (ex: graphicswg. x11perf) What if my test can't be public?
  • 19. { "format": "LAVA-Test Test Definition Format", "test_id": "stream-json", "install": { "url": "http://www.cs.virginia.edu/stream/FTP/Code/stream.c", "steps": ["cc stream.c -O2 -fopenmp -o stream"] }, "run": { "steps": ["./stream"] }, "parse": { "pattern": "^(?P<test_case_id>w+):W+(?P<measurement>d+.d+)", "appendall": { "units": "MB/s", "result": "pass" } } } Example JSON Test Wrapper
  • 20. ● First, get your test into lava test or an out-of-tree wrapper ● Next, decide when/where/how often your test should run ○ Daily image testing ○ Android CI testing ○ Kernel CI testing ○ Your own periodic runs ● Talk to the Validation team, we'll be happy to help make sure your tests get in the right place How do I get these running in the lab?
  • 21. ● Several options exist for visualizing test results ● Basic table view with column sorting an filtering - easy, and available with no additional work ● Simple charts, tables adapted to your results ○ data view - parameterized db query defined in xml ○ data report - small javascript snippit to display results of query in the data view ○ These can be integrated into lava web server pages ○ See examples in the "Reports" section of the dashboard ● Custom LAVA Extension ○ More advanced reporting ○ Can include multiple pages, multiple views, controls that modify the views ○ Can include additional data models ○ Example: Kernel CI Results extension Visualization