qemu/tests/docker/common.rc
<<
>>
Prefs
   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# overridden 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