[dts] [PATCH] framework: add port config pci bus id check suites: seperated checksum_offload function and performance port requirements
Yong Liu
yong.liu at intel.com
Thu Feb 5 03:18:34 CET 2015
Signed-off-by: Marvinliu <yong.liu at intel.com>
---
conf/ports.cfg | 2 +-
framework/config.py | 16 ++++++++++++++--
framework/dut.py | 5 +++--
tests/TestSuite_checksum_offload.py | 6 +++++-
4 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/conf/ports.cfg b/conf/ports.cfg
index 55e26d8..eb2cb34 100644
--- a/conf/ports.cfg
+++ b/conf/ports.cfg
@@ -5,5 +5,5 @@
# pci=Pci BDF,mac=Mac address,peer=Tester Pci BDF,numa=Port Numa
[DUT IP]
ports =
- pci=XX:XX.X,intf=eth0
+ pci=XX:XX.X,intf=eth0;
pci=YY:YY.Y,mac=XX:XX:XX:XX:XX:XX,peer=ZZ:ZZ.Z,numa=0
diff --git a/framework/config.py b/framework/config.py
index dc4f944..af014a8 100755
--- a/framework/config.py
+++ b/framework/config.py
@@ -33,6 +33,7 @@
Generic port and crbs configuration file load function
"""
+import re
import ConfigParser # config parse module
import argparse # prase arguments module
@@ -46,6 +47,7 @@ class UserConf():
self.port_config = port_conf
self.crb_config = crb_conf
self.ports_cfg = {}
+ self.pci_regex = "([\da-f]{2}:[\da-f]{2}.\d{1})$"
try:
self.port_conf = ConfigParser.SafeConfigParser()
self.port_conf.read(self.port_config)
@@ -61,20 +63,30 @@ class UserConf():
for port in self.port_conf.get(crb, 'ports').split(';')]
for port in ports:
- port_cfg = self.parse_port_param(port)
+ port_cfg = self.__parse_port_param(port)
+ # check pci BDF validity
if 'pci' not in port_cfg:
+ print "NOT FOUND CONFIG FOR NO PCI ADDRESS!!!"
+ continue
+ m = re.match(self.pci_regex, port_cfg['pci'])
+ if m is None:
print "INVALID CONFIG FOR NO PCI ADDRESS!!!"
+ continue
+
keys = port_cfg.keys()
keys.remove('pci')
self.ports_cfg[port_cfg['pci']] = {key: port_cfg[key] for key in keys}
+ def get_ports_config(self):
+ return self.ports_cfg
+
def check_port_available(self, pci_addr):
if pci_addr in self.ports_cfg.keys():
return True
else:
return False
- def parse_port_param(self, port):
+ def __parse_port_param(self, port):
portDict = dict()
for param in port.split(','):
diff --git a/framework/dut.py b/framework/dut.py
index cddc248..e095d86 100644
--- a/framework/dut.py
+++ b/framework/dut.py
@@ -562,8 +562,9 @@ class Dut(Crb):
"""
for port in self.ports_info:
pci_bus = port['pci']
- if pci_bus in self.conf.ports_cfg:
- port_cfg = self.conf.ports_cfg[pci_bus]
+ ports_cfg = self.conf.get_ports_config()
+ if pci_bus in ports_cfg:
+ port_cfg = ports_cfg[pci_bus]
port_cfg['source'] = 'cfg'
else:
port_cfg = {}
diff --git a/tests/TestSuite_checksum_offload.py b/tests/TestSuite_checksum_offload.py
index 05438b2..e353aaa 100644
--- a/tests/TestSuite_checksum_offload.py
+++ b/tests/TestSuite_checksum_offload.py
@@ -54,7 +54,7 @@ class TestChecksumOffload(TestCase):
Checksum offload prerequisites.
"""
# Based on h/w type, choose how many ports to use
- self.dut_ports = self.dut.get_ports_performance()
+ self.dut_ports = self.dut.get_ports()
# Verify that enough ports are available
self.verify(len(self.dut_ports) >= 2, "Insufficient ports for testing")
@@ -297,6 +297,10 @@ class TestChecksumOffload(TestCase):
"""
Test checksum offload performance.
"""
+ self.dut_ports = self.dut.get_ports_performance()
+ # Verify that enough ports are available
+ self.verify(len(self.dut_ports) >= 2, "Insufficient ports for testing")
+
# sizes = [64, 128, 256, 512, 1024]
sizes = [64, 128]
pkts = {
--
1.9.3
More information about the dts
mailing list