refactor verify_portstats and move to testutils
diff --git a/tests/FuncUtils.py b/tests/FuncUtils.py
index aa35221..0c55de6 100644
--- a/tests/FuncUtils.py
+++ b/tests/FuncUtils.py
@@ -512,56 +512,6 @@
self.assertEqual(expect_active, active ,"active counter is not incremented properly")
-def verify_portstats(self, port,tx_packets=None,rx_packets=None,rx_byte=None,tx_byte=None):
-
-
- stat_req = message.port_stats_request()
- stat_req.port_no = port
-
- for i in range(0,100):
- logging.info("Sending stats request")
- response, pkt = self.controller.transact(stat_req,
- timeout=5)
- self.assertTrue(response is not None,
- "No response to stats request")
- self.assertTrue(len(response.stats) == 1,
- "Did not receive port stats reply")
-
- sentp = recvp = 0
- sentb = recvb = 0
-
- for item in response.stats:
- sentp += item.tx_packets
- recvp += item.rx_packets
- recvb += item.rx_bytes
- sentb += item.tx_bytes
-
-
- logging.info("Sent " + str(sentp) + " packets")
- logging.info("Received " + str(recvp) + " packets")
- logging.info("Received " + str(recvb) + "bytes")
- logging.info("Sent" + str(sentb) + "bytes")
-
- if (tx_packets == None or tx_packets == sentp) and \
- (rx_packets == None or rx_packets == recvp) and \
- (tx_byte == None or tx_byte == sentb) and \
- (rx_byte == None or rx_byte == recvb):
- break
-
- sleep(0.1)
-
-
-
- if (tx_packets != None):
- self.assertEqual(tx_packets,item.tx_packets,"rx_packets counter is not incremented correctly")
- if (rx_packets != None):
- self.assertEqual(rx_packets,item.rx_packets,"tx_packets counter is not incremented correctly")
- if (rx_byte != None):
- self.assertEqual(rx_byte,item.rx_bytes,"rx_bytes counter is not incremented correctly")
- if (tx_byte != None):
- self.assertEqual(tx_byte,item.tx_bytes,"tx_bytes counter is not incremented correctly")
-
-
def verify_queuestats(self,port_num,queue_id,expect_packet=None,expect_byte=None):
# Verify queue counters : tx_packets and tx_bytes
diff --git a/tests/counters.py b/tests/counters.py
index d23cf75..c30ba51 100644
--- a/tests/counters.py
+++ b/tests/counters.py
@@ -164,17 +164,15 @@
(pkt, match ) = wildcard_all_except_ingress(self,of_ports)
# Send Port_Stats request for the ingress port (retrieve old counter state)
- (counter) = get_portstats(self,of_ports[0])
+ initial_stats = get_port_stats(self, of_ports[0])
# Send packets matching the flow
num_pkts = 5
for pkt_cnt in range(num_pkts):
self.dataplane.send(of_ports[0],str(pkt))
- pkts = num_pkts+counter[0]
-
#Verify recieved packet counters
- verify_portstats(self,of_ports[0],rx_packets=pkts)
+ verify_port_stats(self, of_ports[0], initial=initial_stats, rx_pkts=num_pkts)
class TxPktPerPort(base_tests.SimpleDataPlane):
@@ -198,18 +196,17 @@
#Insert a flow with match on all ingress port
(pkt,match) = wildcard_all_except_ingress(self,of_ports)
- # Send Port_Stats request for the ingress port (retrieve old counter state)
- (counter) = get_portstats(self,of_ports[1])
+ # Send Port_Stats request for the egress port (retrieve old counter state)
+ initial_stats = get_port_stats(self, of_ports[1])
#Send packets matching the flow
num_pkts = 5
for pkt_cnt in range(num_pkts):
self.dataplane.send(of_ports[0],str(pkt))
-
- pkts = num_pkts+counter[1]
#Verify transmitted_packet counters
- verify_portstats(self,of_ports[1],tx_packets=pkts)
+ verify_port_stats(self, of_ports[1], initial=initial_stats,
+ tx_pkts=num_pkts)
@@ -236,7 +233,7 @@
(pkt, match ) = wildcard_all_except_ingress(self,of_ports)
# Send Port_Stats request for the ingress port (retrieve current counter state)
- (counter) = get_portstats(self,of_ports[0])
+ initial_stats = get_port_stats(self, of_ports[0])
#Send packets matching the flow.
num_pkts = 5
@@ -244,10 +241,9 @@
for pkt_cnt in range(num_pkts):
self.dataplane.send(of_ports[0],str(pkt))
- byt_count = byte_count+counter[2]
-
#Verify recieved_bytes counters
- verify_portstats(self,of_ports[0],rx_byte=byt_count)
+ verify_port_stats(self, of_ports[0], initial=initial_stats,
+ rx_bytes=byte_count)
class TxBytPerPort(base_tests.SimpleDataPlane):
@@ -272,19 +268,18 @@
#Insert a flow with match on all ingress port
(pkt, match ) = wildcard_all_except_ingress(self,of_ports)
- # Send Port_Stats request for the ingress port (retrieve current counter state)
- (counter) = get_portstats(self,of_ports[1])
+ # Send Port_Stats request for the egress port (retrieve current counter state)
+ initial_stats = get_port_stats(self, of_ports[1])
#Send packets matching the flow.
num_pkts = 5
byte_count = num_pkts*len(str(pkt))
for pkt_cnt in range(num_pkts):
self.dataplane.send(of_ports[0],str(pkt))
-
- byt_count = byte_count+counter[3]
#Verify trasmitted_bytes counters
- verify_portstats(self,of_ports[1],tx_byte=byt_count)
+ verify_port_stats(self, of_ports[1], initial=initial_stats,
+ tx_bytes=byte_count)
class ActiveCount(base_tests.SimpleDataPlane):