xref: /openbmc/qemu/tests/docker/common.rc (revision 520e210c)
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
14requires()
15{
16    for c in $@; do
17        if ! echo "$FEATURES" | grep -wq -e "$c"; then
18            echo "Prerequisite '$c' not present, skip"
19            exit 0
20        fi
21    done
22}
23
24configure_qemu()
25{
26    config_opts="--enable-werror \
27                 ${TARGET_LIST:+--target-list=${TARGET_LIST}} \
28                 --prefix=$INSTALL_DIR \
29                 $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \
30                 $@"
31    echo "Configure options:"
32    echo $config_opts
33    $QEMU_SRC/configure $config_opts || \
34        { cat config.log && test_fail "Failed to run 'configure'"; }
35}
36
37build_qemu()
38{
39    configure_qemu $@
40    make $MAKEFLAGS
41}
42
43check_qemu()
44{
45    # default to make check unless the caller specifies
46    if test -z "$@"; then
47        INVOCATION="check"
48    else
49        INVOCATION="$@"
50    fi
51
52    if command -v gtester > /dev/null 2>&1 && \
53           gtester --version > /dev/null 2>&1; then
54        make $MAKEFLAGS $INVOCATION
55    else
56        echo "No working gtester, skipping make $INVOCATION"
57    fi
58}
59
60test_fail()
61{
62    echo "$@"
63    exit 1
64}
65
66prep_fail()
67{
68    echo "$@"
69    exit 2
70}
71
72install_qemu()
73{
74    make install $MAKEFLAGS DESTDIR=$PWD/=destdir
75    ret=$?
76    rm -rf $PWD/=destdir
77    return $ret
78}
79