diff options
Diffstat (limited to 'tests/qemu-iotests/common.config')
-rw-r--r-- | tests/qemu-iotests/common.config | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/tests/qemu-iotests/common.config b/tests/qemu-iotests/common.config new file mode 100644 index 0000000000..df082e750c --- /dev/null +++ b/tests/qemu-iotests/common.config @@ -0,0 +1,145 @@ +#!/bin/bash +# +# Copyright (C) 2009 Red Hat, Inc. +# Copyright (c) 2000-2003,2006 Silicon Graphics, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# +# setup and check for config parameters, and in particular +# +# EMAIL - email of the script runner. +# TEST_DIR - scratch test directory +# +# - These can be added to $HOST_CONFIG_DIR (witch default to ./config) +# below or a separate local configuration file can be used (using +# the HOST_OPTIONS variable). +# - This script is shared by the stress test system and the auto-qa +# system (includes both regression test and benchmark components). +# - this script shouldn't make any assertions about filesystem +# validity or mountedness. +# + +# all tests should use a common language setting to prevent golden +# output mismatches. +export LANG=C + +PATH=".:$PATH" + +HOST=`hostname -s 2> /dev/null` +HOSTOS=`uname -s` + +EMAIL=root@localhost # where auto-qa will send its status messages +export HOST_OPTIONS=${HOST_OPTIONS:=local.config} +export CHECK_OPTIONS=${CHECK_OPTIONS:="-g auto"} +export PWD=`pwd` + +# $1 = prog to look for, $2* = default pathnames if not found in $PATH +set_prog_path() +{ + p=`which $1 2> /dev/null` + if [ -n "$p" -a -x "$p" ]; then + echo $p + return 0 + fi + p=$1 + + shift + for f; do + if [ -x $f ]; then + echo $f + return 0 + fi + done + + echo "" + return 1 +} + +_fatal() +{ + echo "$*" + status=1 + exit 1 +} + +export PERL_PROG="`set_prog_path perl`" +[ "$PERL_PROG" = "" ] && _fatal "perl not found" + +export AWK_PROG="`set_prog_path awk`" +[ "$AWK_PROG" = "" ] && _fatal "awk not found" + +export SED_PROG="`set_prog_path sed`" +[ "$SED_PROG" = "" ] && _fatal "sed not found" + +export BC_PROG="`set_prog_path bc`" +[ "$BC_PROG" = "" ] && _fatal "bc not found" + +export PS_ALL_FLAGS="-ef" + +if [ -z "$QEMU_PROG" ]; then + export QEMU_PROG="`set_prog_path qemu`" +fi +[ "$QEMU_PROG" = "" ] && _fatal "qemu not found" + +if [ -z "$QEMU_IMG_PROG" ]; then + export QEMU_IMG_PROG="`set_prog_path qemu-img`" +fi +[ "$QEMU_IMG_PROG" = "" ] && _fatal "qemu-img not found" + +if [ -z "$QEMU_IO_PROG" ]; then + export QEMU_IO_PROG="`set_prog_path qemu-io`" +fi +[ "$QEMU_IO_PROG" = "" ] && _fatal "qemu-io not found" + +export QEMU=$QEMU_PROG +export QEMU_IMG=$QEMU_IMG_PROG +export QEMU_IO="$QEMU_IO_PROG $QEMU_IO_OPTIONS" + +[ -f /etc/qemu-iotest.config ] && . /etc/qemu-iotest.config + +if [ -z "$TEST_DIR" ]; then + TEST_DIR=`pwd`/scratch +fi + +if [ ! -e "$TEST_DIR" ]; then + mkdir "$TEST_DIR" +fi + +if [ ! -d "$TEST_DIR" ]; then + echo "common.config: Error: \$TEST_DIR ($TEST_DIR) is not a directory" + exit 1 +fi + +export TEST_DIR + +_readlink() +{ + if [ $# -ne 1 ]; then + echo "Usage: _readlink filename" 1>&2 + exit 1 + fi + + perl -e "\$in=\"$1\";" -e ' + $lnk = readlink($in); + if ($lnk =~ m!^/.*!) { + print "$lnk\n"; + } + else { + chomp($dir = `dirname $in`); + print "$dir/$lnk\n"; + }' +} + +# make sure this script returns success +/bin/true |