qemu/tests/docker/run
Fam Zheng 299d296ea9 docker: Fix test-mingw
Feature "dtc" is explicitly required by test-mingw, but is not detected
by the run script since we switched to archive-source.sh in b7f404201e.
Since it isn't available in the Fedora image which runs this test on
patchew, the way we get dtc is still from submodule.

archive-source.sh takes care of bundling the submodule files already, so
what we need to do is just checking if files are there. Makefile is
chosen because it is one that is unlikely to get renamed in the future.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20170925082913.22089-1-famz@redhat.com>
Reviewed-by: Alistair Francis <alistair.francis@xilinx.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
2017-09-29 11:14:14 +08:00

80 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
#
# 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
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 -xf $BASE/qemu.tar || prep_fail "Failed to untar source"
if test -f $TEST_DIR/src/Makefile; then
export FEATURES="$FEATURES dtc"
fi
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"
export BUILD_DIR="$TEST_DIR/build"
export INSTALL_DIR="$TEST_DIR/install"
cd "$QEMU_SRC/tests/docker"
CMD="./$@"
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