This commit adds a unit test for the 'ovs-appctl stats/require-update'. Signed-off-by: Alex Wang <al...@nicira.com> --- tests/ovs-vswitchd.at | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+)
diff --git a/tests/ovs-vswitchd.at b/tests/ovs-vswitchd.at index c552741..562b3f7 100644 --- a/tests/ovs-vswitchd.at +++ b/tests/ovs-vswitchd.at @@ -25,3 +25,48 @@ AT_CAPTURE_FILE([ovs-vswitchd.log]) dnl ovs-vswitchd detached OK or we wouldn't have made it this far. Success. AT_CLEANUP + + +dnl ---------------------------------------------------------------------- +m4_define([OVS_VSCTL_CHECK_RX_PKT], [ +AT_CHECK([ovs-vsctl list int $1 | grep statistics | sed -n 's/^.*\(rx_packets=[[0-9]]\+\).*$/\1/p'],[0], +[dnl +rx_packets=$2 +]) +]) + +AT_SETUP([ovs-vswitchd -- stats/require-update]) +OVS_VSWITCHD_START([add-port br0 p1 -- set int p1 type=internal]) +ovs-appctl time/stop + +dnl at the beginning, the udpate of rx_packets should happen every 5 seconds. +for i in `seq 0 10`; do ovs-appctl time/warp 1000; done +OVS_VSCTL_CHECK_RX_PKT([p1], [0]) +AT_CHECK([ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) +for i in `seq 0 10`; do ovs-appctl time/warp 1000; done +OVS_VSCTL_CHECK_RX_PKT([p1], [1]) + +dnl disable the stats update, the following 'recv' should not be updated. +AT_CHECK([ovs-vsctl set O . other_config:disable-stats-update=true]) +for i in `seq 1 5`; do + AT_CHECK([ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) +done + +for i in `seq 0 50`; do + ovs-appctl time/warp 1000; + OVS_VSCTL_CHECK_RX_PKT([p1], [1]) +done + +dnl now force an update via ovs-appctl stats/require-update +AT_CHECK([ovs-appctl stats/require-update]) +for i in `seq 0 10`; do ovs-appctl time/warp 1000; done +OVS_VSCTL_CHECK_RX_PKT([p1], [6]) + +dnl turn off the disable-stats-udpate, the stats update should resume. +AT_CHECK([ovs-vsctl set O . other_config:disable-stats-update=false]) +AT_CHECK([ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)']) +for i in `seq 0 10`; do ovs-appctl time/warp 1000; done +OVS_VSCTL_CHECK_RX_PKT([p1], [7]) + +OVS_VSWITCHD_STOP +AT_CLEANUP \ No newline at end of file -- 1.7.9.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev