From: Jiale Song <songx.jiale@intel.com>
To: dts@dpdk.org
Cc: Jiale Song <songx.jiale@intel.com>
Subject: [dts] [PATCH V1] tests/cvl_ecpri: optimize script
Date: Wed, 8 Sep 2021 14:06:01 +0800 [thread overview]
Message-ID: <1631081161-163749-1-git-send-email-songx.jiale@intel.com> (raw)
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 <songx.jiale@intel.com>
---
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
next reply other threads:[~2021-09-08 5:53 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-08 6:06 Jiale Song [this message]
2021-09-29 3:38 ` Tu, Lijuan
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=1631081161-163749-1-git-send-email-songx.jiale@intel.com \
--to=songx.jiale@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).