| #!/bin/bash | |
| # | |
| # Docker test runner | |
| # | |
| # Copyright (c) 2016 Red Hat Inc. | |
| # | |
| # Authors: | |
| # Fam Zheng <famz@redhat.com> | |
| # | |
| # This work is licensed under the terms of the GNU GPL, version 2 | |
| # or (at your option) any later version. See the COPYING file in | |
| # the top-level directory. | |
| if test -n "$V"; then | |
| set -x | |
| fi | |
| BASE="$(dirname $(realpath $0))" | |
| # Prepare the environment | |
| export PATH=/usr/lib/ccache:/usr/lib64/ccache:$PATH | |
| if test -n "$J"; then | |
| export MAKEFLAGS="$MAKEFLAGS -j$J" | |
| fi | |
| # We are in the container so the whole file system belong to us | |
| export TEST_DIR=/tmp/qemu-test | |
| mkdir -p $TEST_DIR/{src,build,install} | |
| # Extract the source tarballs | |
| tar -C $TEST_DIR/src -xf $BASE/qemu.tar || { echo "Failed to untar source"; exit 2; } | |
| if test -n "$SHOW_ENV"; then | |
| if test -f /packages.txt; then | |
| echo "Packages installed:" | |
| cat /packages.txt | |
| echo | |
| fi | |
| echo "Environment variables:" | |
| env | |
| echo | |
| fi | |
| export QEMU_SRC="$TEST_DIR/src" | |
| export BUILD_DIR="$TEST_DIR/build" | |
| export INSTALL_DIR="$TEST_DIR/install" | |
| cd "$QEMU_SRC/tests/docker" | |
| CMD="./$@" | |
| if test -z "$DEBUG"; then | |
| exec $CMD | |
| fi | |
| # DEBUG workflow | |
| echo "* Prepared to run command:" | |
| echo " $CMD" | |
| echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort" | |
| echo | |
| env bash --noprofile --norc | |
| if "$CMD"; then | |
| exit 0 | |
| elif test -n "$DEBUG"; then | |
| echo "* Command failed:" | |
| echo " $CMD" | |
| echo "* Hit Ctrl-D to exit" | |
| echo | |
| # Force error after shell exits | |
| env bash --noprofile --norc && exit 1 | |
| else | |
| exit 1 | |
| fi |