qemu-patch-raspberry4/tests/qemu-iotests
Stefan Hajnoczi dd0c35d69b qemu-iotests: Use zero-based offsets for IO patterns
The io_pattern style functions have the following loop:

  for i in `seq 1 $count`; do
      echo ... $(( start + i * step )) ...
  done

Offsets are 1-based so start=1024, step=512, count=4 yields:
1536, 2048, 2560, 3072

Normally we expect:
1024, 1536, 2048, 2560

Most tests ignore this detail, which means that they perform I/O to a
slightly different range than expected by the test author.

Later on things got less innocent and tests started trying to compensate
for the 1-based indexing.  This included negative start values in test
024 and my own attempt with count-1 in test 028!

The end result is that tests that use io_pattern are hard to reason
about and don't work the way you'd expect.  It's time to clean this mess
up.

This patch switches io_pattern to 0-based offsets.  This requires
adjusting the golden outputs since I/O ranges are now shifted and output
differs.

Verifying these output diffs is easy, however.  Each diff hunk moves one
I/O from beyond the end of the pattern range to the beginning.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2012-02-23 10:29:46 +01:00
..
.gitignore qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
001 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
001.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
002 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
002.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
003 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
003.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
004 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
004.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
005 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
005.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
006 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
006.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
007 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
007.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
008 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
008.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
009 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
009.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
010 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
010.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
011 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
011.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
012 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
012.out qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
013 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
013.out qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
014 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
014.out qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
015 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
015.out qemu-iotests: add test for refcount table growth and snapshots 2012-02-22 16:17:01 +01:00
016 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
016.out qemu-iotests: test I/O after EOF for growable files 2012-02-22 16:17:02 +01:00
017 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
017.out qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
018 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
018.out qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
019 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
019.out qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
020 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
020.out qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
021 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
021.out qemu-iotests: test invalid pattern argument handling in qemu-io 2012-02-22 16:17:02 +01:00
022 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
022.out qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
023 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
023.out qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
024 qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
024.out qemu-iotests: improve rebase test 2012-02-22 16:17:03 +01:00
025 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
025.out qemu-iotests: test bdrv_truncate 2012-02-22 16:17:03 +01:00
026 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
026.out qemu-iotests: update expected results after qemu-img changes 2012-02-22 16:17:03 +01:00
027 qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
027.out qemu-iotests: add sub-cluster allocating write test for sparse image formats 2012-02-22 16:17:03 +01:00
028 qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
028.out qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
check qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
common qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
common.config qemu-iotests: explicitly use bash interpreter 2012-02-22 16:17:03 +01:00
common.filter qemu-iotests: filter IMGFMT correctly in 019 2012-02-23 10:29:46 +01:00
common.pattern qemu-iotests: Use zero-based offsets for IO patterns 2012-02-23 10:29:46 +01:00
common.rc qemu-iotests: add support for rbd and sheepdog protocols 2012-02-23 10:29:46 +01:00
COPYING qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
group qemu-iotests: add read/write from smaller backing image test 2012-02-22 16:17:03 +01:00
Makefile qemu-iotests: Initial import into the public repository. 2012-02-22 16:15:22 +01:00
README qemu-iotests: README: Fix spelling 2012-02-23 10:29:46 +01:00

=== This is the QEMU I/O test suite ===

* Intro

This package contains a simple test suite for the I/O layer of qemu.
It does not require a guest, but only the qemu, qemu-img and qemu-io
binaries.  This does limit it to exercise the low-level I/O path only
but no actual block drivers like ide, scsi or virtio.

* Usage

Just run ./check to run all tests for the raw image format, or ./check
-qcow2 to test the qcow2 image format.  The output of ./check -h explains
additional options to test further image formats or I/O methods.

* Feedback and patches

Please send improvements to the test suite, general feedback or just
reports of failing tests cases to qemu-devel@savannah.nongnu.org.