1#!/bin/bash -e 2# 3# Docker test runner 4# 5# Copyright (c) 2016 Red Hat Inc. 6# 7# Authors: 8# Fam Zheng <famz@redhat.com> 9# 10# This work is licensed under the terms of the GNU GPL, version 2 11# or (at your option) any later version. See the COPYING file in 12# the top-level directory. 13 14set -e 15 16if test -n "$V"; then 17 set -x 18fi 19 20BASE="$(dirname $(readlink -e $0))" 21 22# Prepare the environment 23. /etc/profile || true 24export PATH=/usr/lib/ccache:$PATH 25 26if test -n "$J"; then 27 export MAKEFLAGS="$MAKEFLAGS -j$J" 28fi 29 30# We are in the container so the whole file system belong to us 31export TEST_DIR=/tmp/qemu-test 32mkdir -p $TEST_DIR/{src,build,install} 33 34# Extract the source tarballs 35tar -C $TEST_DIR/src -xzf $BASE/qemu.tgz 36for p in dtc pixman; do 37 if test -f $BASE/$p.tgz; then 38 tar -C $TEST_DIR/src/$p -xzf $BASE/$p.tgz 39 export FEATURES="$FEATURES $p" 40 fi 41done 42 43if test -n "$SHOW_ENV"; then 44 if test -f /packages.txt; then 45 echo "Packages installed:" 46 cat /packages.txt 47 echo 48 fi 49 echo "Environment variables:" 50 env 51 echo 52fi 53 54export QEMU_SRC="$TEST_DIR/src" 55export BUILD_DIR="$TEST_DIR/build" 56export INSTALL_DIR="$TEST_DIR/install" 57 58cd "$QEMU_SRC/tests/docker" 59 60CMD="./$@" 61 62if test -z "$DEBUG"; then 63 exec $CMD 64fi 65 66# DEBUG workflow 67echo "* Prepared to run command:" 68echo " $CMD" 69echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort" 70echo 71$SHELL 72 73if "$CMD"; then 74 exit 0 75elif test -n "$DEBUG"; then 76 echo "* Command failed:" 77 echo " $CMD" 78 echo "* Hit Ctrl-D to exit" 79 echo 80 # Force error after shell exits 81 $SHELL && exit 1 82else 83 exit 1 84fi 85