test suite reviews and discussions
 help / color / mirror / Atom feed
From: Yong Liu <yong.liu@intel.com>
To: dts@dpdk.org
Subject: [dts] [PATCH V2 1/5] framework: remove useless nic list, replaced by port configuration file
Date: Fri, 13 Feb 2015 10:14:50 +0800	[thread overview]
Message-ID: <1423793694-14183-2-git-send-email-yong.liu@intel.com> (raw)
In-Reply-To: <1423793694-14183-1-git-send-email-yong.liu@intel.com>

DTS used to support different types of nic by parameter nic_type. But in the 
process of running, DTS only take first four ports for validation. This may 
be cause confusion.

Removed these logic for multi nic will be supported by port configuration 
file. In execution.cfg will only parse the first nic_type now.

Signed-off-by: Marvinliu <yong.liu@intel.com>
---
 framework/dts.py | 30 ++++++++++++++----------------
 framework/dut.py | 41 ++++++++++++++++++-----------------------
 2 files changed, 32 insertions(+), 39 deletions(-)

diff --git a/framework/dts.py b/framework/dts.py
index bddbe33..871380b 100644
--- a/framework/dts.py
+++ b/framework/dts.py
@@ -64,7 +64,7 @@ results_table_rows = []
 results_table_header = []
 performance_only = False
 functional_only = False
-nics = None
+nic = None
 requested_tests = None
 dut = None
 tester = None
@@ -151,13 +151,12 @@ def accepted_nic(pci_id):
     if pci_id not in NICS.values():
         return False
 
-    if 'any' in nics:
+    if 'any' in nic:
         return True
 
     else:
-        for selected_nic in nics:
-            if pci_id == NICS[selected_nic]:
-                return True
+        if pci_id == NICS[nic]:
+            return True
 
     return False
 
@@ -211,9 +210,9 @@ def dts_parse_config(section):
         if suite == '':
             test_suites.remove(suite)
 
-    nics = [_.strip() for _ in paramDict['nic_type'].split(',')]
+    nic = [_.strip() for _ in paramDict['nic_type'].split(',')][0]
 
-    return duts[0], targets, test_suites, nics
+    return duts[0], targets, test_suites, nic
 
 
 def get_project_obj(project_name, super_class, crbInst, serializer):
@@ -267,7 +266,7 @@ def dts_log_execution(log_handler):
         pass
 
 
-def dts_crbs_init(crbInst, skip_setup, read_cache, project, base_dir, nics):
+def dts_crbs_init(crbInst, skip_setup, read_cache, project, base_dir, nic):
     """
     Create dts dut/tester instance and initialize them.
     """
@@ -282,7 +281,7 @@ def dts_crbs_init(crbInst, skip_setup, read_cache, project, base_dir, nics):
     tester.dut = dut
     dut.set_speedup_options(read_cache, skip_setup)
     dut.set_directory(base_dir)
-    dut.set_nic_types(nics)
+    dut.set_nic_type(nic)
     tester.set_speedup_options(read_cache, skip_setup)
     show_speedup_options_messages(read_cache, skip_setup)
     dut.set_test_types(func_tests=functional_only, perf_tests=performance_only)
@@ -315,7 +314,7 @@ def dts_run_prerequisties(pkgName, patch):
         return False
 
 
-def dts_run_target(crbInst, targets, test_suites, nics):
+def dts_run_target(crbInst, targets, test_suites, nic):
     """
     Run each target in execution targets.
     """
@@ -336,8 +335,7 @@ def dts_run_target(crbInst, targets, test_suites, nics):
 
         if 'nic_type' not in paramDict:
             paramDict['nic_type'] = 'any'
-            nics = ['any']
-        nic = nics[0]
+            nic = ['any']
         result.nic = nic
 
         dts_run_suite(crbInst, test_suites, target, nic)
@@ -394,7 +392,7 @@ def run_all(config_file, pkgName, git, patch, skip_setup,
 
     global config
     global serializer
-    global nics
+    global nic
     global requested_tests
     global result
     global excel_report
@@ -446,7 +444,7 @@ def run_all(config_file, pkgName, git, patch, skip_setup,
         dts_parse_param(section)
 
         # verify if the delimiter is good if the lists are vertical
-        dutIP, targets, test_suites, nics = dts_parse_config(section)
+        dutIP, targets, test_suites, nic = dts_parse_config(section)
 
         log_handler.info("\nDUT " + dutIP)
 
@@ -465,14 +463,14 @@ def run_all(config_file, pkgName, git, patch, skip_setup,
         result.dut = dutIP
 
         # init dut, tester crb
-        dts_crbs_init(crbInst, skip_setup, read_cache, project, base_dir, nics)
+        dts_crbs_init(crbInst, skip_setup, read_cache, project, base_dir, nic)
 
         # Run DUT prerequisites
         if dts_run_prerequisties(pkgName, patch) is False:
             dts_crbs_exit()
             continue
 
-        dts_run_target(crbInst, targets, test_suites, nics)
+        dts_run_target(crbInst, targets, test_suites, nic)
 
         dts_crbs_exit()
 
diff --git a/framework/dut.py b/framework/dut.py
index e095d86..034a915 100644
--- a/framework/dut.py
+++ b/framework/dut.py
@@ -80,12 +80,12 @@ class Dut(Crb):
         self.send_expect("sed -i 's/%s=.*$/%s=%s/'  config/defconfig_%s" %
                          (parameter, parameter, value, target), "# ")
 
-    def set_nic_types(self, nics):
+    def set_nic_type(self, nic):
         """
         Set CRB NICS ready to validated.
         """
-        self.nics = nics
-        if 'cfg' in nics:
+        self.nic = nic
+        if 'cfg' in nic:
             self.conf.load_ports_config(self.get_ip_address())
 
     def set_toolchain(self, target):
@@ -304,11 +304,9 @@ class Dut(Crb):
             perf = self.want_perf_tests
 
         nictypes = []
-        if nic_type == 'any' and perf:
-            return ports
 
         for nic in NICS.keys():
-            if ('any' == nic_type) or (nic_type in nic):
+            if ('any' == nic_type) or ('cfg' == nic_type):
                 nictypes.append(nic)
 
         for portid in range(len(self.ports_info)):
@@ -427,20 +425,17 @@ class Dut(Crb):
         Check that whether auto scanned ports ready to use
         """
         pci_addr = "%s:%s" % (pci_bus, pci_id)
-        codenames = []
-        for nic in self.nics:
-            if nic == 'any':
-                return True
-            elif nic == 'cfg':
-                if self.conf.check_port_available(pci_bus) is True:
-                    return True
-            elif nic not in NICS.keys():
-                self.logger.warning("NOT SUPPORTED NIC TYPE: %s" % nic)
-            else:
-                codenames.append(NICS[nic])
-
-        if pci_id in codenames:
+        if self.nic == 'any':
             return True
+        elif self.nic == 'cfg':
+            if self.conf.check_port_available(pci_bus) is True:
+                return True
+        elif self.nic not in NICS.keys():
+            self.logger.warning("NOT SUPPORTED NIC TYPE: %s" % self.nic)
+        else:
+            codename = NICS[self.nic]
+            if pci_id == codename:
+                return True
 
         return False
 
@@ -482,8 +477,6 @@ class Dut(Crb):
             self.scan_ports_uncached()
             self.serializer.save(self.PORT_INFO_CACHE_KEY, self.ports_info)
 
-        self.logger.info(dts.pprint(self.ports_info))
-
     def scan_ports_uncached(self):
         """
         Scan ports and collect port's pci id, mac adress, ipv6 address.
@@ -569,8 +562,10 @@ class Dut(Crb):
             else:
                 port_cfg = {}
 
-            for key in ['intf', 'mac', 'numa', 'peer']:
+            for key in ['intf', 'mac', 'numa', 'peer', 'source']:
                 if key in port_cfg:
                     if key in port and port_cfg[key] != port[key]:
-                        self.logger.warning("CONGGURED %s NOT SAME AS SCANNED!!!" % (key.upper()))
+                        self.logger.warning("CONFIGURED %s NOT SAME AS SCANNED!!!" % (key.upper()))
                     port[key] = port_cfg[key]
+
+        self.logger.info(dts.pprint(self.ports_info))
-- 
1.9.3

  reply	other threads:[~2015-02-13  2:15 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-12  8:09 [dts] [PATCH 0/5] Support IXIA performance validation on one platform Yong Liu
2015-02-12  8:09 ` [dts] [PATCH 1/5] framework: remove useless nic list, replaced by port configuration file Yong Liu
2015-02-12  8:09 ` [dts] [PATCH 2/5] framework: support configure IXIA port as tester peer port Yong Liu
2015-02-12  8:09 ` [dts] [PATCH 3/5] framework: seperate killl scapy and kill DPDK application in kill_all function Yong Liu
2015-02-12  8:09 ` [dts] [PATCH 4/5] framework: optimize wirespeed calculation and " Yong Liu
2015-02-12  8:09 ` [dts] [PATCH 5/5] pmd: remove useless nic check function Yong Liu
2015-02-12  9:08 ` [dts] [PATCH 0/5] Support IXIA performance validation on one platform Qiu, Michael
2015-02-13  0:44   ` Liu, Yong
2015-02-13  2:14 ` [dts] [PATCH V2 " Yong Liu
2015-02-13  2:14   ` Yong Liu [this message]
2015-02-13  2:14   ` [dts] [PATCH V2 2/5] framework: support configure IXIA port as tester peer port Yong Liu
2015-02-13  2:14   ` [dts] [PATCH V2 3/5] framework: seperate killl scapy and kill DPDK application in kill_all function Yong Liu
2015-02-13  2:14   ` [dts] [PATCH V2 4/5] framework: optimize wirespeed calculation and " Yong Liu
2015-02-13  2:14   ` [dts] [PATCH V2 5/5] pmd: remove useless nic check function Yong Liu
2015-02-15  7:05   ` [dts] [PATCH V2 0/5] Support IXIA performance validation on one platform Qiu, Michael
2015-02-16  3:07 ` [dts] [PATCH V3 " Yong Liu
2015-02-16  3:07   ` [dts] [PATCH V3 1/5] framework: remove useless nic list, replaced by port configuration file Yong Liu
2015-02-16  3:07   ` [dts] [PATCH V3 2/5] framework: support configure IXIA port as tester peer port Yong Liu
2015-02-16  3:07   ` [dts] [PATCH V3 3/5] framework: seperate kill scapy and DPDK application in kill_all function Yong Liu
2015-02-16  3:07   ` [dts] [PATCH V3 4/5] framework: optimize wirespeed calculation and " Yong Liu
2015-02-16  3:07   ` [dts] [PATCH V3 5/5] pmd: remove useless nic check function Yong Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1423793694-14183-2-git-send-email-yong.liu@intel.com \
    --to=yong.liu@intel.com \
    --cc=dts@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).