xref: /qemu/tests/docker/run (revision f0c67a79)
14f6afe41SFam Zheng#!/bin/bash
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
14c8158513SFam Zhengif test -n "$V"; then
15c8158513SFam Zheng    set -x
16c8158513SFam Zhengfi
17c8158513SFam Zheng
18*f0c67a79SLucas Mateus Castro (alqotel)BASE="$(dirname $(realpath $0))"
19c8158513SFam Zheng
20b344aa91SFam Zheng# Prepare the environment
216a2e1197SFam Zhengexport PATH=/usr/lib/ccache:/usr/lib64/ccache:$PATH
22b344aa91SFam Zheng
23b344aa91SFam Zhengif test -n "$J"; then
24b344aa91SFam Zheng    export MAKEFLAGS="$MAKEFLAGS -j$J"
25b344aa91SFam Zhengfi
26b344aa91SFam Zheng
27b344aa91SFam Zheng# We are in the container so the whole file system belong to us
28b344aa91SFam Zhengexport TEST_DIR=/tmp/qemu-test
29b344aa91SFam Zhengmkdir -p $TEST_DIR/{src,build,install}
30b344aa91SFam Zheng
31b344aa91SFam Zheng# Extract the source tarballs
3218580922SFam Zhengtar -C $TEST_DIR/src -xf $BASE/qemu.tar || { echo "Failed to untar source"; exit 2; }
33b344aa91SFam Zheng
34ec960b9aSFam Zhengif test -n "$SHOW_ENV"; then
35ec960b9aSFam Zheng    if test -f /packages.txt; then
36ec960b9aSFam Zheng        echo "Packages installed:"
37ec960b9aSFam Zheng        cat /packages.txt
38ec960b9aSFam Zheng        echo
39ec960b9aSFam Zheng    fi
40ec960b9aSFam Zheng    echo "Environment variables:"
41ec960b9aSFam Zheng    env
42ec960b9aSFam Zheng    echo
43ec960b9aSFam Zhengfi
44ec960b9aSFam Zheng
45b344aa91SFam Zhengexport QEMU_SRC="$TEST_DIR/src"
4605790dafSFam Zhengexport BUILD_DIR="$TEST_DIR/build"
4705790dafSFam Zhengexport INSTALL_DIR="$TEST_DIR/install"
48b344aa91SFam Zheng
49b344aa91SFam Zhengcd "$QEMU_SRC/tests/docker"
50b344aa91SFam Zheng
5105790dafSFam ZhengCMD="./$@"
52b344aa91SFam Zheng
539b77336dSFam Zhengif test -z "$DEBUG"; then
549b77336dSFam Zheng    exec $CMD
559b77336dSFam Zhengfi
569b77336dSFam Zheng
579b77336dSFam Zheng# DEBUG workflow
58b344aa91SFam Zhengecho "* Prepared to run command:"
59b344aa91SFam Zhengecho "  $CMD"
60b344aa91SFam Zhengecho "* Hit Ctrl-D to continue, or type 'exit 1' to abort"
61b344aa91SFam Zhengecho
62bf5b512cSAlex Bennéeenv bash --noprofile --norc
63b344aa91SFam Zheng
64b344aa91SFam Zhengif "$CMD"; then
65b344aa91SFam Zheng    exit 0
66b344aa91SFam Zhengelif test -n "$DEBUG"; then
67b344aa91SFam Zheng    echo "* Command failed:"
68b344aa91SFam Zheng    echo "  $CMD"
69b344aa91SFam Zheng    echo "* Hit Ctrl-D to exit"
70b344aa91SFam Zheng    echo
71b344aa91SFam Zheng    # Force error after shell exits
72bf5b512cSAlex Bennée    env bash --noprofile --norc && exit 1
731ad76b8aSFam Zhengelse
741ad76b8aSFam Zheng    exit 1
75b344aa91SFam Zhengfi
76