From patchwork Fri May 27 05:53:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Jiale, SongX" X-Patchwork-Id: 111962 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 35EECA0560; Fri, 27 May 2022 07:53:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C22BA4114A; Fri, 27 May 2022 07:53:13 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 744B440E25 for ; Fri, 27 May 2022 07:53:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653630792; x=1685166792; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=inKd9rX1jDtwMOdrNDzwFNZMRIqPH726hRtLG8FZaWk=; b=EAsnLHCnENAkA4dG0P0jK09yE8DXElqGhwPARs2JMOKwcFDffaRrnhyL s9XmRZEH8uhkRcFBC6fB52dA6qOFZPPVy5JfrL+ykARPyshbaL6wXMA7S qImFat9OJDbxGiEzy1Uir82PL2X1MctZZRxDQfuSL+yipCrraLVARZNaw pYAfQ35jd5gyJjOBwc5oKQ6rKPykpyStIGN8rUfMljBC5wXCeiBB6FNvS xD/tNzAxyhS7mu3nfythUkBh0a6ykykKddFJH/HbTawpxppdm6ocQoNa8 qXfq7fViNrLA72/RwCTdzzYhhyNCxwnQ5wfmSOfqjB6BkKrFRAV5sRhE6 A==; X-IronPort-AV: E=McAfee;i="6400,9594,10359"; a="256460427" X-IronPort-AV: E=Sophos;i="5.91,254,1647327600"; d="scan'208";a="256460427" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 May 2022 22:53:09 -0700 X-IronPort-AV: E=Sophos;i="5.91,254,1647327600"; d="scan'208";a="603668480" Received: from unknown (HELO daily-regression-131.intel.com) ([10.239.251.131]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 May 2022 22:53:08 -0700 From: Jiale Song To: dts@dpdk.org Cc: Jiale Song Subject: [dts] [PATCH V1] tests/userspace_ethtool: fix script Date: Fri, 27 May 2022 13:53:04 +0800 Message-Id: <20220527055304.179776-2-songx.jiale@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220527055304.179776-1-songx.jiale@intel.com> References: <20220527055304.179776-1-songx.jiale@intel.com> MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org fix 4 issue: 1.check and wait for the port status of the tester and dut to be up and delete some unnecessary delays. 2.700 Series not support port disconnect by tools of linux, add 'I40E_10G-10G_BASE_T_X722' and 'I40E_10G-10G_BASE_T_BC'. 3.ensure that the dpdk app has exited and rebind the driver. 4.the driver of 'IGC-I225_LM' is i40e, not support the case, add to checklist. Signed-off-by: Jiale Song --- conf/test_case_checklist.json | 3 ++- tests/TestSuite_userspace_ethtool.py | 29 ++++++++++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) mode change 100755 => 100644 tests/TestSuite_userspace_ethtool.py diff --git a/conf/test_case_checklist.json b/conf/test_case_checklist.json index 2185fcaf..87882f60 100644 --- a/conf/test_case_checklist.json +++ b/conf/test_case_checklist.json @@ -2131,7 +2131,8 @@ "I40E_10G-SFP_X722", "I40E_10G-10G_BASE_T_X722", "IAVF_10G-X722_VF", - "I40E_10G-10G_BASE_T_BC" + "I40E_10G-10G_BASE_T_BC", + "IGC-I225_LM" ], "Target": [ "ALL" diff --git a/tests/TestSuite_userspace_ethtool.py b/tests/TestSuite_userspace_ethtool.py old mode 100755 new mode 100644 index 8a056ea2..a0a6f9c2 --- a/tests/TestSuite_userspace_ethtool.py +++ b/tests/TestSuite_userspace_ethtool.py @@ -55,7 +55,7 @@ class TestUserspaceEthtool(TestCase): """ self.ports = self.dut.get_ports() self.verify(len(self.ports) >= 2, "No ports found for " + self.nic) - + self.other_700_nic = ['I40E_10G-10G_BASE_T_X722', 'I40E_10G-10G_BASE_T_BC'] # build sample app out = self.dut.build_dpdk_apps("examples/ethtool") self.verify("Error" not in out, "compilation error 1") @@ -290,18 +290,21 @@ class TestUserspaceEthtool(TestCase): portinfo["net_dev"].bind_driver(portinfo["ori_driver"]) self.dut.send_expect(self.cmd, "EthApp>", 60) + for port in self.ports: + tester_port = self.tester.get_local_port(port) + intf = self.tester.get_interface(tester_port) + self.tester.is_interface_up(intf) # ethtool doesn't support port disconnect by tools of linux # only detect physical link disconnect status verify_pass = True verify_msg = "" - if not (self.is_eth_series_nic(700) or self.is_eth_series_nic(800)): + if not (self.is_eth_series_nic(700) or self.other_700_nic or self.is_eth_series_nic(800)): # check link status dump function for port in self.ports: tester_port = self.tester.get_local_port(port) intf = self.tester.get_interface(tester_port) self.tester.send_expect("ip link set dev %s down" % intf, "# ") - # wait for link stable - time.sleep(5) + self.tester.is_interface_down(intf) out = self.dut.send_expect("link", "EthApp>", 60) link_pattern = r"Port (\d+): (.*)" @@ -326,8 +329,7 @@ class TestUserspaceEthtool(TestCase): tester_port = self.tester.get_local_port(port) intf = self.tester.get_interface(tester_port) self.tester.send_expect("ip link set dev %s up" % intf, "# ") - # wait for link stable - time.sleep(5) + self.tester.is_interface_up(intf) # check port stats function pkt = Packet(pkt_type="UDP") @@ -474,12 +476,13 @@ class TestUserspaceEthtool(TestCase): ) pkt = Packet(pkt_type="UDP") tester_port = self.tester.get_local_port(port) + intf = self.tester.get_interface(tester_port) + self.tester.is_interface_up(intf) self.verify( self.ethapp_check_link_status(index, "Up") == True, "Fail to Open port{}".format(index), ) - - intf = self.tester.get_interface(tester_port) + time.sleep(1) pkt.send_pkt(self.tester, tx_port=intf, count=4) rx_pkts, tx_pkts = self.strip_portstats(index) self.verify( @@ -559,6 +562,7 @@ class TestUserspaceEthtool(TestCase): pkt = Packet(pkt_type="UDP") tester_port = self.tester.get_local_port(port) intf = self.tester.get_interface(tester_port) + self.tester.is_interface_up(intf) pkt.send_pkt(self.tester, tx_port=intf, count=4) rx_pkts, tx_pkts = self.strip_portstats(index) self.verify(rx_pkts == ori_rx_pkts, "Failed to stop port") @@ -602,7 +606,6 @@ class TestUserspaceEthtool(TestCase): # IntelĀ® Ethernet 800 Series should stop port before set mtu if self.nic in ["ICE_25G-E810C_SFP", "ICE_100G-E810C_QSFP"]: self.dut.send_expect("stop %s" % index, "EthApp>") - # The mtu threshold is 2022,When it is greater than 2022, the open/stop port is required. if mtu > mtu_threshold: if self.nic in [ @@ -619,7 +622,10 @@ class TestUserspaceEthtool(TestCase): if self.nic in ["ICE_25G-E810C_SFP", "ICE_100G-E810C_QSFP"]: self.dut.send_expect("open %s" % index, "EthApp>") - time.sleep(5) + self.tester.is_interface_up(intf) + self.verify( + self.ethapp_check_link_status(index, "Up") == True, + "Fail to Open port{}".format(index)) ori_rx_pkts, _ = self.strip_portstats(index) pkt_size = mtu + HEADER_SIZE["eth"] + offset pkt = Packet(pkt_type="UDP", pkt_len=pkt_size) @@ -704,9 +710,8 @@ class TestUserspaceEthtool(TestCase): """ Run after each test case. """ - self.dut.bind_interfaces_linux(self.drivername) self.dut.kill_all() - pass + self.dut.bind_interfaces_linux(self.drivername) def tear_down_all(self): """