Clone this repo:
  1. a58b974 loop: Add test for changing capacity when filesystem is mounted by Jan Kara · 12 hours ago master
  2. a9c5850 block: 028: block integrity funtion test by Ming Lei · 13 hours ago
  3. 4cc4667 README: update required bash version by Omar Sandoval · 6 days ago
  4. 8a27457 cgroup: test if CGROUP2_DIR is set with -v instead of -n by Omar Sandoval · 6 days ago
  5. 3c2a37f Merge pull request #43 from tytso/master by Omar Sandoval · 9 days ago


blktests is a test framework for the Linux kernel block layer and storage stack. It is inspired by the xfstests filesystem testing framework.

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) 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:

TEST_DEVS=(/dev/nvme0n1 /dev/sdb)

And as root, run the default set of tests with ./check.

Note that these tests are destructive, so don't 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.