Links

Test System

Compare

Docs

Videos

Test Suites

Linux Test Project

runltp
filesystem stress tests
disk I/O tests
memory management stress tests
ipc stress
scheduler tests
commands functional varification tests
system call functional varification tests
networktests.sh
networking related tests
diskio.sh
tests related to floppy and CD-ROM drives

LTP-DDT

Android

dev-tools

Selftests

cd /linux/tools/testing/
fault-injection
ktest
kunit
nvdimm
radix-tree
scatterlist
selftests
vsock
make -C selftests
make -C selftests run_tests
"The magical fantasy land of Linux kernel testing" - Russell Currey (LCA 2020): https://www.youtube.com/watch?v=9Fzd6MapG3Y

KUnit - Kernel Unit Testing Framework

Storage

xfstests

xfs, ext2, ext4, cifs, btrfs, f2fs, reiserfs, gfs, jfs, udf, nfs, tmpfs

blktests

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-description

KernelCI - Python

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

LAVA - Python

Fuego - Mitsubishi

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

U-Boot “pytest suite”

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

tbot - Python

https://tbot.tools/ https://github.com/Rahix/tbot allow running tests in an automated setting (CI).

labgrid - Python

https://github.com/labgrid-project/labgrid#purpose 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/r4d 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/Ptest 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/

Kerneltests.org

Created to test stable release candidates https://kerneltests.org/builders

Robot Framework - Python

OperatingSystem | Process | Dialogs / String | Telnet

More

kisskb
Olof's autobuilder: mainline and next for arm, arm64, powerpc
Olof's autobooter: mainline, next, arm-soc
Tegra builds: mainline
Buildbot by Mark Brown: x86_64, arm, arm64 (8 builds)
CKI - used by RedHat
Gentoo Kernel CI
hottest notes
Krzk Samsung-SoC
ktest
Labgrid
LKFT
Opentest
Phoronix
SLAV
syzbot (& syzkaller)
TCF
Xilinx test (aka regression_xlnx)

Static Code Analyzers

Sparse

https://sparse.docs.kernel.org/en/latest/ 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/ the analyzer is part of Clang

Coccinelle

smatch

https://github.com/error27/smatch a semantic parser of source files

Coverity

Commercial Static Analyzer: https://scan.coverity.com/o/oss_success_stories

Fuzzing Tools

Trinity

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

Syzcaller

kcov - code coverage for fuzzing

https://www.kernel.org/doc/html/latest/dev-tools/kcov.html kcov exposes kernel code coverage information in a form suitable for coverage- guided fuzzing (randomized testing)
Last modified 1yr ago