#!/bin/bash -e # # Docker test runner # # Copyright (c) 2016 Red Hat Inc. # # Authors: # Fam Zheng # # 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