2b0c4fa13f
It's very confusing when things work in the debug shell because the environment is different from what the test is running. Fix this by ensuring we only have the inherited environment from the run shell. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
79 lines
1.6 KiB
Bash
Executable File
79 lines
1.6 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:/usr/lib64/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 || { echo "Failed to untar source"; exit 2; }
|
|
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 --noprofile --norc
|
|
|
|
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 --noprofile --norc && exit 1
|
|
else
|
|
exit 1
|
|
fi
|