From: Wei Ling <weix.ling@intel.com>
To: dts@dpdk.org
Cc: Wei Ling <weix.ling@intel.com>
Subject: [dts][PATCH V1] tests/ntb: add support host_ports and client_ports option in launch_ntb_fwd()
Date: Tue, 27 Jun 2023 13:34:03 +0800 [thread overview]
Message-ID: <20230627053403.609004-1-weix.ling@intel.com> (raw)
1.TestCase 1 and 2 only need NTB pci, but testcase 3 need NTB pci and
NIC pci to start dpdk-ntb app, so modify the launch_ntb_fwd() function
to support host_ports and client_ports option.
2.Optimize the send_file_and_verify() to check the print info after
execute `ntb> send /tmp/ntb.txt` command on host ntb server and client
ntb server to verify the send and receive file sucessed or not.
Signed-off-by: Wei Ling <weix.ling@intel.com>
---
tests/TestSuite_ntb.py | 53 ++++++++++++++++++++++++++++++++----------
1 file changed, 41 insertions(+), 12 deletions(-)
diff --git a/tests/TestSuite_ntb.py b/tests/TestSuite_ntb.py
index 38d36689..e9b2c2f7 100644
--- a/tests/TestSuite_ntb.py
+++ b/tests/TestSuite_ntb.py
@@ -114,7 +114,7 @@ class TestNtb(TestCase):
ntb = self.get_ntb_port(self.ntb_client)
ntb.bind_driver(driver)
- def launch_ntb_fwd(self, **param):
+ def launch_ntb_fwd(self, host_ports, client_ports, **param):
"""
launch ntb_fwd on ntb host and ntb client
"""
@@ -123,10 +123,10 @@ class TestNtb(TestCase):
self.get_core_list()
app = self.dut.apps_name["ntb"]
eal_host = self.ntb_host.create_eal_parameters(
- cores=self.host_core_list, ports=[self.get_ntb_port(self.ntb_host).pci]
+ cores=self.host_core_list, ports=host_ports
)
eal_client = self.ntb_client.create_eal_parameters(
- cores=self.client_core_list, ports=[self.get_ntb_port(self.ntb_client).pci]
+ cores=self.client_core_list, ports=client_ports
)
host_cmd_line = " ".join([app, eal_host, cmd_opt])
client_cmd_line = " ".join([app, eal_client, cmd_opt])
@@ -219,17 +219,34 @@ class TestNtb(TestCase):
src_file = "{}/ntb.txt".format(self.out_path)
base_dir = self.ntb_client.base_dir.replace("~", "/root")
dst_file = "{}/ntb_recv_file0".format(base_dir)
- content = "ntb!123"
+ host_content = "ntb!123"
self.ntb_client.alt_session.send_expect("rm {}".format(dst_file), "# ")
self.ntb_host.alt_session.send_expect(
- "echo '{}' >{}".format(content, src_file), "# "
+ "echo '{}' >{}".format(host_content, src_file), "# "
)
- self.ntb_host.send_expect("send {}".format(src_file), "ntb> ", 30)
- time.sleep(3)
+ # check the print info after send file on NTB host server
+ host_out = self.ntb_host.send_expect("send {}".format(src_file), "ntb> ", 30)
+ host_reg = (
+ "send {}\r\r\nSending file, size is \d+\r\nDone sending file.".format(
+ src_file
+ )
+ )
+ host_info = re.findall(host_reg, host_out)
+ self.verify(len(host_info) == 1, "Send File FAILED!")
+
+ # check the print info after send file on NTB client server
+ client_out = self.ntb_client.get_session_output()
+ client_reg = " Received file \(size: \d+\) from peer to ntb_recv_file0.\r\n"
+ client_info = re.findall(client_reg, client_out)
+ self.verify(len(client_info) == 1, "Recieve File FAILED!")
# Check file received on client.
- cnt = self.ntb_client.alt_session.send_expect("cat %s" % dst_file, "# ")
- self.verify(cnt == content, "the content can't match with the sent")
+ client_content = self.ntb_client.alt_session.send_expect(
+ "cat %s" % dst_file, "# "
+ )
+ self.verify(
+ client_content == host_content, "the content can't match with the sent"
+ )
def send_pkg_and_verify(self):
for frame_size in self.frame_sizes:
@@ -255,7 +272,9 @@ class TestNtb(TestCase):
self.set_driver(driver)
self.ntb_bind_driver(driver)
- self.launch_ntb_fwd(**{"buf-size": 65407})
+ host_ports = [self.get_ntb_port(self.ntb_host).pci]
+ client_ports = [self.get_ntb_port(self.ntb_client).pci]
+ self.launch_ntb_fwd(host_ports, client_ports, **{"buf-size": 65407})
self.start_ntb_fwd_on_dut(self.ntb_host, fwd_mode="file-trans")
self.start_ntb_fwd_on_dut(self.ntb_client, fwd_mode="file-trans")
self.send_file_and_verify()
@@ -265,7 +284,9 @@ class TestNtb(TestCase):
self.set_driver(driver)
self.ntb_bind_driver(driver)
- self.launch_ntb_fwd(**{"buf-size": 65407})
+ host_ports = [self.get_ntb_port(self.ntb_host).pci]
+ client_ports = [self.get_ntb_port(self.ntb_client).pci]
+ self.launch_ntb_fwd(host_ports, client_ports, **{"buf-size": 65407})
self.start_ntb_fwd_on_dut(self.ntb_host, fwd_mode="rxonly")
self.start_ntb_fwd_on_dut(self.ntb_client, fwd_mode="txonly")
time.sleep(1)
@@ -278,7 +299,15 @@ class TestNtb(TestCase):
self.port_bind_driver(driver)
self.create_table()
- self.launch_ntb_fwd(**{"burst": 32})
+ host_ports = [
+ self.get_ntb_port(self.ntb_host).pci,
+ self.ntb_host.ports_info[0]["pci"],
+ ]
+ client_ports = [
+ self.get_ntb_port(self.ntb_client).pci,
+ self.ntb_client.ports_info[0]["pci"],
+ ]
+ self.launch_ntb_fwd(host_ports, client_ports, **{"burst": 32})
self.start_ntb_fwd_on_dut(self.ntb_host, fwd_mode="iofwd")
self.start_ntb_fwd_on_dut(self.ntb_client, fwd_mode="iofwd")
self.send_pkg_and_verify()
--
2.34.1
reply other threads:[~2023-06-27 5:34 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20230627053403.609004-1-weix.ling@intel.com \
--to=weix.ling@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).