2016-06-01 07:25:19 +03:00
|
|
|
#!/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.
|
|
|
|
|
2016-07-19 16:20:42 +03:00
|
|
|
set -e
|
|
|
|
|
2016-07-19 16:20:41 +03:00
|
|
|
if test -n "$V"; then
|
|
|
|
set -x
|
|
|
|
fi
|
|
|
|
|
|
|
|
BASE="$(dirname $(readlink -e $0))"
|
|
|
|
|
2016-06-01 07:25:19 +03:00
|
|
|
# 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
|
2016-07-19 16:20:41 +03:00
|
|
|
tar -C $TEST_DIR/src -xzf $BASE/qemu.tgz
|
2016-06-01 07:25:19 +03:00
|
|
|
for p in dtc pixman; do
|
2016-07-19 16:20:41 +03:00
|
|
|
if test -f $BASE/$p.tgz; then
|
|
|
|
tar -C $TEST_DIR/src/$p -xzf $BASE/$p.tgz
|
2016-06-01 07:25:19 +03:00
|
|
|
export FEATURES="$FEATURES $p"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2016-09-21 06:49:26 +03:00
|
|
|
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
|
|
|
|
|
2016-06-01 07:25:19 +03:00
|
|
|
export QEMU_SRC="$TEST_DIR/src"
|
|
|
|
|
|
|
|
cd "$QEMU_SRC/tests/docker"
|
|
|
|
|
|
|
|
CMD="$QEMU_SRC/tests/docker/$@"
|
|
|
|
|
2016-09-21 06:49:28 +03:00
|
|
|
if test -z "$DEBUG"; then
|
|
|
|
exec $CMD
|
2016-06-01 07:25:19 +03:00
|
|
|
fi
|
|
|
|
|
2016-09-21 06:49:28 +03:00
|
|
|
# DEBUG workflow
|
|
|
|
echo "* Prepared to run command:"
|
|
|
|
echo " $CMD"
|
|
|
|
echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort"
|
|
|
|
echo
|
|
|
|
$SHELL
|
|
|
|
|
2016-06-01 07:25:19 +03:00
|
|
|
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
|
2016-07-19 16:20:42 +03:00
|
|
|
else
|
|
|
|
exit 1
|
2016-06-01 07:25:19 +03:00
|
|
|
fi
|