SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Chapter 1-distribute Computing
Chapter 1-distribute ComputingChapter 1-distribute Computing
Chapter 1-distribute Computingnakomuri
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기SangJin Kang
 
Hdfs ha using journal nodes
Hdfs ha using journal nodesHdfs ha using journal nodes
Hdfs ha using journal nodesEvans Ye
 
Vitess VReplication: Standing on the Shoulders of a MySQL Giant
Vitess VReplication: Standing on the Shoulders of a MySQL GiantVitess VReplication: Standing on the Shoulders of a MySQL Giant
Vitess VReplication: Standing on the Shoulders of a MySQL GiantMatt Lord
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HAharoonm
 
MySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptxMySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptxNeoClova
 
EVPN-Applications.pdf
EVPN-Applications.pdfEVPN-Applications.pdf
EVPN-Applications.pdfSunnyLai23
 
FastR+Apache Flink
FastR+Apache FlinkFastR+Apache Flink
FastR+Apache FlinkJuan Fumero
 
Alles was Sie über HCL Notes 14 wissen müssen
Alles was Sie über HCL Notes 14 wissen müssenAlles was Sie über HCL Notes 14 wissen müssen
Alles was Sie über HCL Notes 14 wissen müssenpanagenda
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practiceAlexey Lesovsky
 
Microsoft Offical Course 20410C_01
Microsoft Offical Course 20410C_01Microsoft Offical Course 20410C_01
Microsoft Offical Course 20410C_01gameaxt
 
BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1GLC Networks
 
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesHoward Greenberg
 
Install active directory on windows server 2016 step by step
Install active directory on windows server 2016  step by stepInstall active directory on windows server 2016  step by step
Install active directory on windows server 2016 step by stepAhmed Abdelwahed
 
MinIO January 2020 Briefing
MinIO January 2020 BriefingMinIO January 2020 Briefing
MinIO January 2020 BriefingJonathan Symonds
 
[AIX] RDX Device Backup Guide
[AIX] RDX Device Backup Guide[AIX] RDX Device Backup Guide
[AIX] RDX Device Backup GuideCheolHee Han
 
OpenStack networking juno l3 h-a, dvr
OpenStack networking   juno l3 h-a, dvrOpenStack networking   juno l3 h-a, dvr
OpenStack networking juno l3 h-a, dvrSim Janghoon
 

Was ist angesagt? (20)

Chapter 1-distribute Computing
Chapter 1-distribute ComputingChapter 1-distribute Computing
Chapter 1-distribute Computing
 
CPanel User Guide
CPanel User GuideCPanel User Guide
CPanel User Guide
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
 
Hdfs ha using journal nodes
Hdfs ha using journal nodesHdfs ha using journal nodes
Hdfs ha using journal nodes
 
Vitess VReplication: Standing on the Shoulders of a MySQL Giant
Vitess VReplication: Standing on the Shoulders of a MySQL GiantVitess VReplication: Standing on the Shoulders of a MySQL Giant
Vitess VReplication: Standing on the Shoulders of a MySQL Giant
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HA
 
MCSA 70-412 Chapter 05
MCSA 70-412 Chapter 05MCSA 70-412 Chapter 05
MCSA 70-412 Chapter 05
 
EtherChannel Configuration
EtherChannel ConfigurationEtherChannel Configuration
EtherChannel Configuration
 
MySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptxMySQL_MariaDB로의_전환_기술요소-202212.pptx
MySQL_MariaDB로의_전환_기술요소-202212.pptx
 
EVPN-Applications.pdf
EVPN-Applications.pdfEVPN-Applications.pdf
EVPN-Applications.pdf
 
FastR+Apache Flink
FastR+Apache FlinkFastR+Apache Flink
FastR+Apache Flink
 
Alles was Sie über HCL Notes 14 wissen müssen
Alles was Sie über HCL Notes 14 wissen müssenAlles was Sie über HCL Notes 14 wissen müssen
Alles was Sie über HCL Notes 14 wissen müssen
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practice
 
Microsoft Offical Course 20410C_01
Microsoft Offical Course 20410C_01Microsoft Offical Course 20410C_01
Microsoft Offical Course 20410C_01
 
BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1
 
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best PracticesApril, 2021 OpenNTF Webinar - Domino Administration Best Practices
April, 2021 OpenNTF Webinar - Domino Administration Best Practices
 
Install active directory on windows server 2016 step by step
Install active directory on windows server 2016  step by stepInstall active directory on windows server 2016  step by step
Install active directory on windows server 2016 step by step
 
MinIO January 2020 Briefing
MinIO January 2020 BriefingMinIO January 2020 Briefing
MinIO January 2020 Briefing
 
[AIX] RDX Device Backup Guide
[AIX] RDX Device Backup Guide[AIX] RDX Device Backup Guide
[AIX] RDX Device Backup Guide
 
OpenStack networking juno l3 h-a, dvr
OpenStack networking   juno l3 h-a, dvrOpenStack networking   juno l3 h-a, dvr
OpenStack networking juno l3 h-a, dvr
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Kürzlich hochgeladen (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

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