build: Allow building with autoconf 2.63
[cascardo/ovs.git] / tests / testsuite.at
1 AT_INIT
2
3 AT_COPYRIGHT([Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at:
8
9     http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.])
16
17 AT_TESTED([ovs-vswitchd])
18 AT_TESTED([ovs-vsctl])
19 AT_TESTED([perl])
20
21 m4_include([m4/compat.at])
22
23 m4_divert_push([PREPARE_TESTS])
24 [
25 ovs_wait () {
26     # First try a quick sleep, so that the test completes very quickly
27     # in the normal case.  POSIX doesn't require fractional times to
28     # work, so this might not work.
29     sleep 0.1
30     ovs_wait_cond && exit 0
31     # Then wait up to 10 seconds.
32     for d in 0 1 2 3 4 5 6 7 8 9; do
33         sleep 1
34         ovs_wait_cond && exit 0
35     done
36     exit 1
37 }
38
39 # Prints the integers from $1 to $2, increasing by $3 (default 1) on stdout.
40 seq () {
41     while test $1 -le $2; do
42         echo $1
43         set `expr $1 + ${3-1}` $2 $3
44     done
45 }
46
47 if test "$IS_WIN32" = "yes"; then
48     pwd () {
49         command pwd -W "$@"
50     }
51
52     diff () {
53         command diff --strip-trailing-cr "$@"
54     }
55
56     kill () {
57         case "$1" in
58             -0)
59                 shift
60                 for i in $*; do
61                     # tasklist will always have return code 0.
62                     # If pid does exist, there will be a line with the pid.
63                     if tasklist //fi "PID eq $i" | grep $i; then
64                         :
65                     else
66                         return 1
67                     fi
68                 done
69                 return 0
70                 ;;
71             -[1-9]*)
72                 shift
73                 for i in $*; do
74                     taskkill //F //PID $i
75                 done
76                 ;;
77             [1-9][1-9]*)
78                 for i in $*; do
79                     taskkill //F //PID $i
80                 done
81                 ;;
82         esac
83     }
84 fi
85 ]
86 m4_divert_pop([PREPARE_TESTS])
87
88 m4_define([OVS_WAIT],
89   [AT_CHECK(
90      [ovs_wait_cond () { $1
91 }
92 ovs_wait], [0], [ignore], [ignore], [$2])])
93 m4_define([OVS_WAIT_UNTIL], [OVS_WAIT([$1], [$2])])
94 m4_define([OVS_WAIT_WHILE],
95   [OVS_WAIT([if $1; then return 1; else return 0; fi], [$2])])
96
97 dnl OVS_APP_EXIT_AND_WAIT(DAEMON)
98 dnl
99 dnl Ask the daemon named DAEMON to exit, via ovs-appctl, and then waits for it
100 dnl to exit.
101 m4_define([OVS_APP_EXIT_AND_WAIT],
102   [ovs-appctl -t $1 exit
103    OVS_WAIT_WHILE([test -e $1.pid])])
104
105 dnl ON_EXIT([COMMANDS])
106 dnl
107 dnl Adds the shell COMMANDS to a collection executed when the current test
108 dnl completes, as a cleanup action.  (The most common use is to kill a
109 dnl daemon started by the test.  This is important to prevent tests that
110 dnl start daemons from hanging at exit.)
111 m4_define([ON_EXIT], [trap '. ./cleanup' 0; cat >>cleanup <<'EOF'
112 $1
113 EOF
114 ])
115
116 m4_include([tests/ovsdb-macros.at])
117 m4_include([tests/ofproto-macros.at])
118
119 m4_include([tests/bfd.at])
120 m4_include([tests/cfm.at])
121 m4_include([tests/lacp.at])
122 m4_include([tests/library.at])
123 m4_include([tests/heap.at])
124 m4_include([tests/bundle.at])
125 m4_include([tests/classifier.at])
126 m4_include([tests/check-structs.at])
127 m4_include([tests/daemon.at])
128 m4_include([tests/daemon-py.at])
129 m4_include([tests/ofp-actions.at])
130 m4_include([tests/ofp-print.at])
131 m4_include([tests/ofp-util.at])
132 m4_include([tests/ofp-errors.at])
133 m4_include([tests/ovs-ofctl.at])
134 m4_include([tests/odp.at])
135 m4_include([tests/multipath.at])
136 m4_include([tests/learn.at])
137 m4_include([tests/vconn.at])
138 m4_include([tests/file_name.at])
139 m4_include([tests/aes128.at])
140 m4_include([tests/unixctl-py.at])
141 m4_include([tests/uuid.at])
142 m4_include([tests/json.at])
143 m4_include([tests/jsonrpc.at])
144 m4_include([tests/jsonrpc-py.at])
145 m4_include([tests/tunnel.at])
146 m4_include([tests/lockfile.at])
147 m4_include([tests/reconnect.at])
148 m4_include([tests/ovs-vswitchd.at])
149 m4_include([tests/ofproto.at])
150 m4_include([tests/ofproto-dpif.at])
151 m4_include([tests/vlan-splinters.at])
152 m4_include([tests/ovsdb.at])
153 m4_include([tests/ovs-vsctl.at])
154 m4_include([tests/ovs-monitor-ipsec.at])
155 m4_include([tests/ovs-xapi-sync.at])
156 m4_include([tests/interface-reconfigure.at])
157 m4_include([tests/stp.at])
158 m4_include([tests/vlog.at])
159 m4_include([tests/vtep-ctl.at])