On 05/29/2017 10:23 AM, Max Reitz wrote: > A user may specify a relative path for accessing qemu, qemu-img, etc. > through environment variables ($QEMU_PROG and friends) or a symlink. > > If a test decides to change its working directory, relative paths will > cease to work, however. Work around this by making all of the paths to > programs that should undergo testing absolute. Besides "realpath", we > also have to use "which" to support programs in $PATH.
'type -p' is more portable than 'which' - especially since our scripts are bash scripts, and type is a bash builtin while which is not. > > As a side effect, this fixes specifying these programs as symlinks for > out-of-tree builds: Before, you would have to create two symlinks, one > in the build and one in the source tree (the first one for common.config > to find, the second one for the iotest to use). Now it is sufficient to > create one in the build tree because common.config will resolve it. > > Reported-by: Kevin Wolf <kw...@redhat.com> > Signed-off-by: Max Reitz <mre...@redhat.com> > --- > tests/qemu-iotests/common.config | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/tests/qemu-iotests/common.config > b/tests/qemu-iotests/common.config > index d1b45f5..08aac56 100644 > --- a/tests/qemu-iotests/common.config > +++ b/tests/qemu-iotests/common.config > @@ -103,6 +103,12 @@ if [ -z "$QEMU_VXHS_PROG" ]; then > export QEMU_VXHS_PROG="`set_prog_path qnio_server`" > fi > > +export QEMU_PROG=$(realpath "$(which "$QEMU_PROG")") > +export QEMU_IMG_PROG=$(realpath "$(which "$QEMU_IMG_PROG")") > +export QEMU_IO_PROG=$(realpath "$(which "$QEMU_IO_PROG")") > +export QEMU_NBD_PROG=$(realpath "$(which "$QEMU_NBD_PROG")") > +export QEMU_VXHS_PROG=$(realpath "$(which "$QEMU_VXHS_PROG")") If you switch all of these to $(realpath -- "$(type -p "$QEMU_...")"), you can add: Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature