~james-page/ubuntu/saucy/openvswitch/1.12-snapshot

« back to all changes in this revision

Viewing changes to tests/run-oftest

  • Committer: James Page
  • Date: 2013-08-21 10:16:57 UTC
  • mfrom: (1.1.20)
  • Revision ID: james.page@canonical.com-20130821101657-3o0z0qeiv5zkwlzi
New upstream snapshot

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/sh
 
2
 
 
3
set -e
 
4
 
 
5
run () {
 
6
    echo "$@"
 
7
    "$@" || exit 1
 
8
}
 
9
 
 
10
# Put built tools early in $PATH.
 
11
builddir=`pwd`
 
12
if test ! -e vswitchd/ovs-vswitchd; then
 
13
    echo >&2 'not in build directory, please change directory or run via \"make check-oftest'
 
14
    exit 1
 
15
fi
 
16
PATH=$builddir/ovsdb:$builddir/vswitchd:$builddir/utilities:$PATH; export PATH
 
17
 
 
18
# Find srcdir.
 
19
case $srcdir in
 
20
    '') srcdir=$builddir ;;
 
21
    /*) ;;
 
22
    *) srcdir=`pwd`/$srcdir ;;
 
23
esac
 
24
if test ! -e "$srcdir"/WHY-OVS; then
 
25
    echo >&2 'source directory not found, please set $srcdir or run via \"make check-oftest'
 
26
    exit 1
 
27
fi
 
28
 
 
29
# Make sure oftest is available.
 
30
if test X"$OFT" = X; then
 
31
    OFT=oft
 
32
fi
 
33
if ($OFT --version) >/dev/null 2>&1; then
 
34
    :
 
35
else
 
36
    echo >&2 'OFTest "oft" binary not found or cannot be run, please add to $PATH or set $OFT'
 
37
    exit 1
 
38
fi
 
39
 
 
40
# Create sandbox.
 
41
rm -rf sandbox
 
42
mkdir sandbox
 
43
cd sandbox
 
44
sandbox=`pwd`
 
45
 
 
46
# Set up environment for OVS programs to sandbox themselves.
 
47
OVS_RUNDIR=$sandbox; export OVS_RUNDIR
 
48
OVS_LOGDIR=$sandbox; export OVS_LOGDIR
 
49
OVS_DBDIR=$sandbox; export OVS_DBDIR
 
50
OVS_SYSCONFDIR=$sandbox; export OVS_SYSCONFDIR
 
51
 
 
52
trap 'kill `cat *.pid`' 0 1 2 3 13 14 15
 
53
 
 
54
# Create database and start ovsdb-server.
 
55
touch .conf.db.~lock~
 
56
rm -f conf.db
 
57
run ovsdb-tool create conf.db "$srcdir"/vswitchd/vswitch.ovsschema
 
58
run ovsdb-server --detach --no-chdir --pidfile -vconsole:off --log-file \
 
59
    --remote=punix:"$sandbox"/db.sock
 
60
 
 
61
# Start ovs-vswitchd.
 
62
run ovs-vswitchd --detach --no-chdir --pidfile -vconsole:off --log-file \
 
63
    --enable-dummy --disable-system -vvconn -vnetdev_dummy
 
64
 
 
65
# Add a bridge and some ports for OFTest to use,
 
66
# and configure ovs-vswitchd to connect to OFTest.
 
67
run ovs-vsctl --no-wait \
 
68
    -- add-br br0 \
 
69
    -- set bridge br0 datapath-type=dummy fail-mode=secure
 
70
for port in p1 p2 p3 p4; do
 
71
    run ovs-vsctl --no-wait \
 
72
        -- add-port br0 $port \
 
73
        -- set interface $port type=dummy \
 
74
                               options:pstream=punix:$OVS_RUNDIR/$port
 
75
done
 
76
run ovs-vsctl \
 
77
    -- set-controller br0 tcp:127.0.0.1 \
 
78
    -- set controller br0 connection-mode=out-of-band max-backoff=1000
 
79
 
 
80
# Run OFTest.
 
81
run $OFT -P ovs-dummy $OFTFLAGS; status=$?
 
82
 
 
83
cat <<EOF
 
84
 
 
85
----------------------------------------------------------------------
 
86
Logs may be found under $sandbox, e.g.:
 
87
        $sandbox/oft.log
 
88
        $sandbox/ovs-vswitchd.log
 
89
        $sandbox/ovsdb-server.log
 
90
----------------------------------------------------------------------
 
91
EOF
 
92
 
 
93
# Propagate OFTest exit status.
 
94
exit $status