The current blktests infrastucture and test cases do not support zoned block devices and no specific test cases exist to test these block devices special features (zone report and reset, sequential write constraint). This patch series implement this missing support. The series addresses two aspects: the first 6 patches introduce changes to the common scripts and configuration are introduced to allow existing test cases to run against a null_blk device with zone mode enabled (new ZONED config variable) or for these test cases to be skipped if a test declare itself as not zoned compliant. Helper functions are introduced to facilitate checking a device zone model. The second part, composed of the last 8 patches, introduce the new zbd test group to cover zoned block device specific test cases. All these test cases are implemented using the test_device() function so that target devices can be specified in the TEST_DEVS config variable, to cover a variety of zoned block devices: physical real drives, partitions and dm-linear setups on top of zoned block devices, etc. Furthermore, using the infrastructure changes of the first part, the TEST_DEVS definition can be left empty, resulting in the zbd test cases to be run against an automatically created null_blk device with zoned mode enabled. 5 test cases are added to the new zbd test group to check the kernel ioctl and sysfs interface, zone report operation, zone reset and write command handling. These tests are simple but only a start. We will in the future send more test cases to cover at least the regressions and bugs found and fixed in the zoned block device code since its introduction with kernel 4.10. Another still to be added part is support for host-managed ZBC emulation in scsi-debug to further improve test coverage without requiring a physical SMR disk. This work is ongoing and will be added to blktests once the relevant scsi-debug changes are accepted in the kernel. Masato Suzuki (6): tests: Introduce zbd test group zbd/001: sysfs and ioctl consistency test zbd/002: report zone test zbd/003: Test sequential zones reset zbd/004: Check write split accross sequential zones zbd/005: Test write ordering Shin'ichiro Kawasaki (8): config: Introduce ZONED variable common: Introduce _test_dev_is_zoned() helper function common: Move set_scheduler() function from multipath-over-rdma to rc block/004: Adjust fio conditions for zoned block device block/013: Skip for zoned block devices block/018,024: Skip when ZONED is set check: Introduce group_exit() function src: Introduce zbdioctl program Documentation/running-tests.md | 11 ++ check | 6 + common/multipath-over-rdma | 24 ---- common/null_blk | 23 ++- common/rc | 33 +++++ src/.gitignore | 1 + src/Makefile | 3 +- src/zbdioctl.c | 83 +++++++++++ tests/block/004 | 12 +- tests/block/013 | 8 ++ tests/block/018 | 2 +- tests/block/024 | 2 +- tests/zbd/001 | 66 +++++++++ tests/zbd/001.out | 2 + tests/zbd/002 | 99 +++++++++++++ tests/zbd/002.out | 2 + tests/zbd/003 | 69 +++++++++ tests/zbd/003.out | 2 + tests/zbd/004 | 81 +++++++++++ tests/zbd/004.out | 2 + tests/zbd/005 | 57 ++++++++ tests/zbd/005.out | 2 + tests/zbd/rc | 250 +++++++++++++++++++++++++++++++++ 23 files changed, 811 insertions(+), 29 deletions(-) create mode 100644 src/zbdioctl.c create mode 100755 tests/zbd/001 create mode 100644 tests/zbd/001.out create mode 100755 tests/zbd/002 create mode 100644 tests/zbd/002.out create mode 100755 tests/zbd/003 create mode 100644 tests/zbd/003.out create mode 100755 tests/zbd/004 create mode 100644 tests/zbd/004.out create mode 100755 tests/zbd/005 create mode 100644 tests/zbd/005.out create mode 100644 tests/zbd/rc -- 2.20.1