[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 04/16] iotests: Test allocate_first_block() with O
From: |
Max Reitz |
Subject: |
[Qemu-devel] [PULL v2 04/16] iotests: Test allocate_first_block() with O_DIRECT |
Date: |
Tue, 3 Sep 2019 15:35:41 +0200 |
From: Nir Soffer <address@hidden>
Using block_resize we can test allocate_first_block() with file
descriptor opened with O_DIRECT, ensuring that it works for any size
larger than 4096 bytes.
Testing smaller sizes is tricky as the result depends on the filesystem
used for testing. For example on NFS any size will work since O_DIRECT
does not require any alignment.
Signed-off-by: Nir Soffer <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>
---
tests/qemu-iotests/175 | 28 ++++++++++++++++++++++++++++
tests/qemu-iotests/175.out | 8 ++++++++
2 files changed, 36 insertions(+)
diff --git a/tests/qemu-iotests/175 b/tests/qemu-iotests/175
index 7ba28b3c1b..55db2803ed 100755
--- a/tests/qemu-iotests/175
+++ b/tests/qemu-iotests/175
@@ -49,6 +49,23 @@ _filter_blocks()
-e "s/blocks=$((extra_blocks + img_size / 512))\\(\$\\|[^0-9]\\)/max
allocation/"
}
+# Resize image using block_resize.
+# Parameter 1: image path
+# Parameter 2: new size
+_block_resize()
+{
+ local path=$1
+ local size=$2
+
+ $QEMU -qmp stdio -nographic -nodefaults \
+ -blockdev file,node-name=file,filename=$path,cache.direct=on \
+ <<EOF
+{'execute': 'qmp_capabilities'}
+{'execute': 'block_resize', 'arguments': {'node-name': 'file', 'size': $size}}
+{'execute': 'quit'}
+EOF
+}
+
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
@@ -57,6 +74,9 @@ _supported_fmt raw
_supported_proto file
_supported_os Linux
+_default_cache_mode none
+_supported_cache_modes none directsync
+
size=$((1 * 1024 * 1024))
touch "$TEST_DIR/empty"
@@ -79,6 +99,14 @@ for mode in off full falloc; do
stat -c "size=%s, blocks=%b" $TEST_IMG | _filter_blocks $extra_blocks
$min_blocks $size
done
+for new_size in 4096 1048576; do
+ echo
+ echo "== resize empty image with block_resize =="
+ _make_test_img 0 | _filter_imgfmt
+ _block_resize $TEST_IMG $new_size >/dev/null
+ stat -c "size=%s, blocks=%b" $TEST_IMG | _filter_blocks $extra_blocks
$min_blocks $new_size
+done
+
# success, all done
echo "*** done"
rm -f $seq.full
diff --git a/tests/qemu-iotests/175.out b/tests/qemu-iotests/175.out
index 263e521262..39c2ee0f62 100644
--- a/tests/qemu-iotests/175.out
+++ b/tests/qemu-iotests/175.out
@@ -15,4 +15,12 @@ size=1048576, max allocation
== creating image with preallocation falloc ==
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 preallocation=falloc
size=1048576, max allocation
+
+== resize empty image with block_resize ==
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=0
+size=4096, min allocation
+
+== resize empty image with block_resize ==
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=0
+size=1048576, min allocation
*** done
--
2.21.0
[Qemu-devel] [PULL v2 02/16] block: fix permission update in bdrv_replace_node, Max Reitz, 2019/09/03
[Qemu-devel] [PULL v2 04/16] iotests: Test allocate_first_block() with O_DIRECT,
Max Reitz <=
[Qemu-devel] [PULL v2 05/16] iotests: Fix _filter_img_create(), Max Reitz, 2019/09/03
[Qemu-devel] [PULL v2 03/16] block: posix: Always allocate the first block, Max Reitz, 2019/09/03
[Qemu-devel] [PULL v2 07/16] iotests: Keep testing broken relative extent paths, Max Reitz, 2019/09/03
[Qemu-devel] [PULL v2 08/16] vmdk: Reject invalid compressed writes, Max Reitz, 2019/09/03
[Qemu-devel] [PULL v2 06/16] vmdk: Use bdrv_dirname() for relative extent paths, Max Reitz, 2019/09/03
[Qemu-devel] [PULL v2 10/16] iotests: Disable 110 for vmdk.twoGbMaxExtentSparse, Max Reitz, 2019/09/03
[Qemu-devel] [PULL v2 09/16] iotests: Disable broken streamOptimized tests, Max Reitz, 2019/09/03
[Qemu-devel] [PULL v2 11/16] iotests: Disable 126 for flat vmdk subformats, Max Reitz, 2019/09/03
[Qemu-devel] [PULL v2 12/16] file-posix: fix request_alignment typo, Max Reitz, 2019/09/03
[Qemu-devel] [PULL v2 13/16] iotests: Add -display none to the qemu options, Max Reitz, 2019/09/03