qemu-iotests: add 036 autoclear feature bit test

This new test validates the autoclear feature bit behavior.  When QEMU
opens a qcow2v3 image file with an unknown autoclear feature bit the bit
should be cleared in the image file header.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2012-06-14 13:58:18 +01:00 committed by Kevin Wolf
parent 1b2eff62fc
commit d551cd50a4
3 changed files with 121 additions and 0 deletions

68
tests/qemu-iotests/036 Executable file
View File

@ -0,0 +1,68 @@
#!/bin/bash
#
# Test that qcow2 unknown autoclear feature bits are cleared
#
# Copyright (C) 2011 Red Hat, Inc.
# Copyright IBM, Corp. 2010
#
# Based on test 031.
#
# 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@linux.vnet.ibm.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
# This tests qcow2-specific low-level functionality
_supported_fmt qcow2
_supported_proto generic
_supported_os Linux
# Only qcow2v3 and later supports feature bits
IMGOPTS="compat=1.1"
echo === Create image with unknown autoclear feature bit ===
echo
_make_test_img 64M
./qcow2.py $TEST_IMG set-feature-bit autoclear 63
./qcow2.py $TEST_IMG dump-header
echo
echo === Repair image ===
echo
$QEMU_IMG check -r all $TEST_IMG
./qcow2.py $TEST_IMG dump-header
# success, all done
echo "*** done"
rm -f $seq.full
status=0

View File

@ -0,0 +1,52 @@
QA output created by 036
=== Create image with unknown autoclear feature bit ===
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
magic 0x514649fb
version 3
backing_file_offset 0x0
backing_file_size 0x0
cluster_bits 16
size 67108864
crypt_method 0
l1_size 1
l1_table_offset 0x30000
refcount_table_offset 0x10000
refcount_table_clusters 1
nb_snapshots 0
snapshot_offset 0x0
incompatible_features 0x0
compatible_features 0x0
autoclear_features 0x8000000000000000
refcount_order 4
header_length 104
=== Repair image ===
No errors were found on the image.
magic 0x514649fb
version 3
backing_file_offset 0x0
backing_file_size 0x0
cluster_bits 16
size 67108864
crypt_method 0
l1_size 1
l1_table_offset 0x30000
refcount_table_offset 0x10000
refcount_table_clusters 1
nb_snapshots 0
snapshot_offset 0x0
incompatible_features 0x0
compatible_features 0x0
autoclear_features 0x0
refcount_order 4
header_length 104
Header extension:
magic 0x6803f857
length 0
data ''
*** done

View File

@ -42,5 +42,6 @@
033 rw auto 033 rw auto
034 rw auto backing 034 rw auto backing
035 rw auto quick 035 rw auto quick
036 rw auto quick
037 rw auto backing 037 rw auto backing
038 rw auto backing 038 rw auto backing