FrontPage 

Fuego wiki

Login or create account

Other test systems in 'raw' format

{{TableOfContents}}
This page has a list of other test systems and with notes or links to their
online resources

See the related page: [[Test results formats]]

= LAVA =
 * [[https://validation.linaro.org/|LAVA]] -- see [[Tims LAVA Notes]]

= KernelCI =
 * [[http://kernelci.org/|KernelCI]]

= AGL CIAT =
 * [[https://wiki.automotivelinux.org/eg-ciat|AGL's EGCIAT]] - Expert Group, Continuous Integration and Test
   * see https://wiki.automotivelinux.org/eg-ciat/meetings for what they're working on lately

= kselftest =
 * see https://kselftest.wiki.kernel.org/

= 0-day =
 * https://01.org/lkp/documentation/0-day-test-service
 * https://github.com/fengguang/lkp-tests.git

For more details see [[Tims 0day notes]]

Puts each test (named a 'job') into a yaml file

lkp is a command line tool for executing a test

some command line options are:
 * lkp install <test_package>
   * ls $LKP_SRC/jobs to see available jobs
 * lkp split-job <test_package>
 * lkp run
 * lkp result <testname>

Here's what a test looks like:

From the file tbench.yaml
{{{#!YellowBox
suite: tbench
testcase: tbench
category: benchmark

# upto 40% CPU cycles may be used by latency stats
disable_latency_stats: 1

nr_threads: 100%

cluster: cs-localhost

if role server:
  tbench-server:

if role client:
  tbench:
}}}

= autotest =

= ctest =



= Avacado =
 * https://avocado-framework.github.io/ - main site
 * Presentation - https://www.youtube.com/watch?v=tdEg07BfdBw 
   * every job has a sha1
   * every job can output in multiple formats
     * including standalone HTML output
     * also xunit, others
   * is basically a test runner, with an API
     * simple test has pass or fail (0 or 1 result)
     * more complicated test can use testing API
       * can add a monitor (like perf)
   * has a test multiplexer (YAML-based) to create test matrix
   * full persistence of every test executed
   * very easy configuration of programs to run and files to save (eg. from /proc) for every test executed.
   * demo was in python (is API only in python?)
   * creates something similar to a shell script.
     * you can run it individually from the build directory using 'check'
   * big question about test naming (as of presentation, avocado names tests by number)
   * can run a test on a remote system
   * has plugins for different features and functionality of the system
     * including basic functionality, like list tests or list systems
   * ability to stop system with gdb and do some interaction.
   * avacado server
     * exposes results with HTTP REST API
   * avacado integration with Jenkins
     * run the avacado command as a build in a freestyle job
     * put output in xxunit
     * get results from xunit
   * working on isolating variable that caused the problem
     * diff 2 systems and all the files, messages, versions, etc, and identify the
     thing that has resulted in the error
     * used for bisection?

= OpenQA =
 * OpenQA test visualization: https://openqa.opensuse.org/
 * OpenQA project: http://open.qa/


= Bats: Bash Automated Testing System =
BATS is a TAP-compliant system for testing shell scripts or Unix commands.
 * see https://github.com/sstephenson/bats


= Yocto ptest =

= Intel GFX CI =
Intel does CI on the kernel driver for their graphics hardware.  They gave
a report at the testing session at Plumbers in 2017, with some interesting
insights and comments on kernel CI testing.
 * the project web page is at: https://intel-fgx-ci.01.org/
 * LWN.net article about their talk at plumbers: https://lwn.net/Articles/735468

== Key observations ==
They make a few key observations in their talk:
 * pre-merge testing is key to get developers to respond to bugs
   * once a patch is committed, interest in fixing regressions it caused goes down dramatically
 * pre-merge testing of hardware is hard because other parts of the kernel break a lot
 * it's very important to aggressively reduce false positives
   * nothing turns off developers faster than false positives
 * putting results as a response on the mailing list is good
   * just posting a result on a web site is not very useful

From the comments:
 * no one-size-fits-all CI is possible
 * developers have much higher incentive to test their own stuff
 * using resources on stuff no one cares about is a waste of time
 * dogfooding is what kept the kernel half-decent in the absence of rigorous testing
 * each subsystem and driver should have it's own CI running, before stuff hits linux-next












TBWiki engine 1.8.3 by Tim Bird