[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 38/39] qemu-iotests: add qcow2.py set-feature-bit co
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH 38/39] qemu-iotests: add qcow2.py set-feature-bit command |
Date: |
Fri, 15 Jun 2012 15:33:38 +0200 |
From: Stefan Hajnoczi <address@hidden>
This new command sets feature bits in the image file header:
qcow2.py set-feature-bit incompatible|compatible|autoclear <bit>
The bit number must be in the range [0, 64).
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
tests/qemu-iotests/qcow2.py | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/tests/qemu-iotests/qcow2.py b/tests/qemu-iotests/qcow2.py
index e27196a..97f3770 100755
--- a/tests/qemu-iotests/qcow2.py
+++ b/tests/qemu-iotests/qcow2.py
@@ -181,10 +181,33 @@ def cmd_del_header_ext(fd, magic):
h.update(fd)
+def cmd_set_feature_bit(fd, group, bit):
+ try:
+ bit = int(bit, 0)
+ if bit < 0 or bit >= 64:
+ raise ValueError
+ except:
+ print "'%s' is not a valid bit number in range [0, 64)" % bit
+ sys.exit(1)
+
+ h = QcowHeader(fd)
+ if group == 'incompatible':
+ h.incompatible_features |= 1 << bit
+ elif group == 'compatible':
+ h.compatible_features |= 1 << bit
+ elif group == 'autoclear':
+ h.autoclear_features |= 1 << bit
+ else:
+ print "'%s' is not a valid group, try 'incompatible', 'compatible', or
'autoclear'" % group
+ sys.exit(1)
+
+ h.update(fd)
+
cmds = [
[ 'dump-header', cmd_dump_header, 0, 'Dump image header and header
extensions' ],
[ 'add-header-ext', cmd_add_header_ext, 2, 'Add a header extension' ],
[ 'del-header-ext', cmd_del_header_ext, 1, 'Delete a header extension' ],
+ [ 'set-feature-bit', cmd_set_feature_bit, 2, 'Set a feature bit'],
]
def main(filename, cmd, args):
--
1.7.6.5
- [Qemu-devel] [PATCH 16/39] block: New bdrv_get_flags(), (continued)
- [Qemu-devel] [PATCH 16/39] block: New bdrv_get_flags(), Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 15/39] Prevent disk data loss when closing qemu, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 21/39] savevm: flush after saving vm state, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 18/39] qemu-iotests: fill streaming test image with data, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 22/39] block: copy enable_write_cache in bdrv_append, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 23/39] block: add bdrv_set_enable_write_cache, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 19/39] qemu-iotests: start vms in qtest mode, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 25/39] ide: support enable/disable write cache, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 20/39] block: flush in writethrough mode after writes, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 36/39] fdc: fix implied seek while there is no media in drive, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 38/39] qemu-iotests: add qcow2.py set-feature-bit command,
Kevin Wolf <=
- [Qemu-devel] [PATCH 39/39] qemu-iotests: add 036 autoclear feature bit test, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 30/39] qemu-iotests: COW with many AIO requests on the same cluster, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 31/39] qemu-img: document qed format on qemu-img man page, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 35/39] qcow2: fix autoclear image header update, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 37/39] fdc-test: introduced qtest read_without_media, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 28/39] qcow2: Fix avail_sectors in cluster allocation code, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 24/39] block: always open drivers in writeback mode, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 33/39] xen: Don't change -drive if=xen device name during machine init, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 29/39] qemu-iotests: Some backing file COW tests, Kevin Wolf, 2012/06/15
- [Qemu-devel] [PATCH 26/39] qcow2: always operate caches in writeback mode, Kevin Wolf, 2012/06/15