xref: /openbmc/qemu/tests/docker/run (revision ec960b9a73f48b8b0bc7d5d31a173e90bd38a290)
1b344aa91SFam Zheng#!/bin/bash -e
2b344aa91SFam Zheng#
3b344aa91SFam Zheng# Docker test runner
4b344aa91SFam Zheng#
5b344aa91SFam Zheng# Copyright (c) 2016 Red Hat Inc.
6b344aa91SFam Zheng#
7b344aa91SFam Zheng# Authors:
8b344aa91SFam Zheng#  Fam Zheng <famz@redhat.com>
9b344aa91SFam Zheng#
10b344aa91SFam Zheng# This work is licensed under the terms of the GNU GPL, version 2
11b344aa91SFam Zheng# or (at your option) any later version. See the COPYING file in
12b344aa91SFam Zheng# the top-level directory.
13b344aa91SFam Zheng
141ad76b8aSFam Zhengset -e
151ad76b8aSFam Zheng
16c8158513SFam Zhengif test -n "$V"; then
17c8158513SFam Zheng    set -x
18c8158513SFam Zhengfi
19c8158513SFam Zheng
20c8158513SFam ZhengBASE="$(dirname $(readlink -e $0))"
21c8158513SFam Zheng
22b344aa91SFam Zheng# Prepare the environment
23b344aa91SFam Zheng. /etc/profile || true
24b344aa91SFam Zhengexport PATH=/usr/lib/ccache:$PATH
25b344aa91SFam Zheng
26b344aa91SFam Zhengif test -n "$J"; then
27b344aa91SFam Zheng    export MAKEFLAGS="$MAKEFLAGS -j$J"
28b344aa91SFam Zhengfi
29b344aa91SFam Zheng
30b344aa91SFam Zheng# We are in the container so the whole file system belong to us
31b344aa91SFam Zhengexport TEST_DIR=/tmp/qemu-test
32b344aa91SFam Zhengmkdir -p $TEST_DIR/{src,build,install}
33b344aa91SFam Zheng
34b344aa91SFam Zheng# Extract the source tarballs
35c8158513SFam Zhengtar -C $TEST_DIR/src -xzf $BASE/qemu.tgz
36b344aa91SFam Zhengfor p in dtc pixman; do
37c8158513SFam Zheng    if test -f $BASE/$p.tgz; then
38c8158513SFam Zheng        tar -C $TEST_DIR/src/$p -xzf $BASE/$p.tgz
39b344aa91SFam Zheng        export FEATURES="$FEATURES $p"
40b344aa91SFam Zheng    fi
41b344aa91SFam Zhengdone
42b344aa91SFam Zheng
43*ec960b9aSFam Zhengif test -n "$SHOW_ENV"; then
44*ec960b9aSFam Zheng    if test -f /packages.txt; then
45*ec960b9aSFam Zheng        echo "Packages installed:"
46*ec960b9aSFam Zheng        cat /packages.txt
47*ec960b9aSFam Zheng        echo
48*ec960b9aSFam Zheng    fi
49*ec960b9aSFam Zheng    echo "Environment variables:"
50*ec960b9aSFam Zheng    env
51*ec960b9aSFam Zheng    echo
52*ec960b9aSFam Zhengfi
53*ec960b9aSFam Zheng
54b344aa91SFam Zhengexport QEMU_SRC="$TEST_DIR/src"
55b344aa91SFam Zheng
56b344aa91SFam Zhengcd "$QEMU_SRC/tests/docker"
57b344aa91SFam Zheng
58b344aa91SFam ZhengCMD="$QEMU_SRC/tests/docker/$@"
59b344aa91SFam Zheng
60b344aa91SFam Zhengif test -n "$DEBUG"; then
61b344aa91SFam Zheng    echo "* Prepared to run command:"
62b344aa91SFam Zheng    echo "  $CMD"
63b344aa91SFam Zheng    echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort"
64b344aa91SFam Zheng    echo
65b344aa91SFam Zheng    $SHELL
66b344aa91SFam Zhengfi
67b344aa91SFam Zheng
68b344aa91SFam Zhengif "$CMD"; then
69b344aa91SFam Zheng    exit 0
70b344aa91SFam Zhengelif test -n "$DEBUG"; then
71b344aa91SFam Zheng    echo "* Command failed:"
72b344aa91SFam Zheng    echo "  $CMD"
73b344aa91SFam Zheng    echo "* Hit Ctrl-D to exit"
74b344aa91SFam Zheng    echo
75b344aa91SFam Zheng    # Force error after shell exits
76b344aa91SFam Zheng    $SHELL && exit 1
771ad76b8aSFam Zhengelse
781ad76b8aSFam Zheng    exit 1
79b344aa91SFam Zhengfi
80