From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by dpdk.org (Postfix) with ESMTP id 7E4931B5F9 for ; Wed, 18 Oct 2017 10:41:51 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 972B41435; Wed, 18 Oct 2017 01:41:50 -0700 (PDT) Received: from phil-VirtualBox.shanghai.arm.com (phil-virtualbox.shanghai.arm.com [10.169.38.30]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 9D0283F25D; Wed, 18 Oct 2017 01:41:49 -0700 (PDT) From: Phil Yang To: dts@dpdk.org Cc: nd@arm.com, Jianbo.Liu@arm.com, Herber.Guan@arm.com, huilongx.xu@intel.com, phil.yang@arm.com Date: Wed, 18 Oct 2017 16:41:35 +0800 Message-Id: <1508316095-16282-1-git-send-email-phil.yang@arm.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1508149361-7628-1-git-send-email-phil.yang@arm.com> References: <1508149361-7628-1-git-send-email-phil.yang@arm.com> Subject: [dts] [PATCH v2] tests/hotplug: fix some failure cases 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: Wed, 18 Oct 2017 08:41:51 -0000 1. Updated testpmd path for multiarch. 2. Fix port binding timeout in tear-down process. 3. Add vfio-pci and vfio-pci:noiommu support. 3. Clear packets stats before packet send to avoid test errors caused by broadcast packets. Signed-off-by: Phil Yang --- tests/TestSuite_hotplug.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/tests/TestSuite_hotplug.py b/tests/TestSuite_hotplug.py index 7704253..c0e1741 100644 --- a/tests/TestSuite_hotplug.py +++ b/tests/TestSuite_hotplug.py @@ -47,7 +47,7 @@ from packet import Packet, sniff_packets, load_sniff_packets class TestPortHotPlug(TestCase): """ - This feature only supports igb_uio now and not support freebsd + This feature supports igb_uio, vfio-pci and vfio-pci:noiommu now and not support freebsd """ def set_up_all(self): """ @@ -58,6 +58,10 @@ class TestPortHotPlug(TestCase): cores = self.dut.get_core_list("1S/4C/1T") self.coremask = utils.create_mask(cores) self.port = len(self.dut_ports) - 1 + if self.drivername == "vfio-pci:noiommu": + self.driver_name = "vfio-pci" + else: + self.driver_name = self.drivername def set_up(self): """ @@ -69,8 +73,8 @@ class TestPortHotPlug(TestCase): """ attach port """ - # dpdk hotplug discern NIC by pci bus not include domid - self.dut.send_expect("port attach %s" % self.dut.ports_info[port]['pci'][len("0000:"):],"is attached",60) + # dpdk hotplug discern NIC by pci bus and include domid + self.dut.send_expect("port attach %s" % self.dut.ports_info[port]['pci'],"is attached",60) self.dut.send_expect("port start %s" % port,"Configuring Port",120) # sleep 10 seconds for fortville update link stats time.sleep(10) @@ -90,10 +94,10 @@ class TestPortHotPlug(TestCase): """ first run testpmd after attach port """ - cmd = "./x86_64-native-linuxapp-gcc/app/testpmd -c %s -n %s -- -i" % (self.coremask,self.dut.get_memory_channels()) + cmd = "./%s/app/testpmd -c %s -n %s -- -i" % (self.target,self.coremask,self.dut.get_memory_channels()) self.dut.send_expect(cmd,"testpmd>",60) session_secondary = self.dut.new_session() - session_secondary.send_expect("./usertools/dpdk-devbind.py --bind=igb_uio %s" % self.dut.ports_info[self.port]['pci'], "#", 60) + session_secondary.send_expect("./usertools/dpdk-devbind.py --bind=%s %s" % (self.driver_name, self.dut.ports_info[self.port]['pci']), "#", 60) self.dut.close_session(session_secondary) self.attach(self.port) self.dut.send_expect("start","testpmd>",60) @@ -104,6 +108,7 @@ class TestPortHotPlug(TestCase): self.dut.send_expect("start","testpmd>",60) self.dut.send_expect("port detach %s" % self.port,"Please close port first",60) + self.dut.send_expect("clear port stats %s" % self.port ,"testpmd>",60) self.send_packet(self.port) out = self.dut.send_expect("show port stats %s" % self.port ,"testpmd>",60) packet = re.search("RX-packets:\s*(\d*)",out) @@ -127,14 +132,16 @@ class TestPortHotPlug(TestCase): first attach port after run testpmd """ session_secondary = self.dut.new_session() - session_secondary.send_expect("./usertools/dpdk-devbind.py --bind=igb_uio %s" % self.dut.ports_info[self.port]['pci'], "#", 60) + session_secondary.send_expect("./usertools/dpdk-devbind.py --bind=%s %s" % (self.driver_name, self.dut.ports_info[self.port]['pci']), "#", 60) self.dut.close_session(session_secondary) - cmd = "./x86_64-native-linuxapp-gcc/app/testpmd -c %s -n %s -- -i" % (self.coremask,self.dut.get_memory_channels()) + cmd = "./%s/app/testpmd -c %s -n %s -- -i" % (self.target,self.coremask,self.dut.get_memory_channels()) self.dut.send_expect(cmd,"testpmd>",60) self.detach(self.port) self.attach(self.port) + self.dut.send_expect("start","testpmd>",60) self.dut.send_expect("port detach %s" % self.port, "Please close port first",60) + self.dut.send_expect("clear port stats %s" % self.port ,"testpmd>",60) self.send_packet(self.port) out = self.dut.send_expect("show port stats %s" % self.port ,"testpmd>",60) packet = re.search("RX-packets:\s*(\d*)",out) @@ -147,8 +154,8 @@ class TestPortHotPlug(TestCase): """ Run after each test case. """ - self.dut.send_expect("./usertools/dpdk-devbind.py --bind=igb_uio %s" % self.dut.ports_info[self.port]['pci'],"#",60) self.dut.kill_all() + self.dut.send_expect("./usertools/dpdk-devbind.py --bind=%s %s" % (self.driver_name, self.dut.ports_info[self.port]['pci']), "#", 60) time.sleep(2) -- 2.7.4