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 156945018aSAlex Bennée# overriden by TARGET_LIST if the user sets it. 166945018aSAlex BennéeDEF_TARGET_LIST=${DEF_TARGET_LIST:-"x86_64-softmmu,aarch64-softmmu"} 176945018aSAlex Bennée 18*888673bbSDaniel P. Berrangérequires_binary() 193568f98cSFam Zheng{ 20*888673bbSDaniel P. Berrangé found=0 213568f98cSFam Zheng for c in $@; do 22*888673bbSDaniel P. Berrangé for d in /bin /usr/bin /usr/local/bin 23*888673bbSDaniel P. Berrangé do 24*888673bbSDaniel P. Berrangé if test -f "$d/$c" 25*888673bbSDaniel P. Berrangé then 26*888673bbSDaniel P. Berrangé found=1 27*888673bbSDaniel P. Berrangé fi 28*888673bbSDaniel P. Berrangé done 29*888673bbSDaniel P. Berrangé done 30*888673bbSDaniel P. Berrangé if test "$found" != "1" 31*888673bbSDaniel P. Berrangé then 323568f98cSFam Zheng echo "Prerequisite '$c' not present, skip" 333568f98cSFam Zheng exit 0 343568f98cSFam Zheng fi 353568f98cSFam Zheng} 363568f98cSFam Zheng 37e4ce964dSAlex Bennéeconfigure_qemu() 383568f98cSFam Zheng{ 399445c28eSFam Zheng config_opts="--enable-werror \ 409445c28eSFam Zheng ${TARGET_LIST:+--target-list=${TARGET_LIST}} \ 4105790dafSFam Zheng --prefix=$INSTALL_DIR \ 4224e0131fSAlex Bennée $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \ 439445c28eSFam Zheng $@" 449445c28eSFam Zheng echo "Configure options:" 459445c28eSFam Zheng echo $config_opts 460c153b4cSPhilippe Mathieu-Daudé $QEMU_SRC/configure $config_opts || \ 470c153b4cSPhilippe Mathieu-Daudé { cat config.log && test_fail "Failed to run 'configure'"; } 48e4ce964dSAlex Bennée} 49e4ce964dSAlex Bennée 50e4ce964dSAlex Bennéebuild_qemu() 51e4ce964dSAlex Bennée{ 52e4ce964dSAlex Bennée configure_qemu $@ 530c153b4cSPhilippe Mathieu-Daudé make $MAKEFLAGS 543568f98cSFam Zheng} 5582659e84SFam Zheng 563f9747a7SAlex Bennéecheck_qemu() 573f9747a7SAlex Bennée{ 583f9747a7SAlex Bennée # default to make check unless the caller specifies 5910c927dcSAlex Bennée if [ $# = 0 ]; then 603f9747a7SAlex Bennée INVOCATION="check" 613f9747a7SAlex Bennée else 623f9747a7SAlex Bennée INVOCATION="$@" 633f9747a7SAlex Bennée fi 6456c115a9SAlex Bennée 653f9747a7SAlex Bennée make $MAKEFLAGS $INVOCATION 663f9747a7SAlex Bennée} 673f9747a7SAlex Bennée 6882659e84SFam Zhengtest_fail() 6982659e84SFam Zheng{ 7082659e84SFam Zheng echo "$@" 7182659e84SFam Zheng exit 1 7282659e84SFam Zheng} 7382659e84SFam Zheng 7482659e84SFam Zhengprep_fail() 7582659e84SFam Zheng{ 7682659e84SFam Zheng echo "$@" 7782659e84SFam Zheng exit 2 7882659e84SFam Zheng} 7962838478SPaolo Bonzini 8062838478SPaolo Bonziniinstall_qemu() 8162838478SPaolo Bonzini{ 8262838478SPaolo Bonzini make install $MAKEFLAGS DESTDIR=$PWD/=destdir 8362838478SPaolo Bonzini ret=$? 8462838478SPaolo Bonzini rm -rf $PWD/=destdir 8562838478SPaolo Bonzini return $ret 8662838478SPaolo Bonzini} 87