]> git.proxmox.com Git - mirror_qemu.git/commit - tests/qemu-iotests/143.out
iotests: Fix _send_qemu_cmd with bash 5.1
authorMax Reitz <mreitz@redhat.com>
Thu, 17 Dec 2020 15:38:03 +0000 (16:38 +0100)
committerMax Reitz <mreitz@redhat.com>
Fri, 18 Dec 2020 11:47:38 +0000 (12:47 +0100)
commit0e72078128229bf9efb542e396ab44bf91b91340
tree297f8b8b943c389a1986f94ea5255ab47aa6e924
parent0c8fbfb91536cd1505a2af88912e8e854d29fab0
iotests: Fix _send_qemu_cmd with bash 5.1

With bash 5.1, the output of the following script changes:

  a=("double  space")
  a=${a[@]:0:1}
  echo "$a"

from "double space" to "double  space", i.e. all white space is
preserved as-is.  This is probably what we actually want here (judging
from the "...to accommodate pathnames with spaces" comment), but before
5.1, we would have to quote the ${} slice to get the same behavior.

In any case, without quoting, the reference output of many iotests is
different between bash 5.1 and pre-5.1, which is not very good.  The
output of 5.1 is what we want, so whatever we do to get pre-5.1 to the
same result, it means we have to fix the reference output of basically
all tests that invoke _send_qemu_cmd (except the ones that only use
single spaces in the commands they invoke).

Instead of quoting the ${} slice (cmd="${$@: 1:...}"), we can also just
not use array slicing and replace the whole thing with a simple "cmd=$1;
shift", which works because all callers quote the whole $cmd argument
anyway.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20201217153803.101231-3-mreitz@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
24 files changed:
tests/qemu-iotests/085.out
tests/qemu-iotests/094.out
tests/qemu-iotests/095.out
tests/qemu-iotests/109.out
tests/qemu-iotests/117.out
tests/qemu-iotests/127.out
tests/qemu-iotests/140.out
tests/qemu-iotests/141.out
tests/qemu-iotests/143.out
tests/qemu-iotests/144.out
tests/qemu-iotests/153.out
tests/qemu-iotests/156.out
tests/qemu-iotests/161.out
tests/qemu-iotests/173.out
tests/qemu-iotests/182.out
tests/qemu-iotests/183.out
tests/qemu-iotests/185.out
tests/qemu-iotests/191.out
tests/qemu-iotests/223.out
tests/qemu-iotests/229.out
tests/qemu-iotests/249.out
tests/qemu-iotests/308.out
tests/qemu-iotests/312.out
tests/qemu-iotests/common.qemu