From: Ben Pfaff Date: Thu, 2 Dec 2010 22:57:53 +0000 (-0800) Subject: tests: Add tests for ofproto code. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a2cb9dfdaf6d397005d992aa45b54d348ef7589e;p=openvswitch tests: Add tests for ofproto code. This first set of tests is pretty basic and uninteresting, but the infrastructure is now in place for adding more. --- diff --git a/tests/automake.mk b/tests/automake.mk index f9bd3687..c97684fc 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 00000000..3a1efe2a --- /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@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 c6468d85..35b02be3 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])