On 2017-05-29 17:42, Eric Blake wrote: > 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:
I'd love to, but this is what type -p outputs for me: $ type -p qemu-img qemu-img is /usr/bin/qemu-img So I would need to parse the result (and it depends on the locale). If that is indeed so, I'd rather stay with which, to be honest... Max
signature.asc
Description: OpenPGP digital signature