Files
xemu/tests/docker/run
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

76 lines
1.5 KiB
Bash
Raw Normal View History

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 $(realpath $0))"
2016-07-19 21:20:41 +08:00
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; }
2016-06-01 12:25:19 +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
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
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