SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

DDR, GDDR, HBM Memory : Presentation
DDR, GDDR, HBM Memory : PresentationDDR, GDDR, HBM Memory : Presentation
DDR, GDDR, HBM Memory : PresentationSubhajit Sahu
 
1000 Ccna Questions And Answers
1000 Ccna Questions And Answers1000 Ccna Questions And Answers
1000 Ccna Questions And AnswersCCNAResources
 
Conceptual model for security in next generation network.pptx
Conceptual model for security in next generation network.pptxConceptual model for security in next generation network.pptx
Conceptual model for security in next generation network.pptxMasoud Hayeri Khyavi
 
Transport Layer in Computer Networks (TCP / UDP / SCTP)
Transport Layer in Computer Networks (TCP / UDP / SCTP)Transport Layer in Computer Networks (TCP / UDP / SCTP)
Transport Layer in Computer Networks (TCP / UDP / SCTP)Hamidreza Bolhasani
 
5G Network Architecture, Planning and Design
5G Network Architecture, Planning and Design5G Network Architecture, Planning and Design
5G Network Architecture, Planning and DesignTonex
 
Vxlan deep dive session rev0.5 final
Vxlan deep dive session rev0.5   finalVxlan deep dive session rev0.5   final
Vxlan deep dive session rev0.5 finalKwonSun Bae
 
Troubleshooting BGP
Troubleshooting BGPTroubleshooting BGP
Troubleshooting BGPDuane Bodle
 
BOOTP and DHCP.ppt
BOOTP and DHCP.pptBOOTP and DHCP.ppt
BOOTP and DHCP.pptanik301
 
A very good introduction to IPv6
A very good introduction to IPv6A very good introduction to IPv6
A very good introduction to IPv6Syed Arshad
 
Dc ch11 : routing in switched networks
Dc ch11 : routing in switched networksDc ch11 : routing in switched networks
Dc ch11 : routing in switched networksSyaiful Ahdan
 
Switching Concepts presentation
Switching Concepts presentationSwitching Concepts presentation
Switching Concepts presentationzameer Abbas
 
5G Technology Tutorial
5G Technology Tutorial5G Technology Tutorial
5G Technology TutorialAPNIC
 
Beginners: Introduction to NR-Light a.k.a. NR-Lite
Beginners: Introduction to NR-Light a.k.a. NR-LiteBeginners: Introduction to NR-Light a.k.a. NR-Lite
Beginners: Introduction to NR-Light a.k.a. NR-Lite3G4G
 
CCNA 200-301 VOLUME 2.pdf
CCNA 200-301 VOLUME 2.pdfCCNA 200-301 VOLUME 2.pdf
CCNA 200-301 VOLUME 2.pdfbekhti
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlowJoel W. King
 

Tendances (20)

Dhcp
DhcpDhcp
Dhcp
 
DDR, GDDR, HBM Memory : Presentation
DDR, GDDR, HBM Memory : PresentationDDR, GDDR, HBM Memory : Presentation
DDR, GDDR, HBM Memory : Presentation
 
1000 Ccna Questions And Answers
1000 Ccna Questions And Answers1000 Ccna Questions And Answers
1000 Ccna Questions And Answers
 
Conceptual model for security in next generation network.pptx
Conceptual model for security in next generation network.pptxConceptual model for security in next generation network.pptx
Conceptual model for security in next generation network.pptx
 
Transport Layer in Computer Networks (TCP / UDP / SCTP)
Transport Layer in Computer Networks (TCP / UDP / SCTP)Transport Layer in Computer Networks (TCP / UDP / SCTP)
Transport Layer in Computer Networks (TCP / UDP / SCTP)
 
E cpri protocol stack
E cpri protocol stackE cpri protocol stack
E cpri protocol stack
 
5G Network Architecture, Planning and Design
5G Network Architecture, Planning and Design5G Network Architecture, Planning and Design
5G Network Architecture, Planning and Design
 
Chap 2 network models
Chap 2 network modelsChap 2 network models
Chap 2 network models
 
Vxlan deep dive session rev0.5 final
Vxlan deep dive session rev0.5   finalVxlan deep dive session rev0.5   final
Vxlan deep dive session rev0.5 final
 
Troubleshooting BGP
Troubleshooting BGPTroubleshooting BGP
Troubleshooting BGP
 
RTP & RTCP
RTP & RTCPRTP & RTCP
RTP & RTCP
 
BOOTP and DHCP.ppt
BOOTP and DHCP.pptBOOTP and DHCP.ppt
BOOTP and DHCP.ppt
 
A very good introduction to IPv6
A very good introduction to IPv6A very good introduction to IPv6
A very good introduction to IPv6
 
Dc ch11 : routing in switched networks
Dc ch11 : routing in switched networksDc ch11 : routing in switched networks
Dc ch11 : routing in switched networks
 
Switching Concepts presentation
Switching Concepts presentationSwitching Concepts presentation
Switching Concepts presentation
 
5G Technology Tutorial
5G Technology Tutorial5G Technology Tutorial
5G Technology Tutorial
 
Beginners: Introduction to NR-Light a.k.a. NR-Lite
Beginners: Introduction to NR-Light a.k.a. NR-LiteBeginners: Introduction to NR-Light a.k.a. NR-Lite
Beginners: Introduction to NR-Light a.k.a. NR-Lite
 
CCNA 200-301 VOLUME 2.pdf
CCNA 200-301 VOLUME 2.pdfCCNA 200-301 VOLUME 2.pdf
CCNA 200-301 VOLUME 2.pdf
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
 
Connecting devices
Connecting devicesConnecting devices
Connecting devices
 

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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
 

Dernier

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
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
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Dernier (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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)
 
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...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
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...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

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