xref: /openbmc/qemu/tests/docker/run (revision 2cc0e2e8)
1#!/bin/bash
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
14if test -n "$V"; then
15    set -x
16fi
17
18BASE="$(dirname $(readlink -e $0))"
19
20# Prepare the environment
21export PATH=/usr/lib/ccache:/usr/lib64/ccache:$PATH
22
23if test -n "$J"; then
24    export MAKEFLAGS="$MAKEFLAGS -j$J"
25fi
26
27# We are in the container so the whole file system belong to us
28export TEST_DIR=/tmp/qemu-test
29mkdir -p $TEST_DIR/{src,build,install}
30
31# Extract the source tarballs
32tar -C $TEST_DIR/src -xf $BASE/qemu.tar || { echo "Failed to untar source"; exit 2; }
33if test -f $TEST_DIR/src/Makefile; then
34    export FEATURES="$FEATURES dtc"
35fi
36
37if test -n "$SHOW_ENV"; then
38    if test -f /packages.txt; then
39        echo "Packages installed:"
40        cat /packages.txt
41        echo
42    fi
43    echo "Environment variables:"
44    env
45    echo
46fi
47
48export QEMU_SRC="$TEST_DIR/src"
49export BUILD_DIR="$TEST_DIR/build"
50export INSTALL_DIR="$TEST_DIR/install"
51
52cd "$QEMU_SRC/tests/docker"
53
54CMD="./$@"
55
56if test -z "$DEBUG"; then
57    exec $CMD
58fi
59
60# DEBUG workflow
61echo "* Prepared to run command:"
62echo "  $CMD"
63echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort"
64echo
65$SHELL
66
67if "$CMD"; then
68    exit 0
69elif test -n "$DEBUG"; then
70    echo "* Command failed:"
71    echo "  $CMD"
72    echo "* Hit Ctrl-D to exit"
73    echo
74    # Force error after shell exits
75    $SHELL && exit 1
76else
77    exit 1
78fi
79