Signed-off-by: Fam Zheng <f...@redhat.com> --- tests/qemu-iotests/140 | 80 +++++++++++++++++++++++++ tests/qemu-iotests/140.out | 145 +++++++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/common | 6 ++ tests/qemu-iotests/group | 1 + 4 files changed, 232 insertions(+) create mode 100755 tests/qemu-iotests/140 create mode 100644 tests/qemu-iotests/140.out
diff --git a/tests/qemu-iotests/140 b/tests/qemu-iotests/140 new file mode 100755 index 0000000..e5c3c56 --- /dev/null +++ b/tests/qemu-iotests/140 @@ -0,0 +1,80 @@ +#!/bin/bash +# +# General tests for QBM format +# +# Copyright (C) 2015 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=f...@redhat.com + +seq="$(basename $0)" +echo "QA output created by $seq" + +here="$PWD" +tmp=/tmp/$$ +status=1 # failure is the default! + +_cleanup() +{ + return + _cleanup_test_img +} +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +_supported_fmt qbm +_supported_proto file +_supported_os Linux + +size=128M + +echo +echo "=== Create a QBM file with no option ===" +_make_test_img $size +_img_info +cat $TEST_IMG + +for n in 0 1 3; do + echo + echo "=== Create a QBM file with $n dirty bitmap(s) ===" + echo + _make_test_img -o dirty-bitmaps=$n $size + _img_info + cat $TEST_IMG +done + + +$QEMU_IMG map $TEST_IMG + +echo +echo "=== Create a QBM file with raw backing image ===" +IMGFMT=raw TEST_IMG=$TEST_IMG.base _make_test_img $size +$QEMU_IO_PROG -f raw $TEST_IMG.base -c "write 0 $size" | _filter_qemu_io +_make_test_img -o dirty-bitmaps=1 -b $TEST_IMG.base +cat $TEST_IMG +_img_info + +$QEMU_IO $TEST_IMG -c "write 130560 131072" | _filter_qemu_io +$QEMU_IMG map $TEST_IMG + +# success, all done +echo "*** done" +rm -f $seq.full +status=0 diff --git a/tests/qemu-iotests/140.out b/tests/qemu-iotests/140.out new file mode 100644 index 0000000..1d9cefb --- /dev/null +++ b/tests/qemu-iotests/140.out @@ -0,0 +1,145 @@ +QA output created by 140 + +=== Create a QBM file with no option === +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 +image: TEST_DIR/t.IMGFMT +file format: IMGFMT +virtual size: 128M (134217728 bytes) +cluster_size: 512 +{ + "QBM": { + "bitmaps": { + }, + "image": { + "format": "raw", + "file": "t-data.img.qbm" + }, + "version": 1, + "creator": "QEMU" + } +} + +=== Create a QBM file with 0 dirty bitmap(s) === + +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 dirty-bitmaps=0 +image: TEST_DIR/t.IMGFMT +file format: IMGFMT +virtual size: 128M (134217728 bytes) +cluster_size: 512 +{ + "QBM": { + "bitmaps": { + }, + "image": { + "format": "raw", + "file": "t-data.img.qbm" + }, + "version": 1, + "creator": "QEMU" + } +} + +=== Create a QBM file with 1 dirty bitmap(s) === + +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 dirty-bitmaps=1 +image: TEST_DIR/t.IMGFMT +file format: IMGFMT +virtual size: 128M (134217728 bytes) +cluster_size: 512 +{ + "QBM": { + "bitmaps": { + "dirty.0": { + "granularity-bytes": 65536, + "type": "dirty", + "file": "t-dirty.0.bitmap.qbm" + } + }, + "image": { + "format": "raw", + "file": "t-data.img.qbm" + }, + "version": 1, + "creator": "QEMU" + } +} + +=== Create a QBM file with 3 dirty bitmap(s) === + +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 dirty-bitmaps=3 +image: TEST_DIR/t.IMGFMT +file format: IMGFMT +virtual size: 128M (134217728 bytes) +cluster_size: 512 +{ + "QBM": { + "bitmaps": { + "dirty.1": { + "granularity-bytes": 65536, + "type": "dirty", + "file": "t-dirty.1.bitmap.qbm" + }, + "dirty.2": { + "granularity-bytes": 65536, + "type": "dirty", + "file": "t-dirty.2.bitmap.qbm" + }, + "dirty.0": { + "granularity-bytes": 65536, + "type": "dirty", + "file": "t-dirty.0.bitmap.qbm" + } + }, + "image": { + "format": "raw", + "file": "t-data.img.qbm" + }, + "version": 1, + "creator": "QEMU" + } +} +Offset Length Mapped to File + +=== Create a QBM file with raw backing image === +Formatting 'TEST_DIR/t.qbm.base', fmt=IMGFMT size=134217728 +wrote 134217728/134217728 bytes at offset 0 +128 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/t.IMGFMT.base dirty-bitmaps=1 +{ + "QBM": { + "bitmaps": { + "allocation": { + "granularity-bytes": 65536, + "backing": { + "format": "", + "file": "/home/fam/build/last/tests/qemu-iotests/scratch/t.qbm.base" + }, + "type": "allocation", + "file": "t-allocation.bitmap.qbm" + }, + "dirty.0": { + "granularity-bytes": 65536, + "type": "dirty", + "file": "t-dirty.0.bitmap.qbm" + } + }, + "image": { + "format": "raw", + "file": "t-data.img.qbm" + }, + "version": 1, + "creator": "QEMU" + } +} +image: TEST_DIR/t.IMGFMT +file format: IMGFMT +virtual size: 128M (134217728 bytes) +cluster_size: 65536 +backing file: TEST_DIR/t.IMGFMT.base +wrote 131072/131072 bytes at offset 130560 +128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +Offset Length Mapped to File +0 0x10000 0 /home/fam/build/last/tests/qemu-iotests/scratch/t.qbm.base +0x10000 0x30000 0x10000 /home/fam/build/last/tests/qemu-iotests/scratch/t-data.img.qbm +0x40000 0x7fc0000 0x40000 /home/fam/build/last/tests/qemu-iotests/scratch/t.qbm.base +*** done diff --git a/tests/qemu-iotests/common b/tests/qemu-iotests/common index ff84f4b..868a5d1 100644 --- a/tests/qemu-iotests/common +++ b/tests/qemu-iotests/common @@ -148,6 +148,7 @@ check options -vpc test vpc -vhdx test vhdx -vmdk test vmdk + -rbm test qbm -file test file (default) -rbd test rbd -sheepdog test sheepdog @@ -221,6 +222,11 @@ testlist options xpand=false ;; + -qbm) + IMGFMT=qbm + xpand=false + ;; + -vpc) IMGFMT=vpc xpand=false diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group index d6e9219..e220a00 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group @@ -141,4 +141,5 @@ 137 rw auto 138 rw auto quick 139 rw auto quick +140 rw auto quick 142 auto -- 2.4.3