docker: Add test runner

It's better to have a launcher for all tests, to make it easier to
initialize and manage the environment.

If "DEBUG=1"  a shell prompt will show up before the test runs.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1464755128-32490-7-git-send-email-famz@redhat.com
master
Fam Zheng 2016-06-01 12:25:19 +08:00
parent ca853f0c76
commit b344aa9132
1 changed files with 58 additions and 0 deletions

58
tests/docker/run Executable file
View File

@ -0,0 +1,58 @@
#!/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.
# 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 qemu.tgz
for p in dtc pixman; do
if test -f $p.tgz; then
tar -C $TEST_DIR/src/$p -xzf $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