aboutsummaryrefslogtreecommitdiffstats
path: root/tests/qemu-iotests/common.config
diff options
context:
space:
mode:
Diffstat (limited to 'tests/qemu-iotests/common.config')
-rw-r--r--tests/qemu-iotests/common.config158
1 files changed, 158 insertions, 0 deletions
diff --git a/tests/qemu-iotests/common.config b/tests/qemu-iotests/common.config
new file mode 100644
index 00000000..a1973ad9
--- /dev/null
+++ b/tests/qemu-iotests/common.config
@@ -0,0 +1,158 @@
+#!/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=`command -v $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
+
+if [ -z "$QEMU_IMG_PROG" ]; then
+ export QEMU_IMG_PROG="`set_prog_path qemu-img`"
+fi
+
+if [ -z "$QEMU_IO_PROG" ]; then
+ export QEMU_IO_PROG="`set_prog_path qemu-io`"
+fi
+
+if [ -z "$QEMU_NBD_PROG" ]; then
+ export QEMU_NBD_PROG="`set_prog_path qemu-nbd`"
+fi
+
+export QEMU=$QEMU_PROG
+export QEMU_IMG=$QEMU_IMG_PROG
+export QEMU_IO="$QEMU_IO_PROG $QEMU_IO_OPTIONS"
+export QEMU_NBD=$QEMU_NBD_PROG
+
+[ -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
+
+if [ -z "$SAMPLE_IMG_DIR" ]; then
+ SAMPLE_IMG_DIR="$source_iotests/sample_images"
+fi
+
+if [ ! -d "$SAMPLE_IMG_DIR" ]; then
+ echo "common.config: Error: \$SAMPLE_IMG_DIR ($SAMPLE_IMG_DIR) is not a directory"
+ exit 1
+fi
+
+export SAMPLE_IMG_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
+true