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