I posted a patch with a stupid mistake last night. Running the right tests would've saved me the embarrassment. Trouble is to run them you first have to know they exist, and then you have to know the right test script incantation. "make check-block" can't do that for you.
I believe we can reasonably expect people patching block stuff to know about "make check-block" in addition to plain "make check", but asking them to know everything tests/qemu-iotests/check can do is a bit much. Here's what it can test, as far as I can tell, judging from tests/qemu-iotests/{common,group}: * Image formats raw, bochs, cow, cloop, parallels, qcow, qcow2, qed, vdi, vmdk, vpc, vhdx * Protocols file, rbd, sheepdog, nbd, ssh, nfs * Test groups aio, auto, backing, blkdbg, img, io, quick, rw, snapshot * Arbitrary cache modes (usual caveats re cache=none on funny file systems apply) * A few miscellaneous test options Current "make check-block" runs tests/qemu-iotests-quick.sh, which tests format qcow2, protocol file, group quick with cache=none. Runs 55 tests and takes about 2 minutes for me on a not particularly fast test box (spinning rust). Should "make check-block" run more tests? Which ones? Should we have a variant of "make check-block" for testing other (format, protocol) combinations? Should we have a variant of "make check-block" that tests everything that's testable without special setup? How can we make advanced iotest features more discoverable for developers not already intimately familiar with it?