Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The new block layer APIs of zoned block devices can be tested by: $ tests/qemu-iotests/check zoned Run each zone operation on a newly created null_blk device and see whether it outputs the same zone information. Signed-off-by: Sam Li <faithilikerun@gmail.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 20230427172019.3345-7-faithilikerun@gmail.com Message-id: 20230324090605.28361-7-faithilikerun@gmail.com [Adjust commit message prefix as suggested by Philippe Mathieu-Daudé <philmd@linaro.org>. --Stefan] Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
- Loading branch information
1 parent
46aa2a3
commit b8c274b
Showing
2 changed files
with
142 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
#!/usr/bin/env bash | ||
# | ||
# Test zone management operations. | ||
# | ||
|
||
seq="$(basename $0)" | ||
echo "QA output created by $seq" | ||
status=1 # failure is the default! | ||
|
||
_cleanup() | ||
{ | ||
_cleanup_test_img | ||
sudo -n rmmod null_blk | ||
} | ||
trap "_cleanup; exit \$status" 0 1 2 3 15 | ||
|
||
# get standard environment, filters and checks | ||
. ../common.rc | ||
. ../common.filter | ||
. ../common.qemu | ||
|
||
# This test only runs on Linux hosts with raw image files. | ||
_supported_fmt raw | ||
_supported_proto file | ||
_supported_os Linux | ||
|
||
sudo -n true || \ | ||
_notrun 'Password-less sudo required' | ||
|
||
IMG="--image-opts -n driver=host_device,filename=/dev/nullb0" | ||
QEMU_IO_OPTIONS=$QEMU_IO_OPTIONS_NO_FMT | ||
|
||
echo "Testing a null_blk device:" | ||
echo "case 1: if the operations work" | ||
sudo -n modprobe null_blk nr_devices=1 zoned=1 | ||
sudo -n chmod 0666 /dev/nullb0 | ||
|
||
echo "(1) report the first zone:" | ||
$QEMU_IO $IMG -c "zrp 0 1" | ||
echo | ||
echo "report the first 10 zones" | ||
$QEMU_IO $IMG -c "zrp 0 10" | ||
echo | ||
echo "report the last zone:" | ||
$QEMU_IO $IMG -c "zrp 0x3e70000000 2" # 0x3e70000000 / 512 = 0x1f380000 | ||
echo | ||
echo | ||
echo "(2) opening the first zone" | ||
$QEMU_IO $IMG -c "zo 0 268435456" # 268435456 / 512 = 524288 | ||
echo "report after:" | ||
$QEMU_IO $IMG -c "zrp 0 1" | ||
echo | ||
echo "opening the second zone" | ||
$QEMU_IO $IMG -c "zo 268435456 268435456" # | ||
echo "report after:" | ||
$QEMU_IO $IMG -c "zrp 268435456 1" | ||
echo | ||
echo "opening the last zone" | ||
$QEMU_IO $IMG -c "zo 0x3e70000000 268435456" | ||
echo "report after:" | ||
$QEMU_IO $IMG -c "zrp 0x3e70000000 2" | ||
echo | ||
echo | ||
echo "(3) closing the first zone" | ||
$QEMU_IO $IMG -c "zc 0 268435456" | ||
echo "report after:" | ||
$QEMU_IO $IMG -c "zrp 0 1" | ||
echo | ||
echo "closing the last zone" | ||
$QEMU_IO $IMG -c "zc 0x3e70000000 268435456" | ||
echo "report after:" | ||
$QEMU_IO $IMG -c "zrp 0x3e70000000 2" | ||
echo | ||
echo | ||
echo "(4) finishing the second zone" | ||
$QEMU_IO $IMG -c "zf 268435456 268435456" | ||
echo "After finishing a zone:" | ||
$QEMU_IO $IMG -c "zrp 268435456 1" | ||
echo | ||
echo | ||
echo "(5) resetting the second zone" | ||
$QEMU_IO $IMG -c "zrs 268435456 268435456" | ||
echo "After resetting a zone:" | ||
$QEMU_IO $IMG -c "zrp 268435456 1" | ||
|
||
# success, all done | ||
echo "*** done" | ||
rm -f $seq.full | ||
status=0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
QA output created by zoned | ||
Testing a null_blk device: | ||
case 1: if the operations work | ||
(1) report the first zone: | ||
start: 0x0, len 0x80000, cap 0x80000, wptr 0x0, zcond:1, [type: 2] | ||
|
||
report the first 10 zones | ||
start: 0x0, len 0x80000, cap 0x80000, wptr 0x0, zcond:1, [type: 2] | ||
start: 0x80000, len 0x80000, cap 0x80000, wptr 0x80000, zcond:1, [type: 2] | ||
start: 0x100000, len 0x80000, cap 0x80000, wptr 0x100000, zcond:1, [type: 2] | ||
start: 0x180000, len 0x80000, cap 0x80000, wptr 0x180000, zcond:1, [type: 2] | ||
start: 0x200000, len 0x80000, cap 0x80000, wptr 0x200000, zcond:1, [type: 2] | ||
start: 0x280000, len 0x80000, cap 0x80000, wptr 0x280000, zcond:1, [type: 2] | ||
start: 0x300000, len 0x80000, cap 0x80000, wptr 0x300000, zcond:1, [type: 2] | ||
start: 0x380000, len 0x80000, cap 0x80000, wptr 0x380000, zcond:1, [type: 2] | ||
start: 0x400000, len 0x80000, cap 0x80000, wptr 0x400000, zcond:1, [type: 2] | ||
start: 0x480000, len 0x80000, cap 0x80000, wptr 0x480000, zcond:1, [type: 2] | ||
|
||
report the last zone: | ||
start: 0x1f380000, len 0x80000, cap 0x80000, wptr 0x1f380000, zcond:1, [type: 2] | ||
|
||
|
||
(2) opening the first zone | ||
report after: | ||
start: 0x0, len 0x80000, cap 0x80000, wptr 0x0, zcond:3, [type: 2] | ||
|
||
opening the second zone | ||
report after: | ||
start: 0x80000, len 0x80000, cap 0x80000, wptr 0x80000, zcond:3, [type: 2] | ||
|
||
opening the last zone | ||
report after: | ||
start: 0x1f380000, len 0x80000, cap 0x80000, wptr 0x1f380000, zcond:3, [type: 2] | ||
|
||
|
||
(3) closing the first zone | ||
report after: | ||
start: 0x0, len 0x80000, cap 0x80000, wptr 0x0, zcond:1, [type: 2] | ||
|
||
closing the last zone | ||
report after: | ||
start: 0x1f380000, len 0x80000, cap 0x80000, wptr 0x1f380000, zcond:1, [type: 2] | ||
|
||
|
||
(4) finishing the second zone | ||
After finishing a zone: | ||
start: 0x80000, len 0x80000, cap 0x80000, wptr 0x100000, zcond:14, [type: 2] | ||
|
||
|
||
(5) resetting the second zone | ||
After resetting a zone: | ||
start: 0x80000, len 0x80000, cap 0x80000, wptr 0x80000, zcond:1, [type: 2] | ||
*** done |