From: Ling Wei <weix.ling@intel.com>
To: dts@dpdk.org
Cc: Ling Wei <weix.ling@intel.com>
Subject: [dts] [PATCH V1] tests/vhost_pmd_xstats: add allow pci param to support tester and dut in same server and optimize code
Date: Wed, 10 Mar 2021 15:55:28 +0800 [thread overview]
Message-ID: <20210310075528.2197433-1-weix.ling@intel.com> (raw)
1.Add -a option to support tester and dut in same server.
2.Use pmd.start_testpmd() to replace session.send_expect()
to start testpmd.
3.Move create dut ssh session from set_up to set_up_all
to reduce the number of creation.
4.Add close dut session in tear_down_all to close session
when suite execute over.
Signed-off-by: Ling Wei <weix.ling@intel.com>
---
tests/TestSuite_vhost_pmd_xstats.py | 65 +++++++++++++----------------
1 file changed, 29 insertions(+), 36 deletions(-)
mode change 100755 => 100644 tests/TestSuite_vhost_pmd_xstats.py
diff --git a/tests/TestSuite_vhost_pmd_xstats.py b/tests/TestSuite_vhost_pmd_xstats.py
old mode 100755
new mode 100644
index a3b0a2f3..016348d1
--- a/tests/TestSuite_vhost_pmd_xstats.py
+++ b/tests/TestSuite_vhost_pmd_xstats.py
@@ -43,6 +43,7 @@ from test_case import TestCase
from settings import HEADER_SIZE
from qemu_kvm import QEMUKvm
from packet import Packet
+from pmd_output import PmdOutput
ETHER_JUMBO_FRAME_MTU = 9000
DEFAULT_JUMBO_FRAME_MTU = 1500
@@ -63,17 +64,18 @@ class TestVhostPmdXstats(TestCase):
self.virtio1_mac = "52:54:00:00:00:01"
self.core_config = "1S/6C/1T"
self.ports_socket = self.dut.get_numa_id(self.dut_ports[0])
- self.cores_num = len([n for n in self.dut.cores if int(n['socket'])
- == self.ports_socket])
- self.verify(self.cores_num >= 6,
- "There has not enough cores to test this case")
- self.core_list = self.dut.get_core_list(
- self.core_config, socket=self.ports_socket)
+ self.cores_num = len([n for n in self.dut.cores if int(n['socket']) == self.ports_socket])
+ self.verify(self.cores_num >= 6, "There has not enough cores to test this case")
+ self.core_list = self.dut.get_core_list(self.core_config, socket=self.ports_socket)
self.core_list_user = self.core_list[0:3]
self.core_list_host = self.core_list[3:6]
self.dst_mac = self.dut.get_mac_address(self.dut_ports[0])
self.app_testpmd_path = self.dut.apps_name['test-pmd']
self.testpmd_name=self.app_testpmd_path.split("/")[-1]
+ self.vhost_user = self.dut.new_session(suite="vhost-user")
+ self.virtio_user0 = self.dut.new_session(suite="virtio-user0")
+ self.vhost_user_pmd = PmdOutput(self.dut, self.vhost_user)
+ self.virtio_user0_pmd = PmdOutput(self.dut, self.virtio_user0)
def set_up(self):
"""
@@ -82,8 +84,6 @@ class TestVhostPmdXstats(TestCase):
"""
self.dut.send_expect("rm -rf ./vhost-net*", "#")
self.dut.send_expect("killall -s INT %s" % self.testpmd_name, "#")
- self.vhost_user = self.dut.new_session(suite="vhost-user")
- self.virtio_user = self.dut.new_session(suite="virtio-user")
@property
def check_2M_env(self):
@@ -103,49 +103,42 @@ class TestVhostPmdXstats(TestCase):
"""
according the scope to check results
"""
- out = self.vhost_user.send_expect(
- "show port xstats 1", "testpmd>", 60)
+ out = self.vhost_user_pmd.execute_cmd("show port xstats 1")
packet_rx = re.search("rx_%s_packets:\s*(\d*)" % scope, out)
sum_packet_rx = packet_rx.group(1)
packet_tx = re.search("tx_%s_packets:\s*(\d*)" % scope, out)
sum_packet_tx = packet_tx.group(1)
- self.verify(int(sum_packet_rx) >= mun,
- "Insufficient the received packets from nic")
- self.verify(int(sum_packet_tx) >= mun,
- "Insufficient the received packets from virtio")
+ self.verify(int(sum_packet_rx) >= mun, "Insufficient the received packets from nic")
+ self.verify(int(sum_packet_tx) >= mun, "Insufficient the received packets from virtio")
def start_vhost_testpmd(self):
"""
start testpmd on vhost
"""
- eal_param = self.dut.create_eal_parameters(socket=self.ports_socket, cores=self.core_list_host, prefix='vhost',
- vdevs=['net_vhost0,iface=vhost-net,queues=2,client=0'])
- command_line_client = "./%s " % self.app_testpmd_path + eal_param + ' -- -i --nb-cores=2 --rxq=2 --txq=2 --rss-ip'
- self.vhost_user.send_expect(command_line_client, "testpmd> ", 120)
- self.vhost_user.send_expect("set fwd io", "testpmd> ", 120)
- self.vhost_user.send_expect("start", "testpmd> ", 120)
+ vdevs = ['net_vhost0,iface=vhost-net,queues=2,client=0']
+ param = "--nb-cores=2 --rxq=2 --txq=2"
+ self.vhost_user_pmd.start_testpmd(cores=self.core_list_host, param=param, vdevs=vdevs,ports=[0], prefix="vhost")
+ self.vhost_user_pmd.execute_cmd("set fwd io")
+ self.vhost_user_pmd.execute_cmd("start")
def start_virtio_testpmd(self, args):
"""
start testpmd on virtio
"""
- eal_param = self.dut.create_eal_parameters(socket=self.ports_socket, cores=self.core_list_user, prefix='virtio',
- no_pci=True, vdevs=[
- 'net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,%s' % args["version"]])
+ eal_param = ""
if self.check_2M_env:
eal_param += " --single-file-segments"
- command_line_user = "./%s " % self.app_testpmd_path + eal_param + " -- -i %s --rss-ip --nb-cores=2 --rxq=2 --txq=2" % \
- args["path"]
- self.virtio_user.send_expect(command_line_user, "testpmd> ", 120)
- self.virtio_user.send_expect("set fwd io", "testpmd> ", 120)
- self.virtio_user.send_expect("start", "testpmd> ", 120)
+ vdevs = ['net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,%s' % args["version"]]
+ param = "%s --rss-ip --nb-cores=2 --rxq=2 --txq=2" % args["path"]
+ self.virtio_user0_pmd.start_testpmd(cores=self.core_list_user, eal_param=eal_param, param=param, vdevs=vdevs, no_pci=True, prefix="virtio")
+ self.virtio_user0_pmd.execute_cmd("set fwd io")
+ self.virtio_user0_pmd.execute_cmd("start")
def xstats_number_and_type_verify(self):
"""
Verify receiving and transmitting packets correctly in the Vhost PMD xstats
"""
- out = self.vhost_user.send_expect(
- "show port xstats 1", "testpmd>", 60)
+ out = self.vhost_user_pmd.execute_cmd("show port xstats 1")
p = re.compile(r'rx_size_[0-9]+_[to_\w+]*packets')
categories = p.findall(out)
categories = categories[:-1]
@@ -330,14 +323,13 @@ class TestVhostPmdXstats(TestCase):
"""
close all testpmd of vhost and virtio
"""
- self.vhost_user.send_expect("quit", "#", 60)
- self.virtio_user.send_expect("quit", "#", 60)
+ self.vhost_user_pmd.quit()
+ self.virtio_user0_pmd.quit()
def clear_port_xstats(self, scope):
- self.vhost_user.send_expect("clear port xstats 1", "testpmd>", 60)
- out = self.vhost_user.send_expect(
- "show port xstats 1", "testpmd>", 60)
+ self.vhost_user_pmd.execute_cmd("clear port xstats 1")
+ out = self.vhost_user_pmd.execute_cmd("show port xstats 1")
packet = re.search("rx_%s_packets:\s*(\d*)" % scope, out)
sum_packet = packet.group(1)
self.verify(int(sum_packet) == 0, "Insufficient the received package")
@@ -352,4 +344,5 @@ class TestVhostPmdXstats(TestCase):
"""
Run after each test suite.
"""
- pass
+ self.dut.close_session(self.vhost_user)
+ self.dut.close_session(self.virtio_user0)
--
2.25.1
next reply other threads:[~2021-03-10 7:57 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-10 7:55 Ling Wei [this message]
2021-03-10 7:58 ` Ling, WeiX
2021-03-15 7:00 ` Tu, Lijuan
2021-03-15 7:54 ` 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=20210310075528.2197433-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).