common.rc (1905B)
1 #!/bin/sh 2 # 3 # Common routines for docker test scripts. 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 # This might be set by ENV of a docker container... it is always 15 # overriden by TARGET_LIST if the user sets it. We special case 16 # "none" to allow for other options like --disable-tcg to restrict the 17 # builds we eventually do. 18 if test "$DEF_TARGET_LIST" = "none"; then 19 DEF_TARGET_LIST="" 20 else 21 DEF_TARGET_LIST=${DEF_TARGET_LIST:-"x86_64-softmmu,aarch64-softmmu"} 22 fi 23 24 requires_binary() 25 { 26 found=0 27 for c in $@; do 28 for d in /bin /usr/bin /usr/local/bin 29 do 30 if test -f "$d/$c" 31 then 32 found=1 33 fi 34 done 35 done 36 if test "$found" != "1" 37 then 38 echo "Prerequisite '$c' not present, skip" 39 exit 0 40 fi 41 } 42 43 configure_qemu() 44 { 45 config_opts="--enable-werror \ 46 ${TARGET_LIST:+--target-list=${TARGET_LIST}} \ 47 --prefix=$INSTALL_DIR \ 48 $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \ 49 $@" 50 echo "Configure options:" 51 echo $config_opts 52 $QEMU_SRC/configure $config_opts || \ 53 { cat config.log && test_fail "Failed to run 'configure'"; } 54 } 55 56 build_qemu() 57 { 58 configure_qemu $@ 59 make $MAKEFLAGS 60 } 61 62 check_qemu() 63 { 64 # default to make check unless the caller specifies 65 if [ $# = 0 ]; then 66 INVOCATION="${TEST_COMMAND:-make $MAKEFLAGS check}" 67 else 68 INVOCATION="make $MAKEFLAGS $@" 69 fi 70 71 $INVOCATION 72 } 73 74 test_fail() 75 { 76 echo "$@" 77 exit 1 78 } 79 80 prep_fail() 81 { 82 echo "$@" 83 exit 2 84 } 85 86 install_qemu() 87 { 88 make install $MAKEFLAGS DESTDIR=$PWD/=destdir 89 ret=$? 90 rm -rf $PWD/=destdir 91 return $ret 92 }