xhci: fix logging
[qemu/kevin.git] / tests / qemu-iotests / common.config
blobd1b45f544740126f0221f3ae347099e0eb88c9da
1 #!/bin/bash
3 # Copyright (C) 2009 Red Hat, Inc.
4 # Copyright (c) 2000-2003,2006 Silicon Graphics, Inc. All Rights Reserved.
6 # This program is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU General Public License as
8 # published by the Free Software Foundation.
10 # This program is distributed in the hope that it would be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 # setup and check for config parameters, and in particular
21 # EMAIL - email of the script runner.
22 # TEST_DIR - scratch test directory
24 # - These can be added to $HOST_CONFIG_DIR (witch default to ./config)
25 # below or a separate local configuration file can be used (using
26 # the HOST_OPTIONS variable).
27 # - This script is shared by the stress test system and the auto-qa
28 # system (includes both regression test and benchmark components).
29 # - this script shouldn't make any assertions about filesystem
30 # validity or mountedness.
33 # all tests should use a common language setting to prevent golden
34 # output mismatches.
35 export LANG=C
37 PATH=".:$PATH"
39 HOST=`hostname -s 2> /dev/null`
40 HOSTOS=`uname -s`
42 EMAIL=root@localhost # where auto-qa will send its status messages
43 export HOST_OPTIONS=${HOST_OPTIONS:=local.config}
44 export CHECK_OPTIONS=${CHECK_OPTIONS:="-g auto"}
45 export PWD=`pwd`
47 export _QEMU_HANDLE=0
49 # $1 = prog to look for, $2* = default pathnames if not found in $PATH
50 set_prog_path()
52 p=`command -v $1 2> /dev/null`
53 if [ -n "$p" -a -x "$p" ]; then
54 echo $p
55 return 0
57 p=$1
59 shift
60 for f; do
61 if [ -x $f ]; then
62 echo $f
63 return 0
65 done
67 echo ""
68 return 1
71 _fatal()
73 echo "$*"
74 status=1
75 exit 1
78 export AWK_PROG="`set_prog_path awk`"
79 [ "$AWK_PROG" = "" ] && _fatal "awk not found"
81 export SED_PROG="`set_prog_path sed`"
82 [ "$SED_PROG" = "" ] && _fatal "sed not found"
84 export PS_ALL_FLAGS="-ef"
86 if [ -z "$QEMU_PROG" ]; then
87 export QEMU_PROG="`set_prog_path qemu`"
90 if [ -z "$QEMU_IMG_PROG" ]; then
91 export QEMU_IMG_PROG="`set_prog_path qemu-img`"
94 if [ -z "$QEMU_IO_PROG" ]; then
95 export QEMU_IO_PROG="`set_prog_path qemu-io`"
98 if [ -z "$QEMU_NBD_PROG" ]; then
99 export QEMU_NBD_PROG="`set_prog_path qemu-nbd`"
102 if [ -z "$QEMU_VXHS_PROG" ]; then
103 export QEMU_VXHS_PROG="`set_prog_path qnio_server`"
106 _qemu_wrapper()
109 if [ -n "${QEMU_NEED_PID}" ]; then
110 echo $BASHPID > "${QEMU_TEST_DIR}/qemu-${_QEMU_HANDLE}.pid"
112 exec "$QEMU_PROG" $QEMU_OPTIONS "$@"
116 _qemu_img_wrapper()
118 (exec "$QEMU_IMG_PROG" $QEMU_IMG_OPTIONS "$@")
121 _qemu_io_wrapper()
123 local VALGRIND_LOGFILE="${TEST_DIR}"/$$.valgrind
124 local QEMU_IO_ARGS="$QEMU_IO_OPTIONS"
125 if [ "$IMGOPTSSYNTAX" = "true" ]; then
126 QEMU_IO_ARGS="--image-opts $QEMU_IO_ARGS"
127 if [ -n "$IMGKEYSECRET" ]; then
128 QEMU_IO_ARGS="--object secret,id=keysec0,data=$IMGKEYSECRET $QEMU_IO_ARGS"
131 local RETVAL
133 if [ "${VALGRIND_QEMU}" == "y" ]; then
134 exec valgrind --log-file="${VALGRIND_LOGFILE}" --error-exitcode=99 "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@"
135 else
136 exec "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@"
139 RETVAL=$?
140 if [ "${VALGRIND_QEMU}" == "y" ]; then
141 if [ $RETVAL == 99 ]; then
142 cat "${VALGRIND_LOGFILE}"
144 rm -f "${VALGRIND_LOGFILE}"
146 (exit $RETVAL)
149 _qemu_nbd_wrapper()
152 echo $BASHPID > "${QEMU_TEST_DIR}/qemu-nbd.pid"
153 exec "$QEMU_NBD_PROG" $QEMU_NBD_OPTIONS "$@"
157 _qemu_vxhs_wrapper()
160 echo $BASHPID > "${TEST_DIR}/qemu-vxhs.pid"
161 exec "$QEMU_VXHS_PROG" $QEMU_VXHS_OPTIONS "$@"
165 export QEMU=_qemu_wrapper
166 export QEMU_IMG=_qemu_img_wrapper
167 export QEMU_IO=_qemu_io_wrapper
168 export QEMU_NBD=_qemu_nbd_wrapper
169 export QEMU_VXHS=_qemu_vxhs_wrapper
171 QEMU_IMG_EXTRA_ARGS=
172 if [ "$IMGOPTSSYNTAX" = "true" ]; then
173 QEMU_IMG_EXTRA_ARGS="--image-opts $QEMU_IMG_EXTRA_ARGS"
174 if [ -n "$IMGKEYSECRET" ]; then
175 QEMU_IMG_EXTRA_ARGS="--object secret,id=keysec0,data=$IMGKEYSECRET $QEMU_IMG_EXTRA_ARGS"
178 export QEMU_IMG_EXTRA_ARGS
181 default_machine=$($QEMU -machine help | sed -n '/(default)/ s/ .*//p')
182 default_alias_machine=$($QEMU -machine help | \
183 sed -n "/(alias of $default_machine)/ { s/ .*//p; q; }")
184 if [[ "$default_alias_machine" ]]; then
185 default_machine="$default_alias_machine"
188 export QEMU_DEFAULT_MACHINE="$default_machine"
190 [ -f /etc/qemu-iotest.config ] && . /etc/qemu-iotest.config
192 if [ -z "$TEST_DIR" ]; then
193 TEST_DIR=`pwd`/scratch
196 QEMU_TEST_DIR="${TEST_DIR}"
198 if [ ! -e "$TEST_DIR" ]; then
199 mkdir "$TEST_DIR"
202 if [ ! -d "$TEST_DIR" ]; then
203 echo "common.config: Error: \$TEST_DIR ($TEST_DIR) is not a directory"
204 exit 1
207 export TEST_DIR
209 if [ -z "$SAMPLE_IMG_DIR" ]; then
210 SAMPLE_IMG_DIR="$source_iotests/sample_images"
213 if [ ! -d "$SAMPLE_IMG_DIR" ]; then
214 echo "common.config: Error: \$SAMPLE_IMG_DIR ($SAMPLE_IMG_DIR) is not a directory"
215 exit 1
218 export SAMPLE_IMG_DIR
220 # make sure this script returns success
221 true