|
|
1.1 ! root 1: #!/bin/bash ! 2: # ! 3: # Copyright (C) 2009 Red Hat, Inc. ! 4: # Copyright (c) 2000-2003,2006 Silicon Graphics, Inc. All Rights Reserved. ! 5: # ! 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. ! 9: # ! 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. ! 14: # ! 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/>. ! 17: # ! 18: # ! 19: # setup and check for config parameters, and in particular ! 20: # ! 21: # EMAIL - email of the script runner. ! 22: # TEST_DIR - scratch test directory ! 23: # ! 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. ! 31: # ! 32: ! 33: # all tests should use a common language setting to prevent golden ! 34: # output mismatches. ! 35: export LANG=C ! 36: ! 37: PATH=".:$PATH" ! 38: ! 39: HOST=`hostname -s 2> /dev/null` ! 40: HOSTOS=`uname -s` ! 41: ! 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` ! 46: ! 47: # $1 = prog to look for, $2* = default pathnames if not found in $PATH ! 48: set_prog_path() ! 49: { ! 50: p=`which $1 2> /dev/null` ! 51: if [ -n "$p" -a -x "$p" ]; then ! 52: echo $p ! 53: return 0 ! 54: fi ! 55: p=$1 ! 56: ! 57: shift ! 58: for f; do ! 59: if [ -x $f ]; then ! 60: echo $f ! 61: return 0 ! 62: fi ! 63: done ! 64: ! 65: echo "" ! 66: return 1 ! 67: } ! 68: ! 69: _fatal() ! 70: { ! 71: echo "$*" ! 72: status=1 ! 73: exit 1 ! 74: } ! 75: ! 76: export PERL_PROG="`set_prog_path perl`" ! 77: [ "$PERL_PROG" = "" ] && _fatal "perl not found" ! 78: ! 79: export AWK_PROG="`set_prog_path awk`" ! 80: [ "$AWK_PROG" = "" ] && _fatal "awk not found" ! 81: ! 82: export SED_PROG="`set_prog_path sed`" ! 83: [ "$SED_PROG" = "" ] && _fatal "sed not found" ! 84: ! 85: export BC_PROG="`set_prog_path bc`" ! 86: [ "$BC_PROG" = "" ] && _fatal "bc not found" ! 87: ! 88: export PS_ALL_FLAGS="-ef" ! 89: ! 90: if [ -z "$QEMU_PROG" ]; then ! 91: export QEMU_PROG="`set_prog_path qemu`" ! 92: fi ! 93: [ "$QEMU_PROG" = "" ] && _fatal "qemu not found" ! 94: ! 95: if [ -z "$QEMU_IMG_PROG" ]; then ! 96: export QEMU_IMG_PROG="`set_prog_path qemu-img`" ! 97: fi ! 98: [ "$QEMU_IMG_PROG" = "" ] && _fatal "qemu-img not found" ! 99: ! 100: if [ -z "$QEMU_IO_PROG" ]; then ! 101: export QEMU_IO_PROG="`set_prog_path qemu-io`" ! 102: fi ! 103: [ "$QEMU_IO_PROG" = "" ] && _fatal "qemu-io not found" ! 104: ! 105: export QEMU=$QEMU_PROG ! 106: export QEMU_IMG=$QEMU_IMG_PROG ! 107: export QEMU_IO="$QEMU_IO_PROG $QEMU_IO_OPTIONS" ! 108: ! 109: [ -f /etc/qemu-iotest.config ] && . /etc/qemu-iotest.config ! 110: ! 111: if [ -z "$TEST_DIR" ]; then ! 112: TEST_DIR=`pwd`/scratch ! 113: fi ! 114: ! 115: if [ ! -e "$TEST_DIR" ]; then ! 116: mkdir "$TEST_DIR" ! 117: fi ! 118: ! 119: if [ ! -d "$TEST_DIR" ]; then ! 120: echo "common.config: Error: \$TEST_DIR ($TEST_DIR) is not a directory" ! 121: exit 1 ! 122: fi ! 123: ! 124: export TEST_DIR ! 125: ! 126: _readlink() ! 127: { ! 128: if [ $# -ne 1 ]; then ! 129: echo "Usage: _readlink filename" 1>&2 ! 130: exit 1 ! 131: fi ! 132: ! 133: perl -e "\$in=\"$1\";" -e ' ! 134: $lnk = readlink($in); ! 135: if ($lnk =~ m!^/.*!) { ! 136: print "$lnk\n"; ! 137: } ! 138: else { ! 139: chomp($dir = `dirname $in`); ! 140: print "$dir/$lnk\n"; ! 141: }' ! 142: } ! 143: ! 144: # make sure this script returns success ! 145: /bin/true
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.