root / tests / qemu-iotests / common.config @ 29926112
History | View | Annotate | Download (3.5 kB)
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 |