#!/bin/bash
# SPDX-License-Identifier: GPL-3.0+
# Copyright (C) 2018 Omar Sandoval
#
# Smoke test all null_blk queue modes. Regression test for patch "null_blk: fix
# zoned support for non-rq based operation".

. tests/block/rc
. common/null_blk

DESCRIPTION="do I/O on all null_blk queue modes"
QUICK=1
CAN_BE_ZONED=1

requires() {
	_have_null_blk
}

test() {
	echo "Running ${TEST_NAME}"

	local queue_mode
	for queue_mode in 0 2; do
		if _configure_null_blk nullb1 size=1024 \
				queue_mode="$queue_mode" power=1; then
			echo "Queue mode $queue_mode"
			dd if=/dev/nullb1 of=/dev/null iflag=direct bs=64k status=none
			dd if=/dev/null of=/dev/nullb1 oflag=direct bs=64k status=none
			_exit_null_blk
		fi
	done

	echo "Test complete"
}
