Test System

Compare

Docs

Videos

Test Suites

Linux Test Project

1
runltp
2
filesystem stress tests
3
disk I/O tests
4
memory management stress tests
5
ipc stress
6
scheduler tests
7
commands functional varification tests
8
system call functional varification tests
9
networktests.sh
10
networking related tests
11
diskio.sh
12
tests related to floppy and CD-ROM drives
Copied!

LTP-DDT

Android

dev-tools

Selftests

1
cd /linux/tools/testing/
2
fault-injection
3
ktest
4
kunit
5
nvdimm
6
radix-tree
7
scatterlist
8
selftests
9
vsock
10
11
make -C selftests
12
make -C selftests run_tests
Copied!
"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

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

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

1
kisskb
2
Olof's autobuilder: mainline and next for arm, arm64, powerpc
3
Olof's autobooter: mainline, next, arm-soc
4
Tegra builds: mainline
5
Buildbot by Mark Brown: x86_64, arm, arm64 (8 builds)
6
CKI - used by RedHat
7
Gentoo Kernel CI
8
hottest notes
9
Krzk Samsung-SoC
10
ktest
11
Labgrid
12
LKFT
13
Opentest
14
Phoronix
15
SLAV
16
syzbot (& syzkaller)
17
TCF
18
Xilinx test (aka regression_xlnx)
Copied!

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