blktests
blktests is a test framework for the Linux kernel block layer and storage stack. It is inspired by the xfstests filesystem testing framework. It was originally written by Omar Sandoval and announced in 2017.
Getting Started
The dependencies are minimal, but make sure you have them installed:
- bash (>= 4.2)
- GNU coreutils
- GNU awk
- util-linux
- fio
- gcc
- make
Some tests require the following:
- e2fsprogs and xfsprogs
- multipath-tools (Debian, openSUSE, Arch Linux) or device-mapper-multipath (Fedora)
- dmsetup (Debian) or device-mapper (Fedora, openSUSE, Arch Linux)
Build blktests with make
. Optionally, install it to a known location with
make install
(/usr/local/blktests
by default, but this can be changed by
passing DESTDIR
and/or prefix
).
Add the list of block devices you want to test on in a file named config
(note: these tests are potentially destructive):
TEST_DEVS=(/dev/nvme0n1 /dev/sdb)
And as root, run the default set of tests with ./check
.
Do not add anything to the TEST_DEVS
array containing data that you want
to keep.
See here for more detailed information on configuration and running tests.
Adding Tests
The ./new
script creates a new test from a template. The generated template
contains more detailed documentation.
Pull requests on GitHub and patches to [email protected] are both accepted. See here for more information on contributing.