qemu/tests/docker/run
Fam Zheng c81585130e docker: More sensible run script
It is very easy to figure out current directory and bash option from the
execution, so do less in the Makefile invocation command line, and
figure both options in the script.

This makes the next patch easier.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1468934445-32183-7-git-send-email-famz@redhat.com
2016-07-20 19:19:43 +08:00

65 lines
1.3 KiB
Bash
Executable File

#!/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.
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
export QEMU_SRC="$TEST_DIR/src"
cd "$QEMU_SRC/tests/docker"
CMD="$QEMU_SRC/tests/docker/$@"
if test -n "$DEBUG"; then
echo "* Prepared to run command:"
echo " $CMD"
echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort"
echo
$SHELL
fi
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
fi