summaryrefslogtreecommitdiff
path: root/tests/testsuite.at
blob: 74e5c6dfa3f150e7cb34374de2e1f454dfd81bfc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
AT_INIT

AT_COPYRIGHT([Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at:

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.])

AT_TESTED([ovs-vswitchd])
AT_TESTED([ovs-vsctl])
AT_TESTED([perl])

m4_include([m4/compat.at])

m4_divert_push([PREPARE_TESTS])
[
ovs_wait () {
    # First try a quick sleep, so that the test completes very quickly
    # in the normal case.  POSIX doesn't require fractional times to
    # work, so this might not work.
    sleep 0.1
    ovs_wait_cond && exit 0
    # Then wait up to 10 seconds.
    for d in 0 1 2 3 4 5 6 7 8 9; do
        sleep 1
        ovs_wait_cond && exit 0
    done
    exit 1
}

# Prints the integers from $1 to $2, increasing by $3 (default 1) on stdout.
seq () {
    while test $1 -le $2; do
        echo $1
        set `expr $1 + ${3-1}` $2 $3
    done
}

if test "$IS_WIN32" = "yes"; then
    pwd () {
        command pwd -W "$@"
    }

    diff () {
        command diff --strip-trailing-cr "$@"
    }

    kill () {
        case "$1" in
            -0)
                shift
                for i in $*; do
                    # tasklist will always have return code 0.
                    # If pid does exist, there will be a line with the pid.
                    if tasklist //fi "PID eq $i" | grep $i >/dev/null; then
                        :
                    else
                        return 1
                    fi
                done
                return 0
                ;;
            -[1-9]*)
                shift
                for i in $*; do
                    taskkill //F //PID $i >/dev/null
                done
                ;;
            [1-9][0-9]*)
                for i in $*; do
                    taskkill //F //PID $i >/dev/null
                done
                ;;
        esac
    }
fi
]
m4_divert_pop([PREPARE_TESTS])

m4_define([OVS_WAIT],
  [AT_CHECK(
     [ovs_wait_cond () { $1
}
ovs_wait], [0], [ignore], [ignore], [$2])])
m4_define([OVS_WAIT_UNTIL], [OVS_WAIT([$1], [$2])])
m4_define([OVS_WAIT_WHILE],
  [OVS_WAIT([if $1; then return 1; else return 0; fi], [$2])])

dnl OVS_APP_EXIT_AND_WAIT(DAEMON)
dnl
dnl Ask the daemon named DAEMON to exit, via ovs-appctl, and then waits for it
dnl to exit.
m4_define([OVS_APP_EXIT_AND_WAIT],
  [ovs-appctl -t $1 exit
   OVS_WAIT_WHILE([test -e $1.pid])])

dnl ON_EXIT([COMMANDS])
dnl
dnl Adds the shell COMMANDS to a collection executed when the current test
dnl completes, as a cleanup action.  (The most common use is to kill a
dnl daemon started by the test.  This is important to prevent tests that
dnl start daemons from hanging at exit.)
m4_define([ON_EXIT], [trap '. ./cleanup' 0; cat >>cleanup <<'EOF'
$1
EOF
])

m4_include([tests/ovsdb-macros.at])
m4_include([tests/ofproto-macros.at])

m4_include([tests/bfd.at])
m4_include([tests/cfm.at])
m4_include([tests/lacp.at])
m4_include([tests/library.at])
m4_include([tests/heap.at])
m4_include([tests/bundle.at])
m4_include([tests/classifier.at])
m4_include([tests/check-structs.at])
m4_include([tests/daemon.at])
m4_include([tests/daemon-py.at])
m4_include([tests/ofp-actions.at])
m4_include([tests/ofp-print.at])
m4_include([tests/ofp-util.at])
m4_include([tests/ofp-errors.at])
m4_include([tests/ovs-ofctl.at])
m4_include([tests/odp.at])
m4_include([tests/multipath.at])
m4_include([tests/learn.at])
m4_include([tests/vconn.at])
m4_include([tests/file_name.at])
m4_include([tests/aes128.at])
m4_include([tests/unixctl-py.at])
m4_include([tests/uuid.at])
m4_include([tests/json.at])
m4_include([tests/jsonrpc.at])
m4_include([tests/jsonrpc-py.at])
m4_include([tests/tunnel.at])
m4_include([tests/lockfile.at])
m4_include([tests/reconnect.at])
m4_include([tests/ovs-vswitchd.at])
m4_include([tests/ofproto.at])
m4_include([tests/dpif-netdev.at])
m4_include([tests/ofproto-dpif.at])
m4_include([tests/bridge.at])
m4_include([tests/vlan-splinters.at])
m4_include([tests/ovsdb.at])
m4_include([tests/ovs-vsctl.at])
m4_include([tests/ovs-monitor-ipsec.at])
m4_include([tests/ovs-xapi-sync.at])
m4_include([tests/interface-reconfigure.at])
m4_include([tests/stp.at])
m4_include([tests/vlog.at])
m4_include([tests/vtep-ctl.at])