Refactor in preparation for the next patch.
Signed-off-by: Andy Zhou <[email protected]>
---
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
[email protected]
http://openvswitch.org/mailman/listinfo/dev