test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH V2] add vfio-pci cases to vf_packet_rxtx test suite, use a global config to determin vf driver
@ 2017-09-29  6:39 Yuwei Zhang
  2017-09-30 10:13 ` Liu, Yong
  0 siblings, 1 reply; 2+ messages in thread
From: Yuwei Zhang @ 2017-09-29  6:39 UTC (permalink / raw)
  To: dts; +Cc: Yuwei Zhang

Signed-off-by: Yuwei Zhang <yuwei1.zhang@intel.com>
---
 conf/global_suite.cfg             |  2 ++
 framework/config.py               | 28 +++++++++++++++++++++++++++-
 tests/TestSuite_vf_packet_rxtx.py | 30 ++++++++++++++++++++++--------
 3 files changed, 51 insertions(+), 9 deletions(-)
 create mode 100644 conf/global_suite.cfg

diff --git a/conf/global_suite.cfg b/conf/global_suite.cfg
new file mode 100644
index 0000000..d784fc5
--- /dev/null
+++ b/conf/global_suite.cfg
@@ -0,0 +1,2 @@
+[global]
+vf_driver=pci-stub
\ No newline at end of file
diff --git a/framework/config.py b/framework/config.py
index 9e514a7..80f1dd3 100644
--- a/framework/config.py
+++ b/framework/config.py
@@ -45,6 +45,7 @@ CRBCONF = "%s/crbs.cfg" % CONFIG_ROOT_PATH
 VIRTCONF = "%s/virt_global.cfg" % CONFIG_ROOT_PATH
 IXIACONF = "%s/ixia.cfg" % CONFIG_ROOT_PATH
 SUITECONF_SAMPLE = "%s/suite_sample.cfg" % CONFIG_ROOT_PATH
+GLOBALCONF = "%s/global_suite.cfg" % CONFIG_ROOT_PATH
 
 
 class UserConf():
@@ -87,11 +88,36 @@ class UserConf():
             paramDict[key] = value
         return paramDict
 
+class GlobalConf(UserConf):
+    def __init__(self):
+        self.global_cfg = {}
+        try:
+            self.global_conf = UserConf(GLOBALCONF)
+        except ConfigParseException:
+            self.global_conf = None
+        
+        # load global configuration
+        self.global_cfg = self.load_global_config()
+
+    def load_global_config(self, section_name='global'):
+        global_cfg = self.global_cfg.copy()
+        try:
+            section_confs = self.global_conf.load_section(section_name)
+        except:
+            print "FAILED FIND SECTION[%s] CONFIG!!!" % section_name
+            return global_cfg
+
+        if section_confs is None:
+            return global_cfg
 
+        global_cfg = dict(section_confs)
+        
+        return global_cfg
+        
 class SuiteConf(UserConf):
     def __init__(self, suite_name=""):
+        self.suite_cfg = GlobalConf().load_global_config()
         self.config_file = CONFIG_ROOT_PATH + os.sep + suite_name + ".cfg"
-        self.suite_cfg = {}
         try:
             self.suite_conf = UserConf(self.config_file)
         except ConfigParseException:
diff --git a/tests/TestSuite_vf_packet_rxtx.py b/tests/TestSuite_vf_packet_rxtx.py
index 50451f6..56d618c 100644
--- a/tests/TestSuite_vf_packet_rxtx.py
+++ b/tests/TestSuite_vf_packet_rxtx.py
@@ -12,6 +12,8 @@ VM_CORES_MASK = 'all'
 
 class TestVfPacketRxtx(TestCase):
 
+    supported_vf_driver = ['pci-stub', 'vfio-pci']
+
     def set_up_all(self):
 
         self.dut_ports = self.dut.get_ports(self.nic)
@@ -19,6 +21,18 @@ class TestVfPacketRxtx(TestCase):
         self.vm0 = None
         self.vm1 = None
 
+        # set vf assign method and vf driver
+        self.vf_driver = self.get_suite_cfg()['vf_driver']
+        if self.vf_driver is None:
+            self.vf_driver = 'pci-stub'
+        self.verify(self.vf_driver in self.supported_vf_driver, "Unspported vf driver")
+        if self.vf_driver == 'pci-stub':
+            self.vf_assign_method = 'pci-assign'
+        else:
+            self.vf_assign_method = 'vfio-pci'
+
+
+
     def set_up(self):
 
         self.setup_2pf_2vf_1vm_env_flag = 0
@@ -37,10 +51,10 @@ class TestVfPacketRxtx(TestCase):
         try:
 
             for port in self.sriov_vfs_port_0:
-                port.bind_driver('pci-stub')
+                port.bind_driver(self.vf_driver)
 
             for port in self.sriov_vfs_port_1:
-                port.bind_driver('pci-stub')
+                port.bind_driver(self.vf_driver)
 
             time.sleep(1)
             vf0_prop = {'opt_host': self.sriov_vfs_port_0[0].pci}
@@ -59,8 +73,8 @@ class TestVfPacketRxtx(TestCase):
 
             # set up VM0 ENV
             self.vm0 = QEMUKvm(self.dut, 'vm0', 'vf_packet_rxtx')
-            self.vm0.set_vm_device(driver='pci-assign', **vf0_prop)
-            self.vm0.set_vm_device(driver='pci-assign', **vf1_prop)
+            self.vm0.set_vm_device(driver=self.vf_assign_method, **vf0_prop)
+            self.vm0.set_vm_device(driver=self.vf_assign_method, **vf1_prop)
             self.vm_dut_0 = self.vm0.start()
             if self.vm_dut_0 is None:
                 raise Exception("Set up VM0 ENV failed!")
@@ -159,7 +173,7 @@ class TestVfPacketRxtx(TestCase):
 
             for port in self.sriov_vfs_port:
                 print port.pci
-                port.bind_driver('pci-stub')
+                port.bind_driver(self.vf_driver)
 
             time.sleep(1)
             vf0_prop = {'opt_host': self.sriov_vfs_port[0].pci}
@@ -181,14 +195,14 @@ class TestVfPacketRxtx(TestCase):
 
             # set up VM0 ENV
             self.vm0 = QEMUKvm(self.dut, 'vm0', 'vf_packet_rxtx')
-            self.vm0.set_vm_device(driver='pci-assign', **vf0_prop)
-            self.vm0.set_vm_device(driver='pci-assign', **vf1_prop)
+            self.vm0.set_vm_device(driver=self.vf_assign_method, **vf0_prop)
+            self.vm0.set_vm_device(driver=self.vf_assign_method, **vf1_prop)
             self.vm_dut_0 = self.vm0.start()
             if self.vm_dut_0 is None:
                 raise Exception("Set up VM0 ENV failed!")
             # set up VM1 ENV
             self.vm1 = QEMUKvm(self.dut, 'vm1', 'vf_packet_rxtx')
-            self.vm1.set_vm_device(driver='pci-assign', **vf2_prop)
+            self.vm1.set_vm_device(driver=self.vf_assign_method, **vf2_prop)
             self.vm_dut_1 = self.vm1.start()
             if self.vm_dut_1 is None:
                 raise Exception("Set up VM1 ENV failed!")
-- 
2.14.1.windows.1

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [dts] [PATCH V2] add vfio-pci cases to vf_packet_rxtx test suite, use a global config to determin vf driver
  2017-09-29  6:39 [dts] [PATCH V2] add vfio-pci cases to vf_packet_rxtx test suite, use a global config to determin vf driver Yuwei Zhang
@ 2017-09-30 10:13 ` Liu, Yong
  0 siblings, 0 replies; 2+ messages in thread
From: Liu, Yong @ 2017-09-30 10:13 UTC (permalink / raw)
  To: Yuwei Zhang, dts

Yuwei,
Please separate  your patch into two parts. The first part is the 
implementation of framework and relate config file.
The other part is the implementation in test suite. It will make each 
commit more clear.

Thanks,
Marvin

On 09/29/2017 02:39 PM, Yuwei Zhang wrote:
> Signed-off-by: Yuwei Zhang<yuwei1.zhang@intel.com>
> ---
>   conf/global_suite.cfg             |  2 ++
>   framework/config.py               | 28 +++++++++++++++++++++++++++-
>   tests/TestSuite_vf_packet_rxtx.py | 30 ++++++++++++++++++++++--------
>   3 files changed, 51 insertions(+), 9 deletions(-)
>   create mode 100644 conf/global_suite.cfg
>
> diff --git a/conf/global_suite.cfg b/conf/global_suite.cfg

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-09-30  1:31 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-29  6:39 [dts] [PATCH V2] add vfio-pci cases to vf_packet_rxtx test suite, use a global config to determin vf driver Yuwei Zhang
2017-09-30 10:13 ` Liu, Yong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).