From: TangHaifeng <haifengx.tang@intel.com>
To: dts@dpdk.org
Cc: jingguox.fu@intel.com
Subject: [dts] [dts 16/28] add unit_test_dump testcase into dts
Date: Tue, 26 May 2015 15:35:43 +0800 [thread overview]
Message-ID: <1432625755-19403-10-git-send-email-haifengx.tang@intel.com> (raw)
In-Reply-To: <1432625755-19403-1-git-send-email-haifengx.tang@intel.com>
---
tests/TestSuite_unit_tests_dump.py | 211 ++++++++++++++++++++++++++++++++++++
1 files changed, 211 insertions(+), 0 deletions(-)
create mode 100644 tests/TestSuite_unit_tests_dump.py
diff --git a/tests/TestSuite_unit_tests_dump.py b/tests/TestSuite_unit_tests_dump.py
new file mode 100644
index 0000000..ce04439
--- /dev/null
+++ b/tests/TestSuite_unit_tests_dump.py
@@ -0,0 +1,211 @@
+# BSD LICENSE
+#
+# Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Intel Corporation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import re
+
+"""
+DPDK Test suite.
+
+Run Inter-VM share memory autotests
+"""
+
+
+from test_case import TestCase
+
+#
+#
+# Test class.
+#
+
+
+class TestUnitTestsDump(TestCase):
+
+ #
+ #
+ #
+ # Test cases.
+ #
+
+ def set_up_all(self):
+ """
+ Run at the start of each test suite.
+ Nothing to do here.
+ """
+ # Based on h/w type, choose how many ports to use
+ self.dut_ports = self.dut.get_ports(self.nic)
+ self.verify(len(self.dut_ports) >= 1, "Insufficient ports for testing")
+
+ def set_up(self):
+ """
+ Run before each test case.
+ Nothing to do here.
+ """
+ pass
+
+ def test_log_dump(self):
+ """
+ Run history log dump test case.
+ """
+ self.dut.send_expect("./%s/app/test -n 1 -c ffff" % (self.target), "R.*T.*E.*>.*>", 10)
+ out = self.dut.send_expect("dump_log_history", "RTE>>", 120)
+ self.dut.send_expect("quit", "# ")
+ self.verify("EAL" in out, "Test failed")
+
+ def test_ring_dump(self):
+ """
+ Run history log dump test case.
+ """
+ self.dut.send_expect("./%s/app/test -n 1 -c ffff" % (self.target), "R.*T.*E.*>.*>", 10)
+ out = self.dut.send_expect("dump_ring", "RTE>>", 120)
+ self.dut.send_expect("quit", "# ")
+ elements = ['ring', 'address', 'flags', 'size', 'ct', 'ch', 'pt', 'ph', 'used', 'avail', 'watermark']
+ match_regex = "ring <(.*?)>@0x(.*)\r\n"
+ for element in elements[2:]:
+ match_regex += " %s=(\d*)\r\n" % element
+ m = re.compile(r"%s" % match_regex, re.S)
+ result = m.search(out)
+ ring_info = dict(zip(elements, result.groups()))
+
+ self.verify(ring_info['ring'] == 'MP_log_history', "Test failed")
+
+ def test_mempool_dump(self):
+ """
+ Run mempool dump test case.
+ """
+ self.dut.send_expect("./%s/app/test -n 1 -c ffff" % (self.target), "R.*T.*E.*>.*>", 10)
+ out = self.dut.send_expect("dump_mempool", "RTE>>", 120)
+ self.dut.send_expect("quit", "# ")
+ elements = ['mempool', 'address', 'flags', 'ring', 'phys_addr', 'size', 'header_size', 'elt_size',
+ 'trailer_size', 'total_obj_size', 'private_data_size', 'pg_num', 'pg_shift', 'pg_mask',
+ 'elt_va_start', 'elt_va_end', 'elt_pa\[0\]', 'avg bytes/object'
+ ]
+ match_regex = "mempool <(.*?)>@0x(.*?)\r\n"
+ for element in elements[2:]:
+ match_regex += " %s=(.*?)\r\n" % element
+ m = re.compile(r"%s" % match_regex, re.S)
+ result = m.search(out)
+ mempool_info = dict(zip(elements, result.groups()))
+
+ self.verify(mempool_info['mempool'] == 'log_history', "Test failed")
+
+ def test_physmem_dump(self):
+ """
+ Run physical memory dump test case.
+ """
+ self.dut.send_expect("./%s/app/test -n 1 -c ffff" % (self.target), "R.*T.*E.*>.*>", 10)
+ out = self.dut.send_expect("dump_physmem", "RTE>>", 120)
+ self.dut.send_expect("quit", "# ")
+ elements = ['Segment', 'phys', 'len', 'virt', 'socket_id', 'hugepage_sz', 'nchannel', 'nrank']
+ match_regex = "Segment (\d)+:"
+ for element in elements[1:-1]:
+ match_regex += " %s:(.*?)," % element
+ match_regex += " %s:(.*?)\n" % elements[-1]
+ m = re.compile(r"%s" % match_regex, re.DOTALL)
+ results = m.findall(out)
+ phy_info = []
+ for result in results:
+ phy_info.append(dict(zip(elements, result)))
+
+ self.verify(len(phy_info) > 0, "Test failed")
+
+ def test_memzone_dump(self):
+ """
+ Run memzone dump test case.
+ """
+ self.dut.send_expect("./%s/app/test -n 1 -c ffff" % (self.target), "R.*T.*E.*>.*>", 10)
+ out = self.dut.send_expect("dump_memzone", "RTE>>", 120)
+ self.dut.send_expect("quit", "# ")
+
+ elements = ['Zone', 'name', 'phys', 'len', 'virt', 'socket_id', 'flags']
+ match_regex = "Zone (\d):"
+ for element in elements[1:-1]:
+ match_regex += " %s:(.*?)," % element
+ match_regex += " %s:(.*?)\n" % elements[-1]
+ m = re.compile(r"%s" % match_regex, re.DOTALL)
+ results = m.findall(out)
+
+ memzone_info = []
+ for result in results:
+ memzone_info.append(dict(zip(elements, result)))
+
+ self.verify(len(memzone_info) > 0, "Test failed")
+
+ def test_dump_struct_size(self):
+ """
+ Run struct size dump test case.
+ """
+ self.dut.send_expect("./%s/app/test -n 1 -c ffff" % (self.target), "R.*T.*E.*>.*>", 10)
+ out = self.dut.send_expect("dump_struct_sizes", "RTE>>", 120)
+ self.dut.send_expect("quit", "# ")
+
+ elements = ['struct rte_mbuf', 'struct rte_mempool', 'struct rte_ring']
+ match_regex = ""
+ for element in elements[:-1]:
+ match_regex += "sizeof\(%s\) = (\d+)\r\n" % element
+ match_regex += "sizeof\(%s\) = (\d+)" % elements[-1]
+ m = re.compile(r"%s" % match_regex, re.S)
+ result = m.search(out)
+ struct_info = dict(zip(elements, result.groups()))
+
+ def test_dump_devargs(self):
+ """
+ Run devargs dump test case.
+ """
+ test_port = self.dut_ports[0]
+ self.dut.send_expect("./%s/app/test -n 1 -c ffff -b 0000:%s"
+ % (self.target, self.dut.ports_info[test_port]['pci']), "R.*T.*E.*>.*>", 10)
+ out = self.dut.send_expect("dump_devargs", "RTE>>", 120)
+ self.dut.send_expect("quit", "# ")
+ black_str = "PCI blacklist 0000:%s" % self.dut.ports_info[test_port]['pci']
+ self.verify(black_str in out, "Dump black list failed")
+
+ self.dut.send_expect("./%s/app/test -n 1 -c ffff -w 0000:%s"
+ % (self.target, self.dut.ports_info[test_port]['pci']), "R.*T.*E.*>.*>", 10)
+ out = self.dut.send_expect("dump_devargs", "RTE>>", 120)
+ self.dut.send_expect("quit", "# ")
+
+ white_str = "PCI whitelist 0000:%s" % self.dut.ports_info[test_port]['pci']
+ self.verify(white_str in out, "Dump white list failed")
+
+ def tear_down(self):
+ """
+ Run after each test case.
+ Stop application test after every case.
+ """
+ self.dut.kill_all()
+ pass
+
+ def tear_down_all(self):
+ """
+ Run after each test suite.
+ Nothing to do here.
+ """
+ pass
--
1.7.4.4
next prev parent reply other threads:[~2015-05-26 7:36 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-26 7:35 [dts] [dts 07/28] add unit_test_mbuf rst file " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 08/28] add unit_test_mempool " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 09/28] add unit_tests_pmd_perf " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 10/28] add unit_test_power " TangHaifeng
2015-05-26 9:01 ` Liu, Yong
2015-05-26 7:35 ` [dts] [dts 11/28] add unit_test_qos " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 12/28] add unit_test_ring " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 13/28] add unit_test_ringpmd " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 14/28] add unit_test_timer " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 15/28] add unit_test_cmdline testcase " TangHaifeng
2015-05-26 7:35 ` TangHaifeng [this message]
2015-05-26 7:35 ` [dts] [dts 17/28] add unit_test_eal " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 18/28] add unit_test_ivshmem " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 19/28] add unit_test_kni " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 20/28] add unit_test_lpm " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 21/28] add unit_test_mbuf " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 22/28] add unit_test_mempool " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 23/28] add unit_test_pmd " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 24/28] add unit_test_power " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 25/28] add unit_test_qos " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 26/28] add unit_test_ring " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 27/28] add unit_test_ringpmd " TangHaifeng
2015-05-26 7:35 ` [dts] [dts 28/28] add unit_tests_timer " TangHaifeng
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=1432625755-19403-10-git-send-email-haifengx.tang@intel.com \
--to=haifengx.tang@intel.com \
--cc=dts@dpdk.org \
--cc=jingguox.fu@intel.com \
/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).