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