| #!/bin/bash -e |
| # |
| # 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. |
| |
| set -e |
| |
| if test -n "$V"; then |
| set -x |
| fi |
| |
| BASE="$(dirname $(readlink -e $0))" |
| |
| # Prepare the environment |
| . /etc/profile || true |
| export PATH=/usr/lib/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 -xzf $BASE/qemu.tgz |
| for p in dtc pixman; do |
| if test -f $BASE/$p.tgz; then |
| tar -C $TEST_DIR/src/$p -xzf $BASE/$p.tgz |
| export FEATURES="$FEATURES $p" |
| fi |
| done |
| |
| 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" |
| |
| cd "$QEMU_SRC/tests/docker" |
| |
| CMD="$QEMU_SRC/tests/docker/$@" |
| |
| 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 |
| $SHELL |
| |
| 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 |
| $SHELL && exit 1 |
| else |
| exit 1 |
| fi |