Git Product home page Git Product logo

blktests's Introduction

blktests

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

New test cases are welcomed when,

  • a bug in block layer or storage stack is found and the new test case confirms fix of the bug,
  • a new feature is introduced in block layer or storage stack, and the new test cases confirm that the feature is working well, or,
  • the new test cases extend coverage of block layer and storage stack code.

The ./new script creates a new test from a template. The generated template contains more detailed documentation. The ./new script itself can be referred to as a document. It describes variables and functions that test cases should implement, global variables that test cases can refer and coding guidelines.

Patches to [email protected] and pull requests on GitHub are both accepted. See here for more information on contributing.

blktests's People

Contributors

osandov avatar kawasaki avatar bvanassche avatar igaw avatar chaitanayakulkarni avatar yizhanglinux avatar lsgunth avatar hreinecke avatar axboe avatar sagigrimberg avatar yangx-jy avatar zhijianli88 avatar suzu-masa avatar alanpeterad avatar andrealmeid avatar liangxiao1 avatar tytso avatar dennisszhou avatar birkelund avatar old-memories avatar sunke-lp avatar frankenmichl avatar jankara avatar ddiss avatar damien-lemoal avatar zhengbin13 avatar xuyang0410 avatar steffen-maier avatar nj-shetty avatar michael-schaller avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.