Browse Source
Since virtio-blk implements request merging itself these days, the only remaining users are test cases for the function. That doesn't make the function exactly useful any more. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>pull/41/head
11 changed files with 9 additions and 693 deletions
@ -1,152 +0,0 @@ |
|||
#!/bin/bash |
|||
# |
|||
# Test simple read/write using plain bdrv_read/bdrv_write |
|||
# |
|||
# Copyright (C) 2014 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=stefanha@redhat.com |
|||
|
|||
seq=`basename $0` |
|||
echo "QA output created by $seq" |
|||
|
|||
here=`pwd` |
|||
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 |
|||
|
|||
_supported_fmt generic |
|||
_supported_proto generic |
|||
_supported_os Linux |
|||
|
|||
|
|||
size=128M |
|||
|
|||
echo |
|||
echo "== Single request ==" |
|||
_make_test_img $size |
|||
$QEMU_IO -c "write -z 0 8k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "multiwrite 0 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
echo |
|||
echo "== verify pattern ==" |
|||
$QEMU_IO -c "read -P 0xcd 0 4k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0 4k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
_cleanup_test_img |
|||
|
|||
echo |
|||
echo "== Sequential requests ==" |
|||
_make_test_img $size |
|||
$QEMU_IO -c "write -z 0 12k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "multiwrite 0 4k ; 4k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
echo |
|||
echo "== verify pattern ==" |
|||
$QEMU_IO -c "read -P 0xcd 0 4k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0xce 4k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0 8k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
_cleanup_test_img |
|||
|
|||
echo |
|||
echo "== Superset overlapping requests ==" |
|||
_make_test_img $size |
|||
$QEMU_IO -c "write -z 0 8k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "multiwrite 0 4k ; 1k 2k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
echo |
|||
echo "== verify pattern ==" |
|||
# Order of overlapping in-flight requests is not guaranteed so we cannot verify |
|||
# [1k, 3k) since it could have either pattern 0xcd or 0xce. |
|||
$QEMU_IO -c "read -P 0xcd 0 1k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0xcd 3k 1k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0 4k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
_cleanup_test_img |
|||
|
|||
echo |
|||
echo "== Subset overlapping requests ==" |
|||
_make_test_img $size |
|||
$QEMU_IO -c "write -z 0 8k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "multiwrite 1k 2k ; 0k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
echo |
|||
echo "== verify pattern ==" |
|||
# Order of overlapping in-flight requests is not guaranteed so we cannot verify |
|||
# [1k, 3k) since it could have either pattern 0xcd or 0xce. |
|||
$QEMU_IO -c "read -P 0xce 0 1k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0xce 3k 1k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0 4k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
_cleanup_test_img |
|||
|
|||
echo |
|||
echo "== Head overlapping requests ==" |
|||
_make_test_img $size |
|||
$QEMU_IO -c "write -z 0 8k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "multiwrite 0k 2k ; 0k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
echo |
|||
echo "== verify pattern ==" |
|||
# Order of overlapping in-flight requests is not guaranteed so we cannot verify |
|||
# [0k, 2k) since it could have either pattern 0xcd or 0xce. |
|||
$QEMU_IO -c "read -P 0xce 2k 2k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0 4k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
_cleanup_test_img |
|||
|
|||
echo |
|||
echo "== Tail overlapping requests ==" |
|||
_make_test_img $size |
|||
$QEMU_IO -c "write -z 0 8k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "multiwrite 2k 2k ; 0k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
echo |
|||
echo "== verify pattern ==" |
|||
# Order of overlapping in-flight requests is not guaranteed so we cannot verify |
|||
# [2k, 4k) since it could have either pattern 0xcd or 0xce. |
|||
$QEMU_IO -c "read -P 0xce 0k 2k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0 4k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
_cleanup_test_img |
|||
|
|||
echo |
|||
echo "== Disjoint requests ==" |
|||
_make_test_img $size |
|||
$QEMU_IO -c "write -z 0 72k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "multiwrite 0 4k ; 64k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
echo |
|||
echo "== verify pattern ==" |
|||
$QEMU_IO -c "read -P 0xcd 0 4k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0 4k 60k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0xce 64k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
$QEMU_IO -c "read -P 0 68k 4k" "$TEST_IMG" | _filter_qemu_io |
|||
|
|||
# success, all done |
|||
echo "*** done" |
|||
rm -f $seq.full |
|||
status=0 |
|||
@ -1,103 +0,0 @@ |
|||
QA output created by 100 |
|||
|
|||
== Single request == |
|||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
|||
wrote 8192/8192 bytes at offset 0 |
|||
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
wrote 4096/4096 bytes at offset 0 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== verify pattern == |
|||
read 4096/4096 bytes at offset 0 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 4096/4096 bytes at offset 4096 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== Sequential requests == |
|||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
|||
wrote 12288/12288 bytes at offset 0 |
|||
12 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
wrote 8192/8192 bytes at offset 0 |
|||
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== verify pattern == |
|||
read 4096/4096 bytes at offset 0 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 4096/4096 bytes at offset 4096 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 4096/4096 bytes at offset 8192 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== Superset overlapping requests == |
|||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
|||
wrote 8192/8192 bytes at offset 0 |
|||
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
wrote 6144/6144 bytes at offset 0 |
|||
6 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== verify pattern == |
|||
read 1024/1024 bytes at offset 0 |
|||
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 1024/1024 bytes at offset 3072 |
|||
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 4096/4096 bytes at offset 4096 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== Subset overlapping requests == |
|||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
|||
wrote 8192/8192 bytes at offset 0 |
|||
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
wrote 6144/6144 bytes at offset 1024 |
|||
6 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== verify pattern == |
|||
read 1024/1024 bytes at offset 0 |
|||
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 1024/1024 bytes at offset 3072 |
|||
1 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 4096/4096 bytes at offset 4096 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== Head overlapping requests == |
|||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
|||
wrote 8192/8192 bytes at offset 0 |
|||
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
wrote 6144/6144 bytes at offset 0 |
|||
6 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== verify pattern == |
|||
read 2048/2048 bytes at offset 2048 |
|||
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 4096/4096 bytes at offset 4096 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== Tail overlapping requests == |
|||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
|||
wrote 8192/8192 bytes at offset 0 |
|||
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
wrote 6144/6144 bytes at offset 2048 |
|||
6 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== verify pattern == |
|||
read 2048/2048 bytes at offset 0 |
|||
2 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 4096/4096 bytes at offset 4096 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== Disjoint requests == |
|||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 |
|||
wrote 73728/73728 bytes at offset 0 |
|||
72 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
wrote 8192/8192 bytes at offset 0 |
|||
8 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
|
|||
== verify pattern == |
|||
read 4096/4096 bytes at offset 0 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 61440/61440 bytes at offset 4096 |
|||
60 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 4096/4096 bytes at offset 65536 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
read 4096/4096 bytes at offset 69632 |
|||
4 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) |
|||
*** done |
|||
@ -1,5 +1,5 @@ |
|||
........................................ |
|||
................................... |
|||
---------------------------------------------------------------------- |
|||
Ran 40 tests |
|||
Ran 35 tests |
|||
|
|||
OK |
|||
|
|||
Loading…
Reference in new issue