mirror of https://gitee.com/openkylin/qemu.git
qemu-iotests: cleanup and fix search for programs
Instead of ./check failing when a binary is missing, we try each test case now and each one fails with tons of test case diffs. Also, all the variables were initialized by "check" prior to "common" being sourced, and then (uselessly) checked for emptiness again in "check". Centralize the search for programs in "common" (which will soon be one with "check"), including the "realpath" invocation which can be done just once in "check" rather than in the tests. For qnio_server, move the detection to "common", simplifying set_prog_path to stop handling the unused second argument, and embedding the "realpath" pass. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
48259488aa
commit
cceaf1db6f
|
@ -60,47 +60,6 @@ fi
|
|||
|
||||
build_root="$build_iotests/../.."
|
||||
|
||||
if [ -x "$build_iotests/socket_scm_helper" ]
|
||||
then
|
||||
export SOCKET_SCM_HELPER="$build_iotests/socket_scm_helper"
|
||||
fi
|
||||
|
||||
if [[ -z "$QEMU_PROG" && ! -x './qemu' ]]
|
||||
then
|
||||
arch=$(uname -m 2> /dev/null)
|
||||
|
||||
if [[ -n $arch && -x "$build_root/$arch-softmmu/qemu-system-$arch" ]]
|
||||
then
|
||||
export QEMU_PROG="$build_root/$arch-softmmu/qemu-system-$arch"
|
||||
else
|
||||
pushd "$build_root" > /dev/null
|
||||
for binary in *-softmmu/qemu-system-*
|
||||
do
|
||||
if [ -x "$binary" ]
|
||||
then
|
||||
export QEMU_PROG="$build_root/$binary"
|
||||
break
|
||||
fi
|
||||
done
|
||||
popd > /dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z $QEMU_IMG_PROG && -x "$build_root/qemu-img" && ! -x './qemu-img' ]]
|
||||
then
|
||||
export QEMU_IMG_PROG="$build_root/qemu-img"
|
||||
fi
|
||||
|
||||
if [[ -z $QEMU_IO_PROG && -x "$build_root/qemu-io" && ! -x './qemu-io' ]]
|
||||
then
|
||||
export QEMU_IO_PROG="$build_root/qemu-io"
|
||||
fi
|
||||
|
||||
if [[ -z $QEMU_NBD_PROG && -x "$build_root/qemu-nbd" && ! -x './qemu-nbd' ]]
|
||||
then
|
||||
export QEMU_NBD_PROG="$build_root/qemu-nbd"
|
||||
fi
|
||||
|
||||
# we need common.env
|
||||
if ! . "$build_iotests/common.env"
|
||||
then
|
||||
|
|
|
@ -37,6 +37,17 @@ _full_platform_details()
|
|||
echo "$os/$platform $host $kernel"
|
||||
}
|
||||
|
||||
# $1 = prog to look for
|
||||
set_prog_path()
|
||||
{
|
||||
p=`command -v $1 2> /dev/null`
|
||||
if [ -n "$p" -a -x "$p" ]; then
|
||||
realpath -- "$(type -p "$p")"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
diff="diff -u"
|
||||
verbose=false
|
||||
debug=false
|
||||
|
@ -450,10 +461,66 @@ fi
|
|||
list=`sort $tmp.list`
|
||||
rm -f $tmp.list $tmp.tmp $tmp.sed
|
||||
|
||||
[ "$QEMU" = "" ] && _fatal "qemu not found"
|
||||
[ "$QEMU_IMG" = "" ] && _fatal "qemu-img not found"
|
||||
[ "$QEMU_IO" = "" ] && _fatal "qemu-io not found"
|
||||
|
||||
if [ "$IMGPROTO" = "nbd" ] ; then
|
||||
[ "$QEMU_NBD" = "" ] && _fatal "qemu-nbd not found"
|
||||
if [ -z "$QEMU_PROG" ]
|
||||
then
|
||||
if [ -x "$build_iotests/qemu" ]; then
|
||||
export QEMU_PROG="$build_iotests/qemu"
|
||||
elif [ -x "$build_root/$arch-softmmu/qemu-system-$arch" ]; then
|
||||
export QEMU_PROG="$build_root/$arch-softmmu/qemu-system-$arch"
|
||||
else
|
||||
pushd "$build_root" > /dev/null
|
||||
for binary in *-softmmu/qemu-system-*
|
||||
do
|
||||
if [ -x "$binary" ]
|
||||
then
|
||||
export QEMU_PROG="$build_root/$binary"
|
||||
break
|
||||
fi
|
||||
done
|
||||
popd > /dev/null
|
||||
[ "$QEMU_PROG" = "" ] && _init_error "qemu not found"
|
||||
fi
|
||||
fi
|
||||
export QEMU_PROG=$(realpath -- "$(type -p "$QEMU_PROG")")
|
||||
|
||||
if [ -z "$QEMU_IMG_PROG" ]; then
|
||||
if [ -x "$build_iotests/qemu-img" ]; then
|
||||
export QEMU_IMG_PROG="$build_iotests/qemu-img"
|
||||
elif [ -x "$build_root/qemu-img" ]; then
|
||||
export QEMU_IMG_PROG="$build_root/qemu-img"
|
||||
else
|
||||
_init_error "qemu-img not found"
|
||||
fi
|
||||
fi
|
||||
export QEMU_IMG_PROG=$(realpath -- "$(type -p "$QEMU_IMG_PROG")")
|
||||
|
||||
if [ -z "$QEMU_IO_PROG" ]; then
|
||||
if [ -x "$build_iotests/qemu-io" ]; then
|
||||
export QEMU_IO_PROG="$build_iotests/qemu-io"
|
||||
elif [ -x "$build_root/qemu-io" ]; then
|
||||
export QEMU_IO_PROG="$build_root/qemu-io"
|
||||
else
|
||||
_init_error "qemu-io not found"
|
||||
fi
|
||||
fi
|
||||
export QEMU_IO_PROG=$(realpath -- "$(type -p "$QEMU_IO_PROG")")
|
||||
|
||||
if [ -z $QEMU_NBD_PROG ]; then
|
||||
if [ -x "$build_iotests/qemu-nbd" ]; then
|
||||
export QEMU_NBD_PROG="$build_iotests/qemu-nbd"
|
||||
elif [ -x "$build_root/qemu-nbd" ]; then
|
||||
export QEMU_NBD_PROG="$build_root/qemu-nbd"
|
||||
else
|
||||
_init_error "qemu-nbd not found"
|
||||
fi
|
||||
fi
|
||||
export QEMU_NBD_PROG=$(realpath -- "$(type -p "$QEMU_NBD_PROG")")
|
||||
|
||||
if [ -z "$QEMU_VXHS_PROG" ]; then
|
||||
export QEMU_VXHS_PROG="`set_prog_path qnio_server`"
|
||||
fi
|
||||
|
||||
if [ -x "$build_iotests/socket_scm_helper" ]
|
||||
then
|
||||
export SOCKET_SCM_HELPER="$build_iotests/socket_scm_helper"
|
||||
fi
|
||||
|
|
|
@ -22,6 +22,7 @@ export LANG=C
|
|||
PATH=".:$PATH"
|
||||
|
||||
HOSTOS=`uname -s`
|
||||
arch=`uname -m`
|
||||
|
||||
export PWD=`pwd`
|
||||
|
||||
|
@ -30,28 +31,6 @@ export _QEMU_HANDLE=0
|
|||
# make sure we have a standard umask
|
||||
umask 022
|
||||
|
||||
# $1 = prog to look for, $2* = default pathnames if not found in $PATH
|
||||
set_prog_path()
|
||||
{
|
||||
p=`command -v $1 2> /dev/null`
|
||||
if [ -n "$p" -a -x "$p" ]; then
|
||||
echo $p
|
||||
return 0
|
||||
fi
|
||||
p=$1
|
||||
|
||||
shift
|
||||
for f; do
|
||||
if [ -x $f ]; then
|
||||
echo $f
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
return 1
|
||||
}
|
||||
|
||||
_optstr_add()
|
||||
{
|
||||
if [ -n "$1" ]; then
|
||||
|
@ -61,44 +40,6 @@ _optstr_add()
|
|||
fi
|
||||
}
|
||||
|
||||
_fatal()
|
||||
{
|
||||
echo "$*"
|
||||
status=1
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ -z "$QEMU_PROG" ]; then
|
||||
export QEMU_PROG="`set_prog_path qemu`"
|
||||
fi
|
||||
|
||||
if [ -z "$QEMU_IMG_PROG" ]; then
|
||||
export QEMU_IMG_PROG="`set_prog_path qemu-img`"
|
||||
fi
|
||||
|
||||
if [ -z "$QEMU_IO_PROG" ]; then
|
||||
export QEMU_IO_PROG="`set_prog_path qemu-io`"
|
||||
fi
|
||||
|
||||
if [ -z "$QEMU_NBD_PROG" ]; then
|
||||
export QEMU_NBD_PROG="`set_prog_path qemu-nbd`"
|
||||
fi
|
||||
|
||||
if [ -z "$QEMU_VXHS_PROG" ]; then
|
||||
export QEMU_VXHS_PROG="`set_prog_path qnio_server`"
|
||||
fi
|
||||
|
||||
export QEMU_PROG=$(realpath -- "$(type -p "$QEMU_PROG")")
|
||||
export QEMU_IMG_PROG=$(realpath -- "$(type -p "$QEMU_IMG_PROG")")
|
||||
export QEMU_IO_PROG=$(realpath -- "$(type -p "$QEMU_IO_PROG")")
|
||||
export QEMU_NBD_PROG=$(realpath -- "$(type -p "$QEMU_NBD_PROG")")
|
||||
|
||||
# This program is not built as part of qemu but (possibly) provided by the
|
||||
# system, so it may not be present at all
|
||||
if [ -n "$QEMU_VXHS_PROG" ]; then
|
||||
export QEMU_VXHS_PROG=$(realpath -- "$(type -p "$QEMU_VXHS_PROG")")
|
||||
fi
|
||||
|
||||
_qemu_wrapper()
|
||||
{
|
||||
(
|
||||
|
|
Loading…
Reference in New Issue