On Thu, Jul 26, 2012 at 2:28 PM, Kevin Wolf <kw...@redhat.com> wrote: > Am 25.07.2012 14:21, schrieb Stefan Hajnoczi: >> This tests establishes the basic post-conditions of the qcow2 lazy >> refcounts features: >> >> 1. If the image was closed normally, it is marked clean. >> >> 2. If an allocating write was performed and the image was not close >> normally, then it is marked dirty. >> >> a. Written data can be read back successfully. >> b. The image file can be repaired and will be marked clean again. >> >> Signed-off-by: Stefan Hajnoczi <stefa...@linux.vnet.ibm.com> > > I think an important case that is missing here is opening a dirty image > rw without having run qemu-img check -r first.
I have added that test case. >> +== Read-only access must still work == >> +read 512/512 bytes at offset 0 >> +512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) >> +incompatible_features 0x1 >> + >> +== Repairing the image file must succeed == >> +ERROR OFLAG_COPIED: offset=8000000000050000 refcount=0 >> +Repairing cluster 5 refcount=0 reference=1 >> +No errors were found on the image. >> +incompatible_features 0x0 > > I wonder what happened to the "The following inconsistencies were found > and repaired" message. Most likely not a problem with qemu-iotests, > though, but something unexpected in qemu-img. It's because opening a qcow2 image read/write when the dirty flag is set causes a repair. This accounts for the "Repairing cluster 5 ..." message. Then qemu-img check -r all calls bdrv_check() on an already repaired image file and we get the "No errors were found on the image". Stefan