| #!/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 | |
| # overriden 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 | |
| } |