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 43export QEMU_SRC="$TEST_DIR/src" 44 45cd "$QEMU_SRC/tests/docker" 46 47CMD="$QEMU_SRC/tests/docker/$@" 48 49if test -n "$DEBUG"; then 50 echo "* Prepared to run command:" 51 echo " $CMD" 52 echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort" 53 echo 54 $SHELL 55fi 56 57if "$CMD"; then 58 exit 0 59elif test -n "$DEBUG"; then 60 echo "* Command failed:" 61 echo " $CMD" 62 echo "* Hit Ctrl-D to exit" 63 echo 64 # Force error after shell exits 65 $SHELL && exit 1 66else 67 exit 1 68fi 69