13568f98cSFam Zheng#!/bin/sh 23568f98cSFam Zheng# 33568f98cSFam Zheng# Common routines for docker test scripts. 43568f98cSFam Zheng# 53568f98cSFam Zheng# Copyright (c) 2016 Red Hat Inc. 63568f98cSFam Zheng# 73568f98cSFam Zheng# Authors: 83568f98cSFam Zheng# Fam Zheng <famz@redhat.com> 93568f98cSFam Zheng# 103568f98cSFam Zheng# This work is licensed under the terms of the GNU GPL, version 2 113568f98cSFam Zheng# or (at your option) any later version. See the COPYING file in 123568f98cSFam Zheng# the top-level directory. 133568f98cSFam Zheng 146945018aSAlex Bennée# This might be set by ENV of a docker container... it is always 15*96420a30SMichael Tokarev# overridden by TARGET_LIST if the user sets it. We special case 1617888749SAlex Bennée# "none" to allow for other options like --disable-tcg to restrict the 1717888749SAlex Bennée# builds we eventually do. 1817888749SAlex Bennéeif test "$DEF_TARGET_LIST" = "none"; then 1917888749SAlex Bennée DEF_TARGET_LIST="" 2017888749SAlex Bennéeelse 216945018aSAlex Bennée DEF_TARGET_LIST=${DEF_TARGET_LIST:-"x86_64-softmmu,aarch64-softmmu"} 2217888749SAlex Bennéefi 236945018aSAlex Bennée 24888673bbSDaniel P. Berrangérequires_binary() 253568f98cSFam Zheng{ 26888673bbSDaniel P. Berrangé found=0 273568f98cSFam Zheng for c in $@; do 28888673bbSDaniel P. Berrangé for d in /bin /usr/bin /usr/local/bin 29888673bbSDaniel P. Berrangé do 30888673bbSDaniel P. Berrangé if test -f "$d/$c" 31888673bbSDaniel P. Berrangé then 32888673bbSDaniel P. Berrangé found=1 33888673bbSDaniel P. Berrangé fi 34888673bbSDaniel P. Berrangé done 35888673bbSDaniel P. Berrangé done 36888673bbSDaniel P. Berrangé if test "$found" != "1" 37888673bbSDaniel P. Berrangé then 383568f98cSFam Zheng echo "Prerequisite '$c' not present, skip" 393568f98cSFam Zheng exit 0 403568f98cSFam Zheng fi 413568f98cSFam Zheng} 423568f98cSFam Zheng 43e4ce964dSAlex Bennéeconfigure_qemu() 443568f98cSFam Zheng{ 459445c28eSFam Zheng config_opts="--enable-werror \ 469445c28eSFam Zheng ${TARGET_LIST:+--target-list=${TARGET_LIST}} \ 4705790dafSFam Zheng --prefix=$INSTALL_DIR \ 4824e0131fSAlex Bennée $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \ 499445c28eSFam Zheng $@" 509445c28eSFam Zheng echo "Configure options:" 519445c28eSFam Zheng echo $config_opts 520c153b4cSPhilippe Mathieu-Daudé $QEMU_SRC/configure $config_opts || \ 530c153b4cSPhilippe Mathieu-Daudé { cat config.log && test_fail "Failed to run 'configure'"; } 54e4ce964dSAlex Bennée} 55e4ce964dSAlex Bennée 56e4ce964dSAlex Bennéebuild_qemu() 57e4ce964dSAlex Bennée{ 58e4ce964dSAlex Bennée configure_qemu $@ 590c153b4cSPhilippe Mathieu-Daudé make $MAKEFLAGS 603568f98cSFam Zheng} 6182659e84SFam Zheng 623f9747a7SAlex Bennéecheck_qemu() 633f9747a7SAlex Bennée{ 643f9747a7SAlex Bennée # default to make check unless the caller specifies 6510c927dcSAlex Bennée if [ $# = 0 ]; then 66e558220dSAlex Bennée INVOCATION="${TEST_COMMAND:-make $MAKEFLAGS check}" 673f9747a7SAlex Bennée else 68e558220dSAlex Bennée INVOCATION="make $MAKEFLAGS $@" 693f9747a7SAlex Bennée fi 7056c115a9SAlex Bennée 71e558220dSAlex Bennée $INVOCATION 723f9747a7SAlex Bennée} 733f9747a7SAlex Bennée 7482659e84SFam Zhengtest_fail() 7582659e84SFam Zheng{ 7682659e84SFam Zheng echo "$@" 7782659e84SFam Zheng exit 1 7882659e84SFam Zheng} 7982659e84SFam Zheng 8082659e84SFam Zhengprep_fail() 8182659e84SFam Zheng{ 8282659e84SFam Zheng echo "$@" 8382659e84SFam Zheng exit 2 8482659e84SFam Zheng} 8562838478SPaolo Bonzini 8662838478SPaolo Bonziniinstall_qemu() 8762838478SPaolo Bonzini{ 8862838478SPaolo Bonzini make install $MAKEFLAGS DESTDIR=$PWD/=destdir 8962838478SPaolo Bonzini ret=$? 9062838478SPaolo Bonzini rm -rf $PWD/=destdir 9162838478SPaolo Bonzini return $ret 9262838478SPaolo Bonzini} 93