1#!/bin/sh 2# 3# Common routines for docker test scripts. 4# 5# Copyright (c) 2016 Red Hat Inc. 6# 7# Authors: 8# Fam Zheng <famz@redhat.com> 9# 10# This work is licensed under the terms of the GNU GPL, version 2 11# or (at your option) any later version. See the COPYING file in 12# the top-level directory. 13 14# This might be set by ENV of a docker container... it is always 15# overriden by TARGET_LIST if the user sets it. 16DEF_TARGET_LIST=${DEF_TARGET_LIST:-"x86_64-softmmu,aarch64-softmmu"} 17 18requires() 19{ 20 for c in $@; do 21 if ! echo "$FEATURES" | grep -wq -e "$c"; then 22 echo "Prerequisite '$c' not present, skip" 23 exit 0 24 fi 25 done 26} 27 28configure_qemu() 29{ 30 config_opts="--enable-werror \ 31 ${TARGET_LIST:+--target-list=${TARGET_LIST}} \ 32 --prefix=$INSTALL_DIR \ 33 $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \ 34 $@" 35 echo "Configure options:" 36 echo $config_opts 37 $QEMU_SRC/configure $config_opts || \ 38 { cat config.log && test_fail "Failed to run 'configure'"; } 39} 40 41build_qemu() 42{ 43 configure_qemu $@ 44 make $MAKEFLAGS 45} 46 47check_qemu() 48{ 49 # default to make check unless the caller specifies 50 if test -z "$@"; then 51 INVOCATION="check" 52 else 53 INVOCATION="$@" 54 fi 55 56 if command -v gtester > /dev/null 2>&1 && \ 57 gtester --version > /dev/null 2>&1; then 58 make $MAKEFLAGS $INVOCATION 59 else 60 echo "No working gtester, skipping make $INVOCATION" 61 fi 62} 63 64test_fail() 65{ 66 echo "$@" 67 exit 1 68} 69 70prep_fail() 71{ 72 echo "$@" 73 exit 2 74} 75 76install_qemu() 77{ 78 make install $MAKEFLAGS DESTDIR=$PWD/=destdir 79 ret=$? 80 rm -rf $PWD/=destdir 81 return $ret 82} 83