blob: a611e6adf970c2a2ace9122cbb69d4ad271a3ca0 [file] [log] [blame]
#!/bin/sh
#
# Common routines for docker test scripts.
#
# Copyright (c) 2016 Red Hat Inc.
#
# Authors:
# Fam Zheng <famz@redhat.com>
#
# This work is licensed under the terms of the GNU GPL, version 2
# or (at your option) any later version. See the COPYING file in
# the top-level directory.
# This might be set by ENV of a docker container... it is always
# overridden by TARGET_LIST if the user sets it. We special case
# "none" to allow for other options like --disable-tcg to restrict the
# builds we eventually do.
if test "$DEF_TARGET_LIST" = "none"; then
DEF_TARGET_LIST=""
else
DEF_TARGET_LIST=${DEF_TARGET_LIST:-"x86_64-softmmu,aarch64-softmmu"}
fi
requires_binary()
{
found=0
for c in $@; do
for d in /bin /usr/bin /usr/local/bin
do
if test -f "$d/$c"
then
found=1
fi
done
done
if test "$found" != "1"
then
echo "Prerequisite '$c' not present, skip"
exit 0
fi
}
configure_qemu()
{
config_opts="--enable-werror \
${TARGET_LIST:+--target-list=${TARGET_LIST}} \
--prefix=$INSTALL_DIR \
$QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \
$@"
echo "Configure options:"
echo $config_opts
$QEMU_SRC/configure $config_opts || \
{ cat config.log && test_fail "Failed to run 'configure'"; }
}
build_qemu()
{
configure_qemu $@
make $MAKEFLAGS
}
check_qemu()
{
# default to make check unless the caller specifies
if [ $# = 0 ]; then
INVOCATION="${TEST_COMMAND:-make $MAKEFLAGS check}"
else
INVOCATION="make $MAKEFLAGS $@"
fi
$INVOCATION
}
test_fail()
{
echo "$@"
exit 1
}
prep_fail()
{
echo "$@"
exit 2
}
install_qemu()
{
make install $MAKEFLAGS DESTDIR=$PWD/=destdir
ret=$?
rm -rf $PWD/=destdir
return $ret
}