| #!/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 |