|
|
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.