xref: /qemu/tests/docker/run (revision 2c533c54)
1#!/bin/bash -e
2#
3# Docker test runner
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
14set -e
15
16if test -n "$V"; then
17    set -x
18fi
19
20BASE="$(dirname $(readlink -e $0))"
21
22# Prepare the environment
23. /etc/profile || true
24export PATH=/usr/lib/ccache:$PATH
25
26if test -n "$J"; then
27    export MAKEFLAGS="$MAKEFLAGS -j$J"
28fi
29
30# We are in the container so the whole file system belong to us
31export TEST_DIR=/tmp/qemu-test
32mkdir -p $TEST_DIR/{src,build,install}
33
34# Extract the source tarballs
35tar -C $TEST_DIR/src -xzf $BASE/qemu.tgz
36for p in dtc pixman; do
37    if test -f $BASE/$p.tgz; then
38        tar -C $TEST_DIR/src/$p -xzf $BASE/$p.tgz
39        export FEATURES="$FEATURES $p"
40    fi
41done
42
43export QEMU_SRC="$TEST_DIR/src"
44
45cd "$QEMU_SRC/tests/docker"
46
47CMD="$QEMU_SRC/tests/docker/$@"
48
49if test -n "$DEBUG"; then
50    echo "* Prepared to run command:"
51    echo "  $CMD"
52    echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort"
53    echo
54    $SHELL
55fi
56
57if "$CMD"; then
58    exit 0
59elif test -n "$DEBUG"; then
60    echo "* Command failed:"
61    echo "  $CMD"
62    echo "* Hit Ctrl-D to exit"
63    echo
64    # Force error after shell exits
65    $SHELL && exit 1
66else
67    exit 1
68fi
69