qemu/tests/docker/run
Alex Bennée bcd7f06f57 tests/docker/run: don't source /etc/profile
The usual behaviour of /etc/profile is to set the default PATH for
users. This runs into problems when we have updated PATH in our
dockerfile e.g. to access a cross-compiler in a non-standard
location. It shouldn't be needed anyway as we inherit the env from the
image when it was setup.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
CC: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20170926133622.14991-1-alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Fam Zheng <famz@redhat.com>
2017-09-29 11:14:15 +08:00

79 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
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