mirror of https://gitee.com/openkylin/qemu.git
iotests/qcow2.py: Split feature fields into bits
Print the feature fields as a set of bits so that filtering is easier. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Message-id: 20191107163708.833192-4-mreitz@redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
1aa6630e7b
commit
0485e6ee4c
|
@ -18,9 +18,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 72
|
header_length 72
|
||||||
|
|
||||||
|
@ -46,9 +46,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 72
|
header_length 72
|
||||||
|
|
||||||
|
@ -74,9 +74,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 72
|
header_length 72
|
||||||
|
|
||||||
|
@ -109,9 +109,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
@ -142,9 +142,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
@ -175,9 +175,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
|
|
@ -16,9 +16,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x8000000000000000
|
incompatible_features [63]
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
@ -50,9 +50,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x8000000000000000
|
autoclear_features [63]
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
@ -78,9 +78,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ QA output created by 039
|
||||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
|
|
||||||
== Creating a dirty image file ==
|
== Creating a dirty image file ==
|
||||||
|
@ -12,7 +12,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
||||||
incompatible_features 0x1
|
incompatible_features [0]
|
||||||
ERROR cluster 5 refcount=0 reference=1
|
ERROR cluster 5 refcount=0 reference=1
|
||||||
ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
|
ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ Data may be corrupted, or further writes to the image may corrupt it.
|
||||||
== Read-only access must still work ==
|
== Read-only access must still work ==
|
||||||
read 512/512 bytes at offset 0
|
read 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
incompatible_features 0x1
|
incompatible_features [0]
|
||||||
|
|
||||||
== Repairing the image file must succeed ==
|
== Repairing the image file must succeed ==
|
||||||
ERROR cluster 5 refcount=0 reference=1
|
ERROR cluster 5 refcount=0 reference=1
|
||||||
|
@ -36,7 +36,7 @@ The following inconsistencies were found and repaired:
|
||||||
|
|
||||||
Double checking the fixed image now...
|
Double checking the fixed image now...
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
|
|
||||||
== Data should still be accessible after repair ==
|
== Data should still be accessible after repair ==
|
||||||
read 512/512 bytes at offset 0
|
read 512/512 bytes at offset 0
|
||||||
|
@ -47,21 +47,21 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
||||||
incompatible_features 0x1
|
incompatible_features [0]
|
||||||
ERROR cluster 5 refcount=0 reference=1
|
ERROR cluster 5 refcount=0 reference=1
|
||||||
Rebuilding refcount structure
|
Rebuilding refcount structure
|
||||||
Repairing cluster 1 refcount=1 reference=0
|
Repairing cluster 1 refcount=1 reference=0
|
||||||
Repairing cluster 2 refcount=1 reference=0
|
Repairing cluster 2 refcount=1 reference=0
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
|
|
||||||
== Creating an image file with lazy_refcounts=off ==
|
== Creating an image file with lazy_refcounts=off ==
|
||||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
|
|
||||||
== Committing to a backing file with lazy_refcounts=on ==
|
== Committing to a backing file with lazy_refcounts=on ==
|
||||||
|
@ -70,8 +70,8 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 backing_file=TEST_DIR/
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
Image committed.
|
Image committed.
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
||||||
incompatible_features 0x1
|
incompatible_features [0]
|
||||||
ERROR cluster 5 refcount=0 reference=1
|
ERROR cluster 5 refcount=0 reference=1
|
||||||
ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
|
ERROR OFLAG_COPIED data cluster: l2_entry=8000000000050000 refcount=0
|
||||||
|
|
||||||
|
@ -90,6 +90,6 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
*** done
|
*** done
|
||||||
|
|
|
@ -7,10 +7,10 @@ ERROR cluster 3 refcount=1 reference=3
|
||||||
|
|
||||||
1 errors were found on the image.
|
1 errors were found on the image.
|
||||||
Data may be corrupted, or further writes to the image may corrupt it.
|
Data may be corrupted, or further writes to the image may corrupt it.
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with active L1 table); further corruption events will be suppressed
|
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with active L1 table); further corruption events will be suppressed
|
||||||
write failed: Input/output error
|
write failed: Input/output error
|
||||||
incompatible_features 0x2
|
incompatible_features [1]
|
||||||
image: TEST_DIR/t.IMGFMT
|
image: TEST_DIR/t.IMGFMT
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 64 MiB (67108864 bytes)
|
virtual size: 64 MiB (67108864 bytes)
|
||||||
|
@ -33,10 +33,10 @@ ERROR cluster 2 refcount=1 reference=2
|
||||||
|
|
||||||
2 errors were found on the image.
|
2 errors were found on the image.
|
||||||
Data may be corrupted, or further writes to the image may corrupt it.
|
Data may be corrupted, or further writes to the image may corrupt it.
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with refcount block); further corruption events will be suppressed
|
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with refcount block); further corruption events will be suppressed
|
||||||
write failed: Input/output error
|
write failed: Input/output error
|
||||||
incompatible_features 0x2
|
incompatible_features [1]
|
||||||
ERROR refcount block 0 refcount=2
|
ERROR refcount block 0 refcount=2
|
||||||
ERROR cluster 2 refcount=1 reference=2
|
ERROR cluster 2 refcount=1 reference=2
|
||||||
Rebuilding refcount structure
|
Rebuilding refcount structure
|
||||||
|
@ -49,10 +49,10 @@ The following inconsistencies were found and repaired:
|
||||||
|
|
||||||
Double checking the fixed image now...
|
Double checking the fixed image now...
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
|
|
||||||
=== Testing cluster data reference into inactive L2 table ===
|
=== Testing cluster data reference into inactive L2 table ===
|
||||||
|
|
||||||
|
@ -69,10 +69,10 @@ Data may be corrupted, or further writes to the image may corrupt it.
|
||||||
|
|
||||||
1 leaked clusters were found on the image.
|
1 leaked clusters were found on the image.
|
||||||
This means waste of disk space, but no harm to data.
|
This means waste of disk space, but no harm to data.
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with inactive L2 table); further corruption events will be suppressed
|
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with inactive L2 table); further corruption events will be suppressed
|
||||||
write failed: Input/output error
|
write failed: Input/output error
|
||||||
incompatible_features 0x2
|
incompatible_features [1]
|
||||||
ERROR cluster 4 refcount=1 reference=2
|
ERROR cluster 4 refcount=1 reference=2
|
||||||
Leaked cluster 9 refcount=1 reference=0
|
Leaked cluster 9 refcount=1 reference=0
|
||||||
Repairing cluster 4 refcount=1 reference=2
|
Repairing cluster 4 refcount=1 reference=2
|
||||||
|
@ -85,10 +85,10 @@ The following inconsistencies were found and repaired:
|
||||||
|
|
||||||
Double checking the fixed image now...
|
Double checking the fixed image now...
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
read 512/512 bytes at offset 0
|
read 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
No errors were found on the image.
|
No errors were found on the image.
|
||||||
|
|
|
@ -18,9 +18,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x1
|
compatible_features [0]
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
@ -42,9 +42,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 72
|
header_length 72
|
||||||
|
|
||||||
|
@ -76,9 +76,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x1
|
compatible_features [0]
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
@ -100,9 +100,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 72
|
header_length 72
|
||||||
|
|
||||||
|
@ -132,9 +132,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x1
|
incompatible_features [0]
|
||||||
compatible_features 0x1
|
compatible_features [0]
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
@ -161,9 +161,9 @@ refcount_table_offset 0x80000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 72
|
header_length 72
|
||||||
|
|
||||||
|
@ -187,9 +187,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x40000000000
|
compatible_features [42]
|
||||||
autoclear_features 0x40000000000
|
autoclear_features [42]
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
@ -211,9 +211,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 72
|
header_length 72
|
||||||
|
|
||||||
|
@ -237,9 +237,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 72
|
header_length 72
|
||||||
|
|
||||||
|
@ -256,9 +256,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x1
|
compatible_features [0]
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
@ -290,9 +290,9 @@ refcount_table_offset 0x10000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x1
|
incompatible_features [0]
|
||||||
compatible_features 0x1
|
compatible_features [0]
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
@ -319,9 +319,9 @@ refcount_table_offset 0x80000
|
||||||
refcount_table_clusters 1
|
refcount_table_clusters 1
|
||||||
nb_snapshots 0
|
nb_snapshots 0
|
||||||
snapshot_offset 0x0
|
snapshot_offset 0x0
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
compatible_features 0x0
|
compatible_features []
|
||||||
autoclear_features 0x0
|
autoclear_features []
|
||||||
refcount_order 4
|
refcount_order 4
|
||||||
header_length 104
|
header_length 104
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ qemu-io: Unsupported value 'blubb' for qcow2 option 'overlap-check'. Allowed are
|
||||||
wrote 512/512 bytes at offset 0
|
wrote 512/512 bytes at offset 0
|
||||||
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
./common.rc: Killed ( VALGRIND_QEMU="${VALGRIND_QEMU_IO}" _qemu_proc_exec "${VALGRIND_LOGFILE}" "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@" )
|
||||||
incompatible_features 0x0
|
incompatible_features []
|
||||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
||||||
wrote 65536/65536 bytes at offset 0
|
wrote 65536/65536 bytes at offset 0
|
||||||
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||||
|
|
|
@ -42,9 +42,9 @@ class QcowHeader:
|
||||||
[ uint64_t, '%#x', 'snapshot_offset' ],
|
[ uint64_t, '%#x', 'snapshot_offset' ],
|
||||||
|
|
||||||
# Version 3 header fields
|
# Version 3 header fields
|
||||||
[ uint64_t, '%#x', 'incompatible_features' ],
|
[ uint64_t, 'mask', 'incompatible_features' ],
|
||||||
[ uint64_t, '%#x', 'compatible_features' ],
|
[ uint64_t, 'mask', 'compatible_features' ],
|
||||||
[ uint64_t, '%#x', 'autoclear_features' ],
|
[ uint64_t, 'mask', 'autoclear_features' ],
|
||||||
[ uint32_t, '%d', 'refcount_order' ],
|
[ uint32_t, '%d', 'refcount_order' ],
|
||||||
[ uint32_t, '%d', 'header_length' ],
|
[ uint32_t, '%d', 'header_length' ],
|
||||||
];
|
];
|
||||||
|
@ -130,7 +130,17 @@ def update(self, fd):
|
||||||
|
|
||||||
def dump(self):
|
def dump(self):
|
||||||
for f in QcowHeader.fields:
|
for f in QcowHeader.fields:
|
||||||
print("%-25s" % f[2], f[1] % self.__dict__[f[2]])
|
value = self.__dict__[f[2]]
|
||||||
|
if f[1] == 'mask':
|
||||||
|
bits = []
|
||||||
|
for bit in range(64):
|
||||||
|
if value & (1 << bit):
|
||||||
|
bits.append(bit)
|
||||||
|
value_str = str(bits)
|
||||||
|
else:
|
||||||
|
value_str = f[1] % value
|
||||||
|
|
||||||
|
print("%-25s" % f[2], value_str)
|
||||||
print("")
|
print("")
|
||||||
|
|
||||||
def dump_extensions(self):
|
def dump_extensions(self):
|
||||||
|
|
Loading…
Reference in New Issue