]>
Commit | Line | Data |
---|---|---|
908eaf68 | 1 | #!/bin/bash |
6bf19c94 CH |
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 | |
e8c212d6 | 16 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
6bf19c94 CH |
17 | # |
18 | # | |
19 | # setup and check for config parameters, and in particular | |
20 | # | |
21 | # EMAIL - email of the script runner. | |
79e40ab1 | 22 | # TEST_DIR - scratch test directory |
6bf19c94 CH |
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 | ||
29926112 | 39 | HOST=`hostname -s 2> /dev/null` |
6bf19c94 CH |
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 | ||
d305fd5d LMR |
90 | if [ -z "$QEMU_PROG" ]; then |
91 | export QEMU_PROG="`set_prog_path qemu`" | |
92 | fi | |
6bf19c94 | 93 | |
d305fd5d LMR |
94 | if [ -z "$QEMU_IMG_PROG" ]; then |
95 | export QEMU_IMG_PROG="`set_prog_path qemu-img`" | |
96 | fi | |
6bf19c94 | 97 | |
d305fd5d LMR |
98 | if [ -z "$QEMU_IO_PROG" ]; then |
99 | export QEMU_IO_PROG="`set_prog_path qemu-io`" | |
100 | fi | |
a9660664 NT |
101 | |
102 | if [ -z "$QEMU_NBD_PROG" ]; then | |
103 | export QEMU_NBD_PROG="`set_prog_path qemu-nbd`" | |
104 | fi | |
6bf19c94 CH |
105 | |
106 | export QEMU=$QEMU_PROG | |
a9660664 | 107 | export QEMU_IMG=$QEMU_IMG_PROG |
6bf19c94 | 108 | export QEMU_IO="$QEMU_IO_PROG $QEMU_IO_OPTIONS" |
a9660664 | 109 | export QEMU_NBD=$QEMU_NBD_PROG |
6bf19c94 CH |
110 | |
111 | [ -f /etc/qemu-iotest.config ] && . /etc/qemu-iotest.config | |
112 | ||
5e654e08 | 113 | if [ -z "$TEST_DIR" ]; then |
79e40ab1 | 114 | TEST_DIR=`pwd`/scratch |
5e654e08 ML |
115 | fi |
116 | ||
6bf19c94 | 117 | if [ ! -e "$TEST_DIR" ]; then |
79e40ab1 | 118 | mkdir "$TEST_DIR" |
6bf19c94 CH |
119 | fi |
120 | ||
121 | if [ ! -d "$TEST_DIR" ]; then | |
122 | echo "common.config: Error: \$TEST_DIR ($TEST_DIR) is not a directory" | |
123 | exit 1 | |
124 | fi | |
125 | ||
049255b6 SH |
126 | export TEST_DIR |
127 | ||
85edbd37 JC |
128 | if [ -z "$SAMPLE_IMG_DIR" ]; then |
129 | SAMPLE_IMG_DIR=`pwd`/sample_images | |
130 | fi | |
131 | ||
132 | if [ ! -d "$SAMPLE_IMG_DIR" ]; then | |
133 | echo "common.config: Error: \$SAMPLE_IMG_DIR ($SAMPLE_IMG_DIR) is not a directory" | |
134 | exit 1 | |
135 | fi | |
136 | ||
137 | export SAMPLE_IMG_DIR | |
138 | ||
6bf19c94 CH |
139 | _readlink() |
140 | { | |
141 | if [ $# -ne 1 ]; then | |
142 | echo "Usage: _readlink filename" 1>&2 | |
143 | exit 1 | |
144 | fi | |
145 | ||
146 | perl -e "\$in=\"$1\";" -e ' | |
147 | $lnk = readlink($in); | |
148 | if ($lnk =~ m!^/.*!) { | |
149 | print "$lnk\n"; | |
150 | } | |
151 | else { | |
152 | chomp($dir = `dirname $in`); | |
153 | print "$dir/$lnk\n"; | |
154 | }' | |
155 | } | |
156 | ||
157 | # make sure this script returns success | |
158 | /bin/true |