githubEdit

Test System

Compare

Docs

https://elinux.org/Testingarrow-up-right https://elinux.org/Test_Systems#Test_Projectsarrow-up-right https://elinux.org/images/9/9f/Linux-Kernel-Testing-Where-are-we.pdfarrow-up-right (2016) http://events17.linuxfoundation.org/sites/events/files/slides/PRE-trunk-ELCE-Automation-beyond-Testing_1.pdfarrow-up-right (2017)

Videos

https://www.youtube.com/watch?v=NRywFwe0uwUarrow-up-right introduce multiple frameworks available to test your Embedded Linux System and compare the use-cases (2018) Slide: https://elinux.org/images/0/08/Primer-Testing-Your-Embedded-System-What-is-a-ptest-Lava-Fuego-KernelCI-and...-Jan-Simon-Moeller-The-Linux-Foundation.pdfarrow-up-right

Test Suites

Linux Test Project

https://github.com/linux-test-project/ltp/wikiarrow-up-right

http://ltp.sourceforge.net/documentation/how-to/ltp.php#_3.2arrow-up-right

LTP-DDT

https://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/AM335X/linux/Foundational_Components_Kernel_LTP-DDT_Validation.htmlarrow-up-right LTP-DDT focuses on embedded device driver tests.

Android

https://android.googlesource.com/platform/external/ltp/arrow-up-right

dev-tools

https://www.kernel.org/doc/html/latest/dev-tools/arrow-up-right

Selftests

https://www.kernel.org/doc/html/latest/dev-tools/kselftest.htmlarrow-up-right

"The magical fantasy land of Linux kernel testing" - Russell Currey (LCA 2020): https://www.youtube.com/watch?v=9Fzd6MapG3Yarrow-up-right

KUnit - Kernel Unit Testing Framework

https://www.kernel.org/doc/html/latest/dev-tools/kunit/index.htmlarrow-up-right

Storage

xfstests

https://kernel.googlesource.com/pub/scm/fs/ext2/xfstests-bld/+/HEAD/Documentation/what-is-xfstests.mdarrow-up-right

blktests

https://github.com/osandov/blktestsarrow-up-right https://zonedstorage.io/tests/blktests/arrow-up-right

Group name

Description

block

Block layer generic tests

loop

Loopback device tests

meta

blktests self tests

nbd

Network block device driver tests

nvme

NVMe driver tests

nvmeof-mp

NVME-over-fabrics multipath tests

scsi

SCSI layer tests

srp

SCSI RDMA Protocol driver tests

zbd

Zoned block device tests

Test Automation Tools

0Day

test suites used by 0-Day performance test and LKP test tool: https://01.org/lkp/documentation/0-day/lkp-test-suites-descriptionarrow-up-right

KernelCI - Python

https://kernelci.org/arrow-up-right | Linux Foundation project use LAVA with KernelCI: https://github.com/kernelci/kernelci-core/blob/main/doc/lava.mdarrow-up-right

LAVA - Python

Linaro Automated Validation Architecture | https://www.lavasoftware.org/arrow-up-right Source: https://git.lavasoftware.org/lava/lavaarrow-up-right Docker: https://github.com/kernelci/lava-docker/arrow-up-right

Fuego - Mitsubishi

https://elinux.org/images/6/6c/Introduction-to-Fuego-JJ58-1.pdfarrow-up-right Fuego = (Jenkins + abstraction scripts + pre-packaged tests) inside a container

https://elinux.org/images/d/d4/ELCE-2016-Continuous-Integration-and-Autotest-Environment-using-Fuego_Master.pdfarrow-up-right

Source: https://bitbucket.org/fuegotest/arrow-up-right

Introduction Videos:

U-Boot “pytest suite”

https://github.com/u-boot/u-boot/tree/master/test/pyarrow-up-right only for U-Boot (with build support)

tbot - Python

https://tbot.tools/arrow-up-right https://github.com/Rahix/tbotarrow-up-right allow running tests in an automated setting (CI).

labgrid - Python

https://github.com/labgrid-project/labgrid#purposearrow-up-right create an abstraction of the hardware control layer needed for testing of embedded systems, automatic software installation and automation during development

  • pytest plugin to write tests for embedded systems connecting serial console or SSH

  • remote client-exporter-coordinator infrastructure to make boards available from different computers on a network

  • power/reset management via drivers for power switches or onewire PIOs

  • upload of binaries via USB: imxusbloader/mxsusbloader (bootloader) or fastboot (kernel)

Labgrid itself is not a testing framework, but is intended to be combined with pytest (and additional pytest plugins).

r4d - Python

https://github.com/ci-rt/r4darrow-up-right r4d means 'Remote For Device-under-test' and is an infrastructure for power-control and console access for multiple Linux Boards that should be controlled by a test-infrastructure like jenkins.

Yocto project / ptest

https://wiki.yoctoproject.org/wiki/Ptestarrow-up-right Ptest (package test) is a concept for building, installing and running the test suites that are included in many upstream packages, and producing a consistent output format for the results. Source: http://git.yoctoproject.org/clean/cgit.cgi/poky/tree/arrow-up-right

Kerneltests.org

Created to test stable release candidates https://kerneltests.org/buildersarrow-up-right

Robot Framework - Python

http://robotframework.org/robotframework/#user-guidearrow-up-right

OperatingSystem | Process | Dialogs / String | Telnet

More

http://fuegotest.org/wiki/Other_test_systemsarrow-up-right

https://elinux.org/Test_Stack_Survey#Responsesarrow-up-right

Static Code Analyzers

Sparse

https://www.kernel.org/doc/html/latest/dev-tools/sparse.htmlarrow-up-right

https://sparse.docs.kernel.org/en/latest/arrow-up-right the semantic parser, provides a compiler frontend capable of parsing most of ANSI C as well as many GCC extensions, and a collection of sample compiler backends, including a static analyzer also called sparse.

clang / LLVM

https://clang-analyzer.llvm.org/arrow-up-right the analyzer is part of Clang

Coccinelle

https://coccinelle.gitlabpages.inria.fr/website/arrow-up-right

smatch

https://github.com/error27/smatcharrow-up-right a semantic parser of source files

Coverity

Commercial Static Analyzer: https://scan.coverity.com/o/oss_success_storiesarrow-up-right

Fuzzing Tools

Paper: https://ftp.cs.wisc.edu/paradyn/technical_papers/fuzz.pdfarrow-up-right

Trinity

https://github.com/kernelslacker/trinityarrow-up-right a system call fuzzer which employs some techniques to pass semi-intelligent arguments to the syscalls being called.

Syzcaller

https://github.com/google/syzkaller/blob/master/docs/internals.mdarrow-up-right

kcov - code coverage for fuzzing

https://www.kernel.org/doc/html/latest/dev-tools/kcov.htmlarrow-up-right kcov exposes kernel code coverage information in a form suitable for coverage- guided fuzzing (randomized testing)

https://www.netbsd.org/~kamil/Maciej_Grochowski-FS_Fuzzing_EuroBSDCon2019.pdfarrow-up-right

Last updated