xref: /qemu/tests/docker/common.rc (revision c3bef3b4)
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