提交 ac5e2b20 编写于 作者: K Kevin Wolf

qemu-iotests: test larger clusters sizes on qcow2

This patch adds test case 023 which tests some more cluster sizes. For
anythinger larger than 4k clusters we can't use requests that are l2_size or
more (128k for 1k clusters, 2 MB for 4k clusters, 512 MB for 64k clusters).
Therefore one of the common.pattern cases is changed and needs new expected
results for some old test cases.
Signed-off-by: NKevin Wolf <kwolf@redhat.com>
Signed-off-by: NChristoph Hellwig <hch@lst.de>
上级 3da9c8fb
此差异已折叠。
此差异已折叠。
......@@ -2184,23 +2184,23 @@ qemu-io> wrote 8192/8192 bytes at offset 15456256
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 8192/8192 bytes at offset 15468544
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> === IO: pattern 4
qemu-io> wrote 4194304/4194304 bytes at offset 20468224
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 25467904
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 30467584
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 35467264
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 40466944
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 45466624
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 50466304
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 55465984
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> === IO: pattern 244
qemu-io> wrote 12288/12288 bytes at offset 18870272
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 20969472
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 23068672
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 25167872
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 27267072
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 29366272
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 31465472
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 33564672
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> === IO: pattern 0
qemu-io> read 4096/4096 bytes at offset 10489856
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
......@@ -4382,23 +4382,23 @@ qemu-io> read 8192/8192 bytes at offset 15456256
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 8192/8192 bytes at offset 15468544
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> === IO: pattern 4
qemu-io> read 4194304/4194304 bytes at offset 20468224
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 25467904
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 30467584
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 35467264
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 40466944
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 45466624
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 50466304
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 55465984
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> === IO: pattern 244
qemu-io> read 12288/12288 bytes at offset 18870272
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 20969472
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 23068672
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 25167872
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 27267072
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 29366272
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 31465472
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 33564672
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> No errors were found on the image.
At offset 4294967296:
=== IO: pattern 0
......@@ -6582,23 +6582,23 @@ qemu-io> wrote 8192/8192 bytes at offset 4299937792
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 8192/8192 bytes at offset 4299950080
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> === IO: pattern 4
qemu-io> wrote 4194304/4194304 bytes at offset 4304949760
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 4309949440
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 4314949120
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 4319948800
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 4324948480
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 4329948160
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 4334947840
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 4194304/4194304 bytes at offset 4339947520
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> === IO: pattern 244
qemu-io> wrote 12288/12288 bytes at offset 4303351808
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 4305451008
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 4307550208
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 4309649408
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 4311748608
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 4313847808
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 4315947008
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> wrote 12288/12288 bytes at offset 4318046208
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> === IO: pattern 0
qemu-io> read 4096/4096 bytes at offset 4294971392
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
......@@ -8780,22 +8780,22 @@ qemu-io> read 8192/8192 bytes at offset 4299937792
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 8192/8192 bytes at offset 4299950080
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> === IO: pattern 4
qemu-io> read 4194304/4194304 bytes at offset 4304949760
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 4309949440
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 4314949120
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 4319948800
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 4324948480
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 4329948160
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 4334947840
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 4194304/4194304 bytes at offset 4339947520
4 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> === IO: pattern 244
qemu-io> read 12288/12288 bytes at offset 4303351808
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 4305451008
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 4307550208
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 4309649408
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 4311748608
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 4313847808
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 4315947008
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> read 12288/12288 bytes at offset 4318046208
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
qemu-io> No errors were found on the image.
*** done
#!/bin/sh
#
# qcow2 pattern test with various cluster sizes
#
# Copyright (C) 2009 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# creator
owner=kwolf@redhat.com
seq=`basename $0`
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
_cleanup()
{
_cleanup_test_img
}
trap "_cleanup; exit \$status" 0 1 2 3 15
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
. ./common.pattern
# much of this could be generic for any format supporting compression.
_supported_fmt qcow qcow2
_supported_os Linux
TEST_OFFSETS="0 4294967296"
TEST_OPS="writev read write readv"
# Can't use 512 byte clusters, the tests use cluster halves
CLUSTER_SIZES="1024 4096 16384 65536"
for CLUSTER_SIZE in $CLUSTER_SIZES; do
echo "Creating new image; cluster size: $CLUSTER_SIZE"
echo
_make_test_img 8G
echo "Testing empty image"
echo
for offset in $TEST_OFFSETS; do
echo "At offset $offset:"
for op in $TEST_OPS; do
io_test $op $offset $CLUSTER_SIZE 3
done
_check_test_img
done
echo "Compressing image"
echo
mv $TEST_IMG $TEST_IMG.orig
$QEMU_IMG convert -f $IMGFMT -O $IMGFMT -c $TEST_IMG.orig $TEST_IMG
echo "Testing compressed image"
echo
for offset in $TEST_OFFSETS; do
echo "With offset $offset:"
for op in read readv; do
io_test $op $offset $CLUSTER_SIZE 3
done
_check_test_img
done
echo "Testing compressed image with odd offsets"
echo
for offset in $TEST_OFFSETS; do
# Some odd offset (1 sector), so tests will write to areas occupied partly
# by old (compressed) data and empty clusters
offset=$((offset + 512))
echo "With offset $offset:"
for op in $TEST_OPS; do
io_test $op $offset $CLUSTER_SIZE 3
done
_check_test_img
done
echo "Creating another new image"
echo
_make_test_img 8G
echo "More complex patterns"
echo
for offset in $TEST_OFFSETS; do
echo test2: With offset $offset
io_test2 $offset $CLUSTER_SIZE 4
_check_test_img
done
done
# success, all done
echo "*** done"
rm -f $seq.full
status=0
此差异已折叠。
......@@ -95,8 +95,9 @@ function io_test() {
# Spanning multiple L2 tables
# L2 table size: 512 clusters of 4k = 2M
io "$op" $((offset + $half_cluster)) $((2 * l2_size)) 4999680 $num_large
offset=$((offset + num_large * (2 * l2_size + 512 * 1573)))
offset=$(( ((offset + l2_size - 1) & ~(l2_size - 1)) - (3 * half_cluster) ))
io "$op" $offset $((6 * half_cluster)) $(( l2_size + half_cluster )) $num_large
offset=$((offset + num_large * ( l2_size + half_cluster )))
}
function io_test2() {
......
......@@ -29,3 +29,4 @@
020 rw backing auto
021 io auto
022 rw snapshot auto
023 rw auto
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册