Statistics
| Branch: | Revision:

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