On some images SHELL is pointing at a limited /bin/sh which doesn't
understand noprofile/norc. Given the run script is running bash just
invoke it directly.
This fixes:
$ make docker-test-build@IMAGE DEBUG=1
[...]
+ echo ' ./test-build'
./test-build
+ echo '* Hit Ctrl-D to continue, or type '\''exit 1'\'' to abort'
* Hit Ctrl-D to continue, or type 'exit 1' to abort
+ echo
+ /bin/sh --noprofile --norc
/bin/sh: 0: Illegal option --
Fixes: 2b0c4fa13f
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-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
|
|
env bash --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
|
|
env bash --noprofile --norc && exit 1
|
|
else
|
|
exit 1
|
|
fi
|