1#!/bin/bash 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 14if test -n "$V"; then 15 set -x 16fi 17 18BASE="$(dirname $(readlink -e $0))" 19 20# Prepare the environment 21export PATH=/usr/lib/ccache:/usr/lib64/ccache:$PATH 22 23if test -n "$J"; then 24 export MAKEFLAGS="$MAKEFLAGS -j$J" 25fi 26 27# We are in the container so the whole file system belong to us 28export TEST_DIR=/tmp/qemu-test 29mkdir -p $TEST_DIR/{src,build,install} 30 31# Extract the source tarballs 32tar -C $TEST_DIR/src -xf $BASE/qemu.tar || { echo "Failed to untar source"; exit 2; } 33if test -f $TEST_DIR/src/Makefile; then 34 export FEATURES="$FEATURES dtc" 35fi 36 37if test -n "$SHOW_ENV"; then 38 if test -f /packages.txt; then 39 echo "Packages installed:" 40 cat /packages.txt 41 echo 42 fi 43 echo "Environment variables:" 44 env 45 echo 46fi 47 48export QEMU_SRC="$TEST_DIR/src" 49export BUILD_DIR="$TEST_DIR/build" 50export INSTALL_DIR="$TEST_DIR/install" 51 52cd "$QEMU_SRC/tests/docker" 53 54CMD="./$@" 55 56if test -z "$DEBUG"; then 57 exec $CMD 58fi 59 60# DEBUG workflow 61echo "* Prepared to run command:" 62echo " $CMD" 63echo "* Hit Ctrl-D to continue, or type 'exit 1' to abort" 64echo 65env bash --noprofile --norc 66 67if "$CMD"; then 68 exit 0 69elif test -n "$DEBUG"; then 70 echo "* Command failed:" 71 echo " $CMD" 72 echo "* Hit Ctrl-D to exit" 73 echo 74 # Force error after shell exits 75 env bash --noprofile --norc && exit 1 76else 77 exit 1 78fi 79