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" 55 56cd "$QEMU_SRC/tests/docker" 57 58CMD="$QEMU_SRC/tests/docker/$@" 59 60if test -z "$DEBUG"; then 61 exec $CMD 62fi 63 64# DEBUG workflow 65echo "* Prepared to run command:" 66echo " $CMD" 67echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort" 68echo 69$SHELL 70 71if "$CMD"; then 72 exit 0 73elif test -n "$DEBUG"; then 74 echo "* Command failed:" 75 echo " $CMD" 76 echo "* Hit Ctrl-D to exit" 77 echo 78 # Force error after shell exits 79 $SHELL && exit 1 80else 81 exit 1 82fi 83