2017-09-05 10:56:14 +08:00
|
|
|
#!/bin/bash
|
2016-06-01 12:25:19 +08:00
|
|
|
#
|
|
|
|
# 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 21:20:41 +08:00
|
|
|
if test -n "$V"; then
|
|
|
|
set -x
|
|
|
|
fi
|
|
|
|
|
|
|
|
BASE="$(dirname $(readlink -e $0))"
|
|
|
|
|
2016-06-01 12:25:19 +08:00
|
|
|
# Prepare the environment
|
2017-10-18 15:38:41 +08:00
|
|
|
export PATH=/usr/lib/ccache:/usr/lib64/ccache:$PATH
|
2016-06-01 12:25:19 +08:00
|
|
|
|
|
|
|
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
|
2018-03-26 17:03:50 +08:00
|
|
|
tar -C $TEST_DIR/src -xf $BASE/qemu.tar || { echo "Failed to untar source"; exit 2; }
|
2017-09-25 16:29:13 +08:00
|
|
|
if test -f $TEST_DIR/src/Makefile; then
|
|
|
|
export FEATURES="$FEATURES dtc"
|
|
|
|
fi
|
2016-06-01 12:25:19 +08:00
|
|
|
|
2016-09-21 11:49:26 +08: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 12:25:19 +08:00
|
|
|
export QEMU_SRC="$TEST_DIR/src"
|
2017-08-17 11:57:21 +08:00
|
|
|
export BUILD_DIR="$TEST_DIR/build"
|
|
|
|
export INSTALL_DIR="$TEST_DIR/install"
|
2016-06-01 12:25:19 +08:00
|
|
|
|
|
|
|
cd "$QEMU_SRC/tests/docker"
|
|
|
|
|
2017-08-17 11:57:21 +08:00
|
|
|
CMD="./$@"
|
2016-06-01 12:25:19 +08:00
|
|
|
|
2016-09-21 11:49:28 +08:00
|
|
|
if test -z "$DEBUG"; then
|
|
|
|
exec $CMD
|
2016-06-01 12:25:19 +08:00
|
|
|
fi
|
|
|
|
|
2016-09-21 11:49:28 +08:00
|
|
|
# DEBUG workflow
|
|
|
|
echo "* Prepared to run command:"
|
|
|
|
echo " $CMD"
|
|
|
|
echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort"
|
|
|
|
echo
|
2019-08-14 17:54:26 +08:00
|
|
|
env bash --noprofile --norc
|
2016-09-21 11:49:28 +08:00
|
|
|
|
2016-06-01 12:25:19 +08: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
|
2019-08-14 17:54:26 +08:00
|
|
|
env bash --noprofile --norc && exit 1
|
2016-07-19 21:20:42 +08:00
|
|
|
else
|
|
|
|
exit 1
|
2016-06-01 12:25:19 +08:00
|
|
|
fi
|