testsuite.at: Workaround for carriage returns on windows.
[sliver-openvswitch.git] / tests / testsuite.at
index c232a87..264a15f 100644 (file)
@@ -1,6 +1,6 @@
 AT_INIT
 
-AT_COPYRIGHT([Copyright (c) 2009 Nicira Networks.
+AT_COPYRIGHT([Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -16,9 +16,142 @@ limitations under the License.])
 
 AT_TESTED([ovs-vswitchd])
 AT_TESTED([ovs-vsctl])
+AT_TESTED([perl])
 
-m4_include([tests/lcov-pre.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; 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/stp.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/ofproto-dpif.at])
+m4_include([tests/vlan-splinters.at])
+m4_include([tests/ovsdb.at])
 m4_include([tests/ovs-vsctl.at])
-m4_include([tests/lcov-post.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])