Statistics
| Branch: | Revision:

root / tests / qemu-iotests / common.config @ 9a05feab

History | View | Annotate | Download (3.7 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

    
94
if [ -z "$QEMU_IMG_PROG" ]; then
95
    export QEMU_IMG_PROG="`set_prog_path qemu-img`"
96
fi
97

    
98
if [ -z "$QEMU_IO_PROG" ]; then
99
    export QEMU_IO_PROG="`set_prog_path qemu-io`"
100
fi
101

    
102
if [ -z "$QEMU_NBD_PROG" ]; then
103
    export QEMU_NBD_PROG="`set_prog_path qemu-nbd`"
104
fi
105

    
106
export QEMU=$QEMU_PROG
107
export QEMU_IMG=$QEMU_IMG_PROG
108
export QEMU_IO="$QEMU_IO_PROG $QEMU_IO_OPTIONS"
109
export QEMU_NBD=$QEMU_NBD_PROG
110

    
111
[ -f /etc/qemu-iotest.config ]       && . /etc/qemu-iotest.config
112

    
113
if [ -z "$TEST_DIR" ]; then
114
        TEST_DIR=`pwd`/scratch
115
fi
116

    
117
if [ ! -e "$TEST_DIR" ]; then
118
        mkdir "$TEST_DIR"
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

    
126
export TEST_DIR
127

    
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

    
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