From patchwork Mon Nov 14 07:27:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Li, HongboX" X-Patchwork-Id: 119816 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 C3BFDA0C1C; Mon, 14 Nov 2022 09:26:48 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 99B3840150; Mon, 14 Nov 2022 09:26:48 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mails.dpdk.org (Postfix) with ESMTP id 232104014F for ; Mon, 14 Nov 2022 09:26:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1668414406; x=1699950406; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=54EInaLwnBJoqrAQ975Eub/vW+igp65vxVAT+x06Tec=; b=HNhSXRQ/KoQAJtEyn2O4JFaT9ZC09wx6KSek6k/jt6Qh/S/YSu0tQvUV zAD1qQOqheK3wcN1v2UEEP9KxdGl9nnkb7Y9A+9uQyWsucqSQT3e4Isb6 mSd9lYQrAbdHdoFQ0f22RTotdJtc4DIZ5YP/jNUUYwZl7cB0BqgNg3vK+ lvzLPitZya04khqvR0aRYGHFMw1lYCXmvDyUx6TrGZH59njicvP2n9Pm/ ZdA0pMpeOp+dOZfb4q5vaKXszspNq4otGcJc9jSrvmkfTXlBOfHwe29K+ GUIDdDf2cmakXGvwQsTtLKVp6XdP5C4+MkBdvVHuFS6chjH/b1ST1KDOX A==; X-IronPort-AV: E=McAfee;i="6500,9779,10530"; a="311917011" X-IronPort-AV: E=Sophos;i="5.96,161,1665471600"; d="scan'208";a="311917011" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Nov 2022 00:26:44 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10530"; a="638387497" X-IronPort-AV: E=Sophos;i="5.96,161,1665471600"; d="scan'208";a="638387497" Received: from unknown (HELO localhost.localdomain) ([10.239.252.19]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Nov 2022 00:26:43 -0800 From: Hongbo Li To: dts@dpdk.org Cc: Hongbo Li Subject: [dts][PATCH V1] tests/TestSuite_ice_iavf_fdir:ensure that the environment can be cleaned up after an exception occurs in the case Date: Mon, 14 Nov 2022 07:27:04 +0000 Message-Id: <20221114072704.124179-1-hongbox.li@intel.com> X-Mailer: git-send-email 2.25.1 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 1.If testcase throws an exception, the vf will not be cleaned, and cause other cases to fail. 2.By adding finally statements, the case will clean up the test environment whether it passes or not. Signed-off-by: Hongbo Li --- tests/TestSuite_ice_iavf_fdir.py | 297 ++++++++++++++++--------------- 1 file changed, 149 insertions(+), 148 deletions(-) diff --git a/tests/TestSuite_ice_iavf_fdir.py b/tests/TestSuite_ice_iavf_fdir.py index d6ca832a..453b36cb 100644 --- a/tests/TestSuite_ice_iavf_fdir.py +++ b/tests/TestSuite_ice_iavf_fdir.py @@ -10283,166 +10283,167 @@ class TestICEIAVFFdir(TestCase): self.session_third.send_expect("ifconfig %s up" % self.pf1_intf, "# ", 15) time.sleep(1) - # send matched packets - self.tester.scapy_append( - 'sendp([%s], iface="%s")' % (pkts["pf"][0], self.tester_iface0) - ) - self.tester.scapy_append( - 'sendp([%s], iface="%s")' % (pkts["pf"][1], self.tester_iface1) - ) - self.tester.scapy_execute() - time.sleep(1) - - out_pf0 = self.session_third.send_expect("ethtool -S %s" % self.pf0_intf, "# ") - self.verify( - "rx_queue_1_packets: 1" in out_pf0, - "the packet is not redirected to expected queue of pf0", - ) - out_pf1 = self.session_third.send_expect("ethtool -S %s" % self.pf1_intf, "# ") - self.verify("rx_dropped: 1" in out_pf1, "the packet is not dropped pf1") - - out_vf00 = self.send_pkts_getouput(pkts["matched"][0]) - rfc.check_iavf_fdir_mark( - out_vf00, pkt_num=1, check_param={"port_id": 0, "queue": [2, 3]}, stats=True - ) - out_vf01 = self.send_pkts_getouput(pkts["matched"][1]) - rfc.check_iavf_fdir_mark( - out_vf01, - pkt_num=1, - check_param={"port_id": 1, "queue": 6, "mark_id": 0}, - stats=True, - ) - - self.send_packets(pkts["matched"][2], pf_id=1) - out_info = self.session_secondary.get_session_before(timeout=2) - out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") - out_vf10 = out_info + out_pkt - self.session_secondary.send_expect("start", "testpmd> ") - rfc.check_iavf_fdir_mark( - out_vf10, - pkt_num=1, - check_param={"port_id": 0, "queue": 6, "mark_id": 1}, - stats=True, - ) + try: + # send matched packets + self.tester.scapy_append( + 'sendp([%s], iface="%s")' % (pkts["pf"][0], self.tester_iface0) + ) + self.tester.scapy_append( + 'sendp([%s], iface="%s")' % (pkts["pf"][1], self.tester_iface1) + ) + self.tester.scapy_execute() + time.sleep(1) - self.send_packets(pkts["matched"][3], pf_id=1) - out_info = self.session_secondary.get_session_before(timeout=2) - out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") - out_vf11 = out_info + out_pkt - self.session_secondary.send_expect("start", "testpmd> ") - rfc.check_iavf_fdir_mark( - out_vf11, pkt_num=1, check_param={"port_id": 1, "drop": 1}, stats=True - ) + out_pf0 = self.session_third.send_expect("ethtool -S %s" % self.pf0_intf, "# ") + self.verify( + "rx_queue_1_packets: 1" in out_pf0, + "the packet is not redirected to expected queue of pf0", + ) + out_pf1 = self.session_third.send_expect("ethtool -S %s" % self.pf1_intf, "# ") + self.verify("rx_dropped: 1" in out_pf1, "the packet is not dropped pf1") - # send mismatched packets - out_vf00 = self.send_pkts_getouput(pkts["mismatched"][0]) - rfc.check_iavf_fdir_mark( - out_vf00, - pkt_num=1, - check_param={"port_id": 0, "queue": [2, 3]}, - stats=False, - ) - out_vf01 = self.send_pkts_getouput(pkts["mismatched"][1]) - rfc.check_iavf_fdir_mark( - out_vf01, - pkt_num=1, - check_param={"port_id": 1, "queue": 6, "mark_id": 0}, - stats=False, - ) + out_vf00 = self.send_pkts_getouput(pkts["matched"][0]) + rfc.check_iavf_fdir_mark( + out_vf00, pkt_num=1, check_param={"port_id": 0, "queue": [2, 3]}, stats=True + ) + out_vf01 = self.send_pkts_getouput(pkts["matched"][1]) + rfc.check_iavf_fdir_mark( + out_vf01, + pkt_num=1, + check_param={"port_id": 1, "queue": 6, "mark_id": 0}, + stats=True, + ) - self.send_packets(pkts["mismatched"][2], pf_id=1) - out_info = self.session_secondary.get_session_before(timeout=2) - out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") - out_vf10 = out_info + out_pkt - self.session_secondary.send_expect("start", "testpmd> ") - rfc.check_iavf_fdir_mark( - out_vf10, - pkt_num=1, - check_param={"port_id": 0, "queue": 6, "mark_id": 1}, - stats=False, - ) + self.send_packets(pkts["matched"][2], pf_id=1) + out_info = self.session_secondary.get_session_before(timeout=2) + out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") + out_vf10 = out_info + out_pkt + self.session_secondary.send_expect("start", "testpmd> ") + rfc.check_iavf_fdir_mark( + out_vf10, + pkt_num=1, + check_param={"port_id": 0, "queue": 6, "mark_id": 1}, + stats=True, + ) - self.send_packets(pkts["mismatched"][3], pf_id=1) - out_info = self.session_secondary.get_session_before(timeout=2) - out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") - out_vf11 = out_info + out_pkt - self.session_secondary.send_expect("start", "testpmd> ") - rfc.check_iavf_fdir_mark( - out_vf11, pkt_num=1, check_param={"port_id": 1, "drop": 1}, stats=False - ) + self.send_packets(pkts["matched"][3], pf_id=1) + out_info = self.session_secondary.get_session_before(timeout=2) + out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") + out_vf11 = out_info + out_pkt + self.session_secondary.send_expect("start", "testpmd> ") + rfc.check_iavf_fdir_mark( + out_vf11, pkt_num=1, check_param={"port_id": 1, "drop": 1}, stats=True + ) - # flush all the rules - self.dut.send_expect("flow flush 0", "testpmd> ") - self.dut.send_expect("flow flush 1", "testpmd> ") - self.session_secondary.send_expect("flow flush 0", "testpmd> ") - self.session_secondary.send_expect("flow flush 1", "testpmd> ") + # send mismatched packets + out_vf00 = self.send_pkts_getouput(pkts["mismatched"][0]) + rfc.check_iavf_fdir_mark( + out_vf00, + pkt_num=1, + check_param={"port_id": 0, "queue": [2, 3]}, + stats=False, + ) + out_vf01 = self.send_pkts_getouput(pkts["mismatched"][1]) + rfc.check_iavf_fdir_mark( + out_vf01, + pkt_num=1, + check_param={"port_id": 1, "queue": 6, "mark_id": 0}, + stats=False, + ) - self.session_third.send_expect( - "ethtool -N %s delete %d" % (self.pf0_intf, int(m0.group(1))), "# " - ) - self.session_third.send_expect( - "ethtool -N %s delete %d" % (self.pf1_intf, int(m1.group(1))), "# " - ) - self.session_third.send_expect( - "ethtool -n %s" % (self.pf0_intf), "Total 0 rules" - ) - self.session_third.send_expect( - "ethtool -n %s" % (self.pf1_intf), "Total 0 rules" - ) + self.send_packets(pkts["mismatched"][2], pf_id=1) + out_info = self.session_secondary.get_session_before(timeout=2) + out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") + out_vf10 = out_info + out_pkt + self.session_secondary.send_expect("start", "testpmd> ") + rfc.check_iavf_fdir_mark( + out_vf10, + pkt_num=1, + check_param={"port_id": 0, "queue": 6, "mark_id": 1}, + stats=False, + ) - # send matched packets - self.tester.scapy_append( - 'sendp([%s], iface="%s")' % (pkts["pf"][0], self.tester_iface0) - ) - self.tester.scapy_append( - 'sendp([%s], iface="%s")' % (pkts["pf"][1], self.tester_iface1) - ) - self.tester.scapy_execute() + self.send_packets(pkts["mismatched"][3], pf_id=1) + out_info = self.session_secondary.get_session_before(timeout=2) + out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") + out_vf11 = out_info + out_pkt + self.session_secondary.send_expect("start", "testpmd> ") + rfc.check_iavf_fdir_mark( + out_vf11, pkt_num=1, check_param={"port_id": 1, "drop": 1}, stats=False + ) - out_pf0 = self.session_third.send_expect("ethtool -S %s" % self.pf0_intf, "# ") - self.verify("rx_queue_1_packets: 1" in out_pf0, "the rule is not destroyed") - out_pf1 = self.session_third.send_expect("ethtool -S %s" % self.pf1_intf, "# ") - self.verify("rx_dropped: 1" in out_pf1, "the packet is dropped by pf1") + # flush all the rules + self.dut.send_expect("flow flush 0", "testpmd> ") + self.dut.send_expect("flow flush 1", "testpmd> ") + self.session_secondary.send_expect("flow flush 0", "testpmd> ") + self.session_secondary.send_expect("flow flush 1", "testpmd> ") - # send mismatched packets - out_vf00 = self.send_pkts_getouput(pkts["matched"][0]) - rfc.check_iavf_fdir_mark( - out_vf00, - pkt_num=1, - check_param={"port_id": 0, "queue": [2, 3]}, - stats=False, - ) - out_vf01 = self.send_pkts_getouput(pkts["matched"][1]) - rfc.check_iavf_fdir_mark( - out_vf01, - pkt_num=1, - check_param={"port_id": 1, "queue": 6, "mark_id": 0}, - stats=False, - ) + self.session_third.send_expect( + "ethtool -N %s delete %d" % (self.pf0_intf, int(m0.group(1))), "# " + ) + self.session_third.send_expect( + "ethtool -N %s delete %d" % (self.pf1_intf, int(m1.group(1))), "# " + ) + self.session_third.send_expect( + "ethtool -n %s" % (self.pf0_intf), "Total 0 rules" + ) + self.session_third.send_expect( + "ethtool -n %s" % (self.pf1_intf), "Total 0 rules" + ) - self.send_packets(pkts["matched"][2], pf_id=1) - out_info = self.session_secondary.get_session_before(timeout=2) - out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") - out_vf10 = out_info + out_pkt - self.session_secondary.send_expect("start", "testpmd> ") - rfc.check_iavf_fdir_mark( - out_vf10, - pkt_num=1, - check_param={"port_id": 0, "queue": 6, "mark_id": 1}, - stats=False, - ) + # send matched packets + self.tester.scapy_append( + 'sendp([%s], iface="%s")' % (pkts["pf"][0], self.tester_iface0) + ) + self.tester.scapy_append( + 'sendp([%s], iface="%s")' % (pkts["pf"][1], self.tester_iface1) + ) + self.tester.scapy_execute() + + out_pf0 = self.session_third.send_expect("ethtool -S %s" % self.pf0_intf, "# ") + self.verify("rx_queue_1_packets: 1" in out_pf0, "the rule is not destroyed") + out_pf1 = self.session_third.send_expect("ethtool -S %s" % self.pf1_intf, "# ") + self.verify("rx_dropped: 1" in out_pf1, "the packet is dropped by pf1") + + # send mismatched packets + out_vf00 = self.send_pkts_getouput(pkts["matched"][0]) + rfc.check_iavf_fdir_mark( + out_vf00, + pkt_num=1, + check_param={"port_id": 0, "queue": [2, 3]}, + stats=False, + ) + out_vf01 = self.send_pkts_getouput(pkts["matched"][1]) + rfc.check_iavf_fdir_mark( + out_vf01, + pkt_num=1, + check_param={"port_id": 1, "queue": 6, "mark_id": 0}, + stats=False, + ) - self.send_packets(pkts["matched"][3], pf_id=1) - out_info = self.session_secondary.get_session_before(timeout=2) - out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") - out_vf11 = out_info + out_pkt - self.session_secondary.send_expect("start", "testpmd> ") - rfc.check_iavf_fdir_mark( - out_vf11, pkt_num=1, check_param={"port_id": 1, "drop": 1}, stats=False - ) + self.send_packets(pkts["matched"][2], pf_id=1) + out_info = self.session_secondary.get_session_before(timeout=2) + out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") + out_vf10 = out_info + out_pkt + self.session_secondary.send_expect("start", "testpmd> ") + rfc.check_iavf_fdir_mark( + out_vf10, + pkt_num=1, + check_param={"port_id": 0, "queue": 6, "mark_id": 1}, + stats=False, + ) - self.dut.close_session(self.session_secondary) - self.dut.close_session(self.session_third) + self.send_packets(pkts["matched"][3], pf_id=1) + out_info = self.session_secondary.get_session_before(timeout=2) + out_pkt = self.session_secondary.send_expect("stop", "testpmd> ") + out_vf11 = out_info + out_pkt + self.session_secondary.send_expect("start", "testpmd> ") + rfc.check_iavf_fdir_mark( + out_vf11, pkt_num=1, check_param={"port_id": 1, "drop": 1}, stats=False + ) + finally: + self.dut.close_session(self.session_secondary) + self.dut.close_session(self.session_third) @skip_unsupported_pkg(["os default", "wireless"]) def test_maxnum_128_profiles(self):