From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2853CA0C56; Wed, 8 Sep 2021 07:53:44 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E84B9410EB; Wed, 8 Sep 2021 07:53:43 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 0CD9A4003E for ; Wed, 8 Sep 2021 07:53:41 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10100"; a="199922791" X-IronPort-AV: E=Sophos;i="5.85,276,1624345200"; d="scan'208";a="199922791" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2021 22:53:40 -0700 X-IronPort-AV: E=Sophos;i="5.85,276,1624345200"; d="scan'208";a="524689913" Received: from unknown (HELO dpdk-zhaohy-t.sh.intel.com) ([10.240.183.68]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2021 22:53:39 -0700 From: Jiale Song To: dts@dpdk.org Cc: Jiale Song Date: Wed, 8 Sep 2021 14:06:01 +0800 Message-Id: <1631081161-163749-1-git-send-email-songx.jiale@intel.com> X-Mailer: git-send-email 1.8.3.1 Subject: [dts] [PATCH V1] tests/cvl_ecpri: optimize script 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 Sender: "dts" add_and_delete_eCPRI_port_config_in_DCF and ecpri_fdir_when_DCF_reset did not set vf to trust on which led to case always failure. optimize the script to solve this problem Signed-off-by: Jiale Song --- tests/TestSuite_cvl_ecpri.py | 77 ++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 46 deletions(-) diff --git a/tests/TestSuite_cvl_ecpri.py b/tests/TestSuite_cvl_ecpri.py index 357e7fa..0bcd0ac 100644 --- a/tests/TestSuite_cvl_ecpri.py +++ b/tests/TestSuite_cvl_ecpri.py @@ -182,10 +182,14 @@ class TestCVLEcpri(TestCase): self.right_ecpri = '0x5123' self.wrong_ecpri = '0x5121' + self.new_session = self.dut.create_session(name="self.new_session") + def set_up(self): """ Run before each test case. """ + self.new_session.send_expect("ip link set {} vf 0 trust on".format(self.pf_interface), "# ", timeout=10) + self.new_session.send_expect("ip link set {} vf 0 mac 00:11:22:33:44:00".format(self.pf_interface), "# ", timeout=10) self.launch_testpmd() self.pkt = Packet() @@ -202,9 +206,6 @@ class TestCVLEcpri(TestCase): self.sriov_vfs_port[i].bind_driver(self.drivername) self.dut.send_expect("ip link set %s vf %s mac %s" % (self.pf_interface, i, Mac_list[i]), "# ") - #self.vf0_prop = {'opt_host': self.sriov_vfs_port[0].pci} - #self.dut.send_expect("ifconfig %s up" % self.pf_interface, "# ") - self.dut.send_expect("ip link set %s vf 0 trust on" % self.pf_interface, "# ") except Exception as e: self.destroy_iavf() raise Exception(e) @@ -248,57 +249,53 @@ class TestCVLEcpri(TestCase): self.send_and_verify(Mac_list[1], self.right_ecpri, if_match=False) - def test_add_and_delete_eCPRI_port_config_in_DCF(self): + def test_eCPRI_port_config_when_DCF_exit_reset(self): self.pmd_output.execute_cmd("port config 0 udp_tunnel_port add ecpri {}".format(self.right_ecpri)) self.pmd_output.execute_cmd("quit", expected="#") self.launch_testpmd() self.send_and_verify(Mac_list[1], self.right_ecpri, if_match=False) self.pmd_output.execute_cmd("port config 0 udp_tunnel_port add ecpri {}".format(self.right_ecpri)) # use new mac to test - new_session = self.dut.create_session(name="new_session") new_mac = "00:11:22:33:44:66" - new_session.send_expect("ip link set {} vf 0 mac {}".format(self.pf_interface, new_mac), "#", timeout=10) + self.new_session.send_expect("ip link set {} vf 0 mac {}".format(self.pf_interface, new_mac), "#", timeout=10) self.send_and_verify(Mac_list[1], self.right_ecpri, if_match=False) self.pmd_output.execute_cmd("quit", expected="#") # set port vf 0 trust off and test self.launch_testpmd() self.pmd_output.execute_cmd("port config 0 udp_tunnel_port add ecpri {}".format(self.right_ecpri)) - new_session.send_expect("ip link set {} vf 0 trust off".format(self.pf_interface), "#", timeout=10) + self.new_session.send_expect("ip link set {} vf 0 trust off".format(self.pf_interface), "#", timeout=10) self.send_and_verify(Mac_list[1], self.right_ecpri, if_match=False) - new_session.close() def test_DCF_port_config_and_linux_port_config(self): - new_session = self.dut.create_session(name="new_session") self.pmd_output.execute_cmd("port config 0 udp_tunnel_port add ecpri {}".format(self.right_ecpri)) - new_session.send_expect("dmesg -c", "#") - new_session.send_expect("ip link add vx0 type vxlan id 100 local 1.1.1.1 remote " + self.new_session.send_expect("dmesg -c", "#") + self.new_session.send_expect("ip link add vx0 type vxlan id 100 local 1.1.1.1 remote " "2.2.2.2 dev {} dstport 0x1234".format(self.pf_interface), "#") - new_session.send_expect("ifconfig vx0 up", "#") - new_session.send_expect("ifconfig vx0 down", "#") - out = new_session.send_expect("dmesg", "#") + self.new_session.send_expect("ifconfig vx0 up", "#") + self.new_session.send_expect("ifconfig vx0 down", "#") + out = self.new_session.send_expect("dmesg", "#") self.verify("Cannot config tunnel, the capability is used by DCF" in out, "port can used by another thread!") # delete eCPRI port config and test - new_session.send_expect("dmesg -c", "#") + self.new_session.send_expect("dmesg -c", "#") self.pmd_output.execute_cmd("port config 0 udp_tunnel_port rm ecpri {}".format(self.right_ecpri)) - new_session.send_expect("ifconfig vx0 up", "#") - new_session.send_expect("ifconfig vx0 down", "# ") - out = new_session.send_expect("dmesg", "#") + self.new_session.send_expect("ifconfig vx0 up", "#") + self.new_session.send_expect("ifconfig vx0 down", "# ") + out = self.new_session.send_expect("dmesg", "#") self.verify("Cannot config tunnel, the capability is used by DCF" not in out, "port can't used by another thread!") self.pmd_output.execute_cmd("quit", "#") # do ecpri test self.launch_testpmd() - new_session.send_expect("ip link add vx0 type vxlan id 100 local 1.1.1.1 remote " + self.new_session.send_expect("ip link add vx0 type vxlan id 100 local 1.1.1.1 remote " "2.2.2.2 dev {} dstport 0x1234".format(self.pf_interface), "#") - new_session.send_expect("ifconfig vx0 up", "#") + self.new_session.send_expect("ifconfig vx0 up", "#") out = self.pmd_output.execute_cmd("port config 0 udp_tunnel_port add ecpri {}".format(self.right_ecpri)) self.verify("ice_dcf_send_aq_cmd(): No response (201 times) or return failure (desc: -63 / buff: -63)" in out, "test fail") # set vx0 down and test - new_session.send_expect("ifconfig vx0 down", "#") + self.new_session.send_expect("ifconfig vx0 down", "#") out = self.pmd_output.execute_cmd("port config 0 udp_tunnel_port add ecpri {}".format(self.right_ecpri)) self.verify("ice_dcf_send_aq_cmd(): No response (201 times) or return failure (desc: -63 / buff: -63)" not in out, "test fail") - new_session.close() def test_negative_eCPRI_port_config_in_DCF(self): ecpri_and_expect_dic = {"1": "Operation not supported", @@ -435,8 +432,7 @@ class TestCVLEcpri(TestCase): hash_lst = [i.get('RSS hash') for i in out_data] self.verify(len(set(hash_lst)) == 2 and None not in hash_lst, 'test fail, RSS hash is same') - new_session = self.dut.create_session(name="new_session") - new_session.send_expect("ip link set {} vf 0 mac 00:11:22:33:44:66".format(self.pf_interface), "#") + self.new_session.send_expect("ip link set {} vf 0 mac 00:11:22:33:44:66".format(self.pf_interface), "#") out_data = self.get_receive_lst(tag_lst, [pkt]) # verify hash_lst = [i.get('RSS hash') for i in out_data] @@ -444,7 +440,7 @@ class TestCVLEcpri(TestCase): # restart testpmd and test new_mac = "00:11:22:33:44:55" - new_session.send_expect("ip link set {} vf 0 mac {}".format(self.pf_interface, new_mac), "#") + self.new_session.send_expect("ip link set {} vf 0 mac {}".format(self.pf_interface, new_mac), "#") self.dut.send_expect("quit", "# ") self.launch_testpmd() self.pmd_output.execute_cmd("port config 0 udp_tunnel_port add ecpri 0x5123") @@ -455,7 +451,7 @@ class TestCVLEcpri(TestCase): hash_lst = [i.get('RSS hash') for i in out_data] self.verify(len(set(hash_lst)) == 2 and None not in hash_lst, 'test fail, RSS hash is same') - new_session.send_expect("ip link set {} vf 0 mac 00:11:22:33:44:66".format(self.pf_interface), "#") + self.new_session.send_expect("ip link set {} vf 0 mac 00:11:22:33:44:66".format(self.pf_interface), "#") out_data = self.get_receive_lst(tag_lst, [pkt]) # verify hash_lst = [i.get('RSS hash') for i in out_data] @@ -463,13 +459,11 @@ class TestCVLEcpri(TestCase): self.dut.send_expect("quit", "# ") self.launch_testpmd() - new_session.send_expect("ip link set {} vf 0 trust off".format(self.pf_interface), "#") + self.new_session.send_expect("ip link set {} vf 0 trust off".format(self.pf_interface), "#") out_data = self.get_receive_lst(tag_lst, [pkt]) # verify hash_lst = [i.get('RSS hash') for i in out_data] self.verify(len(set(hash_lst)) == 1, 'test fail, RSS hash is not same') - new_session.send_expect("ip link set {} vf 0 trust on".format(self.pf_interface), "#") - new_session.close() def test_DCF_reset_for_eth_ecpri_rss(self): tag_lst = ['x45', 'x46', 'x47', 'x48'] @@ -482,36 +476,30 @@ class TestCVLEcpri(TestCase): # verify hash_lst = [i.get('RSS hash') for i in out_data] self.verify(len(set(hash_lst)) == 2 and None not in hash_lst, 'test fail, RSS hash is same') - new_session = self.dut.create_session(name="new_session") - new_session.send_expect("ip link set {} vf 0 mac 00:11:22:33:44:66".format(self.pf_interface), "#") + self.new_session.send_expect("ip link set {} vf 0 mac 00:11:22:33:44:66".format(self.pf_interface), "#") out_data = self.get_receive_lst(tag_lst[1:], [pkt]) # verify hash_lst = [i.get('RSS hash') for i in out_data] self.verify(len(set(hash_lst)) == 3 and None not in hash_lst, 'test fail, RSS hash is same') - new_session.send_expect("ip link set {} vf 0 trust off".format(self.pf_interface), "#") + self.new_session.send_expect("ip link set {} vf 0 trust off".format(self.pf_interface), "#") out_data = self.get_receive_lst(tag_lst[:2], [pkt]) # verify hash_lst = [i.get('RSS hash') for i in out_data] self.verify(len(set(hash_lst)) == 2 and None not in hash_lst, 'test fail, RSS hash is same') - new_session.send_expect("ip link set {} vf 0 mac 00:11:22:33:44:66".format(self.pf_interface), "#") + self.new_session.send_expect("ip link set {} vf 0 mac 00:11:22:33:44:66".format(self.pf_interface), "#") out_data = self.get_receive_lst(tag_lst[1:], [pkt]) # verify hash_lst = [i.get('RSS hash') for i in out_data] self.verify(len(set(hash_lst)) == 3 and None not in hash_lst, 'test fail, RSS hash is same') - new_session.send_expect("ip link set {} vf 0 trust on".format(self.pf_interface), "#") - new_session.send_expect("ip link set {} vf 0 mac 00:11:22:33:44:55".format(self.pf_interface), "#") - new_session.close() - def test_DCF_exit_for_eth_ecpri_and_udp_ecpri_rss(self): self.dut.send_expect("quit", "# ") eal_param = " -a {},cap=dcf".format(self.sriov_vfs_port[0].pci) self.pmd_output.start_testpmd(cores=list(range(8)), eal_param=eal_param, prefix="test1", socket=self.ports_socket) self.pmd_output.execute_cmd("port config 0 udp_tunnel_port add ecpri 0x5123") - new_session = self.dut.create_session(name="new_session") - pmd_output1 = PmdOutput(self.dut, new_session) + pmd_output1 = PmdOutput(self.dut, self.new_session) eal_param1 = " -a {} -a {}".format(self.sriov_vfs_port[1].pci, self.sriov_vfs_port[2].pci) param = " --rxq=16 --txq=16" pmd_output1.start_testpmd(cores=list(range(8)), eal_param=eal_param1, param=param, prefix="test2", @@ -537,7 +525,6 @@ class TestCVLEcpri(TestCase): hash_lst = [i.get('RSS hash') for i in out_data] self.verify(hash_lst[0] == hash_lst[2] and hash_lst[1] != hash_lst[3], 'test fail, hash value is wrong.') pmd_output1.execute_cmd("quit", '#') - new_session.close() def create_fdir_rule(self, rule: (list, str), check_stats=None, msg=None, validate=True): if validate: @@ -782,8 +769,7 @@ class TestCVLEcpri(TestCase): # verify self.verify([data.get('queue') for data in data_lst] == ['1', '2'], "pkt to the wrong queue!") self.verify([data.get('FDIR matched ID') for data in data_lst] == ['0x1', '0x2'], "pkt with wrong FDIR matched ID!") - new_session = self.dut.create_session(name="new_session") - new_session.send_expect('ip link set {} vf 0 mac 00:11:22:33:44:66'.format(self.pf_interface), '#') + self.new_session.send_expect('ip link set {} vf 0 mac 00:11:22:33:44:66'.format(self.pf_interface), '#') data_lst = self.get_receive_lst(tag_lst, pkt_lst) # verify self.verify(data_lst[1].get('queue') == '2', "pkt to the wrong queue!") @@ -798,11 +784,10 @@ class TestCVLEcpri(TestCase): data_lst = self.get_receive_lst(tag_lst, pkt_lst) self.verify([data.get('queue') for data in data_lst] == ['1', '2'], "pkt to the wrong queue!") self.verify([data.get('FDIR matched ID') for data in data_lst] == ['0x1', '0x2'], "pkt with wrong FDIR matched ID!") - new_session.send_expect("ip link set {} vf 0 trust off".format(self.pf_interface), "#") + self.new_session.send_expect("ip link set {} vf 0 trust off".format(self.pf_interface), "#") data_lst = self.get_receive_lst(tag_lst, pkt_lst) self.verify(data_lst[1].get('queue') == '2', "pkt to the wrong queue!") self.verify([data.get('FDIR matched ID') for data in data_lst] == [None, '0x2'], "pkt with wrong FDIR matched ID!") - new_session.close() def test_ecpri_fdir_when_DCF_exit(self): self.dut.send_expect("quit", "#") @@ -810,8 +795,7 @@ class TestCVLEcpri(TestCase): self.pmd_output.start_testpmd(cores=list(range(8)), eal_param=eal_param, prefix="test1", socket=self.ports_socket) self.pmd_output.execute_cmd("port config 0 udp_tunnel_port add ecpri 0x5123") - new_session = self.dut.create_session(name="new_session") - pmd_output1 = PmdOutput(self.dut, new_session) + pmd_output1 = PmdOutput(self.dut, self.new_session) eal_param1 = " -a {} -a {}".format(self.sriov_vfs_port[1].pci, self.sriov_vfs_port[2].pci) param = " --rxq=16 --txq=16" pmd_output1.start_testpmd(cores=list(range(8)), eal_param=eal_param1, param=param, prefix="test2", @@ -895,4 +879,5 @@ class TestCVLEcpri(TestCase): self.dut.kill_all() def tear_down_all(self): + self.new_session.close() self.dut.kill_all() -- 1.8.3.1