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_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; then : else return 1 fi done return 0 ;; -[1-9]*) shift for i in $*; do taskkill //F //PID $i done ;; [1-9][1-9]*) for i in $*; do taskkill //F //PID $i 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])