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 make $MAKEFLAGS $INVOCATION 57} 58 59test_fail() 60{ 61 echo "$@" 62 exit 1 63} 64 65prep_fail() 66{ 67 echo "$@" 68 exit 2 69} 70 71install_qemu() 72{ 73 make install $MAKEFLAGS DESTDIR=$PWD/=destdir 74 ret=$? 75 rm -rf $PWD/=destdir 76 return $ret 77} 78