Refactor in preparation for the next patch.

Signed-off-by: Andy Zhou <az...@nicira.com>
---
 tests/automake.mk       |   1 +
 tests/ofproto-macros.at |  35 +++++++++++------
 tests/ovs-macros.at     |  98 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/testsuite.at      | 102 +-----------------------------------------------
 4 files changed, 123 insertions(+), 113 deletions(-)
 create mode 100644 tests/ovs-macros.at

diff --git a/tests/automake.mk b/tests/automake.mk
index 33502bc..fceb060 100644
--- a/tests/automake.mk
+++ b/tests/automake.mk
@@ -7,6 +7,7 @@ EXTRA_DIST += \
 TESTSUITE_AT = \
        tests/testsuite.at \
        tests/ovsdb-macros.at \
+       tests/ovs-macros.at \
        tests/library.at \
        tests/heap.at \
        tests/bundle.at \
diff --git a/tests/ofproto-macros.at b/tests/ofproto-macros.at
index cbf0ad6..93d8a77 100644
--- a/tests/ofproto-macros.at
+++ b/tests/ofproto-macros.at
@@ -39,20 +39,12 @@ m4_define([STRIP_USED], [[sed 
's/used:[0-9]\.[0-9]*/used:0.0/']])
 m4_define([STRIP_UFID], [[sed 's/ufid:[0-9a-f]* //']])
 m4_define([TESTABLE_LOG], [-vPATTERN:ANY:'%c|%p|%m'])
 
-# OVS_VSWITCHD_START([vsctl-args], [vsctl-output], [=override])
+# _OVS_VSWITCHD_START([vswitchd-aux-args])
 #
-# Creates a database and starts ovsdb-server, starts ovs-vswitchd
-# connected to that database, calls ovs-vsctl to create a bridge named
-# br0 with predictable settings, passing 'vsctl-args' as additional
-# commands to ovs-vsctl.  If 'vsctl-args' causes ovs-vsctl to provide
-# output (e.g. because it includes "create" commands) then 'vsctl-output'
-# specifies the expected output after filtering through uuidfilt.pl.
+# Creates an empty database and starts ovsdb-server.
+# Starts ovs-vswitchd, with additional arguments 'vswitchd-aux-args'.
 #
-# If a test needs to use "system" devices (as dummies), then specify
-# =override (literally) as the third argument.  Otherwise, system devices
-# won't work at all (which makes sense because tests should not access a
-# system's real Ethernet devices).
-m4_define([OVS_VSWITCHD_START],
+m4_define([_OVS_VSWITCHD_START],
   [OVS_RUNDIR=`pwd`; export OVS_RUNDIR
    OVS_LOGDIR=`pwd`; export OVS_LOGDIR
    OVS_DBDIR=`pwd`; export OVS_DBDIR
@@ -74,7 +66,7 @@ m4_define([OVS_VSWITCHD_START],
    AT_CHECK([ovs-vsctl --no-wait init])
 
    dnl Start ovs-vswitchd.
-   AT_CHECK([ovs-vswitchd --detach --no-chdir --pidfile --enable-dummy$3 
--disable-system --log-file -vvconn -vofproto_dpif], [0], [], [stderr])
+   AT_CHECK([ovs-vswitchd $1 --detach --no-chdir --pidfile --log-file -vvconn 
-vofproto_dpif], [0], [], [stderr])
    AT_CAPTURE_FILE([ovs-vswitchd.log])
    AT_CHECK([[sed < stderr '
 /ovs_numa|INFO|Discovered /d
@@ -83,6 +75,23 @@ m4_define([OVS_VSWITCHD_START],
 /reconnect|INFO|/d
 /ofproto|INFO|using datapath ID/d
 /ofproto|INFO|datapath ID changed to fedcba9876543210/d']])
+])
+
+# OVS_VSWITCHD_START([vsctl-args], [vsctl-output], [=override])
+#
+# Creates a database and starts ovsdb-server, starts ovs-vswitchd
+# connected to that database, calls ovs-vsctl to create a bridge named
+# br0 with predictable settings, passing 'vsctl-args' as additional
+# commands to ovs-vsctl.  If 'vsctl-args' causes ovs-vsctl to provide
+# output (e.g. because it includes "create" commands) then 'vsctl-output'
+# specifies the expected output after filtering through uuidfilt.pl.
+#
+# If a test needs to use "system" devices (as dummies), then specify
+# =override (literally) as the third argument.  Otherwise, system devices
+# won't work at all (which makes sense because tests should not access a
+# system's real Ethernet devices).
+m4_define([OVS_VSWITCHD_START],
+  [_OVS_VSWITCHD_START([--enable-dummy$3 --disable-system])
 
    dnl Add bridges, ports, etc.
    AT_CHECK([ovs-vsctl -- add-br br0 -- set bridge br0 datapath-type=dummy 
other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 
protocols=[[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15]] 
fail-mode=secure -- $1 m4_if([$2], [], [], [| ${PERL} $srcdir/uuidfilt.pl])], 
[0], [$2])
diff --git a/tests/ovs-macros.at b/tests/ovs-macros.at
new file mode 100644
index 0000000..0581512
--- /dev/null
+++ b/tests/ovs-macros.at
@@ -0,0 +1,98 @@
+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
+])
diff --git a/tests/testsuite.at b/tests/testsuite.at
index 3792328..57e9205 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -1,6 +1,6 @@
 AT_INIT
 
-AT_COPYRIGHT([Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
+AT_COPYRIGHT([Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, 
Inc.
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -14,105 +14,7 @@ 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/ovs-macros.at])
 m4_include([tests/ovsdb-macros.at])
 m4_include([tests/ofproto-macros.at])
 
-- 
1.9.1

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to