[ovs-dev] [tests+nxm-ofctl 21/42] tests: Add tests for ofproto code.

Ben Pfaff blp at nicira.com
Tue Nov 23 22:43:53 UTC 2010


This first set of tests is pretty basic and uninteresting, but the
infrastructure is now in place for adding more.
---
 tests/automake.mk  |    1 +
 tests/ofproto.at   |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/testsuite.at |    1 +
 3 files changed, 59 insertions(+), 0 deletions(-)
 create mode 100644 tests/ofproto.at

diff --git a/tests/automake.mk b/tests/automake.mk
index 8503b6c..00afcc7 100644
--- a/tests/automake.mk
+++ b/tests/automake.mk
@@ -23,6 +23,7 @@ TESTSUITE_AT = \
 	tests/timeval.at \
 	tests/lockfile.at \
 	tests/reconnect.at \
+	tests/ofproto.at \
 	tests/ovsdb.at \
 	tests/ovsdb-log.at \
 	tests/ovsdb-types.at \
diff --git a/tests/ofproto.at b/tests/ofproto.at
new file mode 100644
index 0000000..37981e3
--- /dev/null
+++ b/tests/ofproto.at
@@ -0,0 +1,57 @@
+AT_BANNER([ofproto])
+
+m4_define([OFPROTO_START], 
+  [OVS_RUNDIR=$PWD; export OVS_RUNDIR
+   OVS_LOGDIR=$PWD; export OVS_LOGDIR
+   trap 'kill `cat ovs-openflowd.pid`' 0
+   AT_CAPTURE_FILE([ovs-openflowd.log])
+   AT_CHECK(
+     [ovs-openflowd --detach --pidfile --enable-dummy --log-file dummy at br0 none --datapath-id=fedcba9876543210 $1], 
+     [0], [ignore], [ignore])
+])
+
+m4_define([OFPROTO_STOP],
+  [AT_CHECK([ovs-appctl -t ovs-openflowd exit])
+   trap '' 0])
+
+AT_SETUP([ofproto - echo request])
+OFPROTO_START
+AT_CHECK([ovs-ofctl -vANY:ANY:WARN probe br0])
+OFPROTO_STOP
+AT_CLEANUP
+
+AT_SETUP([ofproto - feature request, config request])
+OFPROTO_START
+AT_CHECK([ovs-ofctl -vANY:ANY:WARN show br0], [0], [stdout])
+AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
+features_reply: ver:0x1, dpid:fedcba9876543210
+n_tables:2, n_buffers:256
+features: capabilities:0x87, actions:0xfff
+ LOCAL(br0): addr:aa:55:aa:55:00:00, config: 0x1, state:0x1
+get_config_reply: miss_send_len=0
+])
+OFPROTO_STOP
+AT_CLEANUP
+
+AT_SETUP([ofproto - mod-port])
+OFPROTO_START
+for command_config_state in \
+    'up 0 0' \
+    'noflood 0x10 0' \
+    'down 0x11 0x1' \
+    'flood 0x1 0x1'
+do
+    set $command_config_state
+    command=$[1] config=$[2] state=$[3]
+    AT_CHECK([ovs-ofctl -vANY:ANY:WARN mod-port br0 br0 $command])
+    AT_CHECK([ovs-ofctl -vANY:ANY:WARN show br0], [0], [stdout])
+    AT_CHECK_UNQUOTED([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
+features_reply: ver:0x1, dpid:fedcba9876543210
+n_tables:2, n_buffers:256
+features: capabilities:0x87, actions:0xfff
+ LOCAL(br0): addr:aa:55:aa:55:00:00, config: $config, state:$state
+get_config_reply: miss_send_len=0
+])
+done
+OFPROTO_STOP
+AT_CLEANUP
diff --git a/tests/testsuite.at b/tests/testsuite.at
index c6468d8..35b02be 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -53,6 +53,7 @@ m4_include([tests/jsonrpc-py.at])
 m4_include([tests/timeval.at])
 m4_include([tests/lockfile.at])
 m4_include([tests/reconnect.at])
+m4_include([tests/ofproto.at])
 m4_include([tests/ovsdb.at])
 m4_include([tests/ovs-vsctl.at])
 m4_include([tests/interface-reconfigure.at])
-- 
1.7.1





More information about the dev mailing list