Clone this repo:
  1. 8c66c19 nvmeof-mp/001: Set expected count properly by Xiao Yang · 21 hours ago master
  2. 7de6716 srp/011: Avoid $dev becoming invalid during test by Xiao Yang · 21 hours ago
  3. 3ab437e CONTIRIBUTING, README: transfer maintainer role by Shin'ichiro Kawasaki · 27 hours ago
  4. 2d6917d common/multipath-over-rdma: Remove unused debug operation by Xiao Yang · 9 days ago
  5. 9accb5f tests/nvme: add tests for error logging by Alan Adamson · 9 days ago


Build Status

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 are both accepted. See here for more information on contributing.