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