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:
		@@ -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 @@ class QcowHeader:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    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):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user