qemu-iotests: Use zero-based offsets for IO patterns
authorStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Fri, 4 Feb 2011 12:55:02 +0000 (12:55 +0000)
committerKevin Wolf <kwolf@redhat.com>
Thu, 23 Feb 2012 09:29:46 +0000 (10:29 +0100)
commitdd0c35d69b31cfccaca30842787f0450ab70056c
tree1e0e01e85f5c4e01b973670b701dd6823e5abe68
parent9cdfa1b34e22bc09e80042b1ef3e4a5096f260d5
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>
12 files changed:
tests/qemu-iotests/013.out
tests/qemu-iotests/014.out
tests/qemu-iotests/017.out
tests/qemu-iotests/018.out
tests/qemu-iotests/019.out
tests/qemu-iotests/020.out
tests/qemu-iotests/022.out
tests/qemu-iotests/023.out
tests/qemu-iotests/024
tests/qemu-iotests/028
tests/qemu-iotests/028.out
tests/qemu-iotests/common.pattern