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. We special case 16# "none" to allow for other options like --disable-tcg to restrict the 17# builds we eventually do. 18if test "$DEF_TARGET_LIST" = "none"; then 19 DEF_TARGET_LIST="" 20else 21 DEF_TARGET_LIST=${DEF_TARGET_LIST:-"x86_64-softmmu,aarch64-softmmu"} 22fi 23 24requires_binary() 25{ 26 found=0 27 for c in $@; do 28 for d in /bin /usr/bin /usr/local/bin 29 do 30 if test -f "$d/$c" 31 then 32 found=1 33 fi 34 done 35 done 36 if test "$found" != "1" 37 then 38 echo "Prerequisite '$c' not present, skip" 39 exit 0 40 fi 41} 42 43configure_qemu() 44{ 45 config_opts="--enable-werror \ 46 ${TARGET_LIST:+--target-list=${TARGET_LIST}} \ 47 --prefix=$INSTALL_DIR \ 48 $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \ 49 $@" 50 echo "Configure options:" 51 echo $config_opts 52 $QEMU_SRC/configure $config_opts || \ 53 { cat config.log && test_fail "Failed to run 'configure'"; } 54} 55 56build_qemu() 57{ 58 configure_qemu $@ 59 make $MAKEFLAGS 60} 61 62check_qemu() 63{ 64 # default to make check unless the caller specifies 65 if [ $# = 0 ]; then 66 INVOCATION="${TEST_COMMAND:-make $MAKEFLAGS check}" 67 else 68 INVOCATION="make $MAKEFLAGS $@" 69 fi 70 71 $INVOCATION 72} 73 74test_fail() 75{ 76 echo "$@" 77 exit 1 78} 79 80prep_fail() 81{ 82 echo "$@" 83 exit 2 84} 85 86install_qemu() 87{ 88 make install $MAKEFLAGS DESTDIR=$PWD/=destdir 89 ret=$? 90 rm -rf $PWD/=destdir 91 return $ret 92} 93