From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 5422EDE3 for ; Fri, 29 Sep 2017 04:50:43 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Sep 2017 19:50:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,451,1500966000"; d="scan'208";a="1019684748" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga003.jf.intel.com with ESMTP; 28 Sep 2017 19:50:42 -0700 Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 28 Sep 2017 19:50:41 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 28 Sep 2017 19:50:41 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by shsmsx102.ccr.corp.intel.com ([169.254.2.175]) with mapi id 14.03.0319.002; Fri, 29 Sep 2017 10:50:39 +0800 From: "Liu, Yong" To: "Zhang, Yuwei1" , "dts@dpdk.org" CC: "Zhang, Yuwei1" Thread-Topic: [dts] [PATCH V1] Add vfio-pci cases to vf_packet_rxtx test suite. use a global configuration file to determin vf driver. Thread-Index: AQHTOMlYu3saklXDtUqmpOyA7EW1iqLLKUGQ Date: Fri, 29 Sep 2017 02:50:39 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E62EE540F@SHSMSX103.ccr.corp.intel.com> References: <20170929021628.20052-1-yuwei1.zhang@intel.com> In-Reply-To: <20170929021628.20052-1-yuwei1.zhang@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [PATCH V1] Add vfio-pci cases to vf_packet_rxtx test suite. use a global configuration file to determin vf driver. X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Sep 2017 02:50:44 -0000 Yuwei, One comment below. Thanks, Marvin > -----Original Message----- > From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of Yuwei Zhang > Sent: Friday, September 29, 2017 10:16 AM > To: dts@dpdk.org > Cc: Zhang, Yuwei1 > Subject: [dts] [PATCH V1] Add vfio-pci cases to vf_packet_rxtx test suite= . > use a global configuration file to determin vf driver. >=20 > Signed-off-by: Yuwei Zhang > --- > conf/global_suite.cfg | 2 ++ > framework/config.py | 26 ++++++++++++++++++++++++++ > framework/test_case.py | 11 +++++++++++ > tests/TestSuite_vf_packet_rxtx.py | 30 ++++++++++++++++++++++-------- > 4 files changed, 61 insertions(+), 8 deletions(-) > create mode 100644 conf/global_suite.cfg >=20 > diff --git a/conf/global_suite.cfg b/conf/global_suite.cfg > new file mode 100644 > index 0000000..b456477 > --- /dev/null > +++ b/conf/global_suite.cfg > @@ -0,0 +1,2 @@ > +[global] > +vf_driver=3Dvfio-pci > \ No newline at end of file > diff --git a/framework/config.py b/framework/config.py > index 9e514a7..5323b80 100644 > --- a/framework/config.py > +++ b/framework/config.py > @@ -45,6 +45,7 @@ CRBCONF =3D "%s/crbs.cfg" % CONFIG_ROOT_PATH > VIRTCONF =3D "%s/virt_global.cfg" % CONFIG_ROOT_PATH > IXIACONF =3D "%s/ixia.cfg" % CONFIG_ROOT_PATH > SUITECONF_SAMPLE =3D "%s/suite_sample.cfg" % CONFIG_ROOT_PATH > +GLOBALCONF =3D "%s/global_suite.cfg" % CONFIG_ROOT_PATH >=20 >=20 > class UserConf(): > @@ -87,7 +88,32 @@ class UserConf(): > paramDict[key] =3D value > return paramDict >=20 > +class GlobalConf(UserConf): > + def __init__(self): > + self.global_cfg =3D {} > + try: > + self.global_conf =3D UserConf(GLOBALCONF) > + except ConfigParseException: > + self.global_conf =3D None > + > + # load global configuration > + self.global_cfg =3D self.load_global_config() > + > + def load_global_config(self, section_name=3D'global'): > + global_cfg =3D self.global_cfg.copy() > + try: > + section_confs =3D 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 >=20 > + global_cfg =3D dict(section_confs) > + > + return global_cfg > + > class SuiteConf(UserConf): > def __init__(self, suite_name=3D""): > self.config_file =3D CONFIG_ROOT_PATH + os.sep + suite_name + > ".cfg" > diff --git a/framework/test_case.py b/framework/test_case.py > index c9d3574..be8c201 100644 > --- a/framework/test_case.py > +++ b/framework/test_case.py > @@ -44,6 +44,7 @@ from settings import PERF_SETTING, FUNC_SETTING, > DEBUG_SETTING, DEBUG_CASE_SETTI > from rst import RstReport > from test_result import ResultTable, Result > from logger import getLogger > +from config import GlobalConf > from config import SuiteConf >=20 > class TestCase(object): > @@ -109,6 +110,10 @@ class TestCase(object): > # create rst format report for this suite > self._rst_obj =3D RstReport('rst_report', target, self.nic, > self.suite_name, self._enable_perf) >=20 > + # load global config > + self._global_conf =3D GlobalConf() > + self._global_cfg =3D self._global_conf.global_cfg > + > # load suite configuration > self._suite_conf =3D SuiteConf(self.suite_name) > self._suite_cfg =3D self._suite_conf.suite_cfg We can combine suite configuration with global configuration here. This wil= l make suite handle configuration more easily. There's no need to add global concept in suite. > @@ -377,6 +382,12 @@ class TestCase(object): > """ > return self._suite_cfg >=20 > + def get_global_cfg(self): > + """ > + Return global based configuration > + """ > + return self._global_cfg > + > def execute_tear_downall(self): > """ > execute suite tear_down_all function > diff --git a/tests/TestSuite_vf_packet_rxtx.py > b/tests/TestSuite_vf_packet_rxtx.py > index 50451f6..30defbc 100644 > --- a/tests/TestSuite_vf_packet_rxtx.py > +++ b/tests/TestSuite_vf_packet_rxtx.py > @@ -12,6 +12,8 @@ VM_CORES_MASK =3D 'all' >=20 > class TestVfPacketRxtx(TestCase): >=20 > + supported_vf_driver =3D ['pci-stub', 'vfio-pci'] > + > def set_up_all(self): >=20 > self.dut_ports =3D self.dut.get_ports(self.nic) > @@ -19,6 +21,18 @@ class TestVfPacketRxtx(TestCase): > self.vm0 =3D None > self.vm1 =3D None >=20 > + # set vf assign method and vf driver > + self.vf_driver =3D self.get_global_cfg()['vf_driver'] > + if self.vf_driver is None: > + self.vf_driver =3D 'pci-stub' > + self.verify(self.vf_driver in self.supported_vf_driver, > "Unspported vf driver") > + if self.vf_driver =3D=3D 'pci-stub': > + self.vf_assign_method =3D 'pci-assign' > + else: > + self.vf_assign_method =3D 'vfio-pci' > + > + > + > def set_up(self): >=20 > self.setup_2pf_2vf_1vm_env_flag =3D 0 > @@ -37,10 +51,10 @@ class TestVfPacketRxtx(TestCase): > try: >=20 > for port in self.sriov_vfs_port_0: > - port.bind_driver('pci-stub') > + port.bind_driver(self.vf_driver) >=20 > for port in self.sriov_vfs_port_1: > - port.bind_driver('pci-stub') > + port.bind_driver(self.vf_driver) >=20 > time.sleep(1) > vf0_prop =3D {'opt_host': self.sriov_vfs_port_0[0].pci} > @@ -59,8 +73,8 @@ class TestVfPacketRxtx(TestCase): >=20 > # set up VM0 ENV > self.vm0 =3D QEMUKvm(self.dut, 'vm0', 'vf_packet_rxtx') > - self.vm0.set_vm_device(driver=3D'pci-assign', **vf0_prop) > - self.vm0.set_vm_device(driver=3D'pci-assign', **vf1_prop) > + self.vm0.set_vm_device(driver=3Dself.vf_assign_method, > **vf0_prop) > + self.vm0.set_vm_device(driver=3Dself.vf_assign_method, > **vf1_prop) > self.vm_dut_0 =3D self.vm0.start() > if self.vm_dut_0 is None: > raise Exception("Set up VM0 ENV failed!") > @@ -159,7 +173,7 @@ class TestVfPacketRxtx(TestCase): >=20 > for port in self.sriov_vfs_port: > print port.pci > - port.bind_driver('pci-stub') > + port.bind_driver(self.vf_driver) >=20 > time.sleep(1) > vf0_prop =3D {'opt_host': self.sriov_vfs_port[0].pci} > @@ -181,14 +195,14 @@ class TestVfPacketRxtx(TestCase): >=20 > # set up VM0 ENV > self.vm0 =3D QEMUKvm(self.dut, 'vm0', 'vf_packet_rxtx') > - self.vm0.set_vm_device(driver=3D'pci-assign', **vf0_prop) > - self.vm0.set_vm_device(driver=3D'pci-assign', **vf1_prop) > + self.vm0.set_vm_device(driver=3Dself.vf_assign_method, > **vf0_prop) > + self.vm0.set_vm_device(driver=3Dself.vf_assign_method, > **vf1_prop) > self.vm_dut_0 =3D self.vm0.start() > if self.vm_dut_0 is None: > raise Exception("Set up VM0 ENV failed!") > # set up VM1 ENV > self.vm1 =3D QEMUKvm(self.dut, 'vm1', 'vf_packet_rxtx') > - self.vm1.set_vm_device(driver=3D'pci-assign', **vf2_prop) > + self.vm1.set_vm_device(driver=3Dself.vf_assign_method, > **vf2_prop) > self.vm_dut_1 =3D self.vm1.start() > if self.vm_dut_1 is None: > raise Exception("Set up VM1 ENV failed!") > -- > 2.14.1.windows.1