From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 06AFC58E4 for ; Fri, 29 May 2015 04:42:14 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP; 28 May 2015 19:42:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,514,1427785200"; d="scan'208";a="578570383" Received: from kmsmsx153.gar.corp.intel.com ([172.21.73.88]) by orsmga003.jf.intel.com with ESMTP; 28 May 2015 19:42:13 -0700 Received: from kmsmsx154.gar.corp.intel.com (172.21.73.14) by KMSMSX153.gar.corp.intel.com (172.21.73.88) with Microsoft SMTP Server (TLS) id 14.3.224.2; Fri, 29 May 2015 10:42:12 +0800 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by KMSMSX154.gar.corp.intel.com (172.21.73.14) with Microsoft SMTP Server (TLS) id 14.3.224.2; Fri, 29 May 2015 10:42:11 +0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.23]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.50]) with mapi id 14.03.0224.002; Fri, 29 May 2015 10:42:10 +0800 From: "Tang, HaifengX" To: "Fu, JingguoX" , "dts@dpdk.org" Thread-Topic: [DTS][PATCH V2 1/2] scatter: add scatter test suite Thread-Index: AQHQmSF5nWvnY48+7kySWgVR9uTSdZ2SPq2g Date: Fri, 29 May 2015 02:42:09 +0000 Message-ID: References: <1432802208-27520-1-git-send-email-jingguox.fu@intel.com> In-Reply-To: <1432802208-27520-1-git-send-email-jingguox.fu@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dts] [DTS][PATCH V2 1/2] scatter: add scatter test suite X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 May 2015 02:42:15 -0000 > > >-----Original Message----- >From: Fu, JingguoX=20 >Sent: Thursday, May 28, 2015 4:37 PM >To: dts@dpdk.org >Cc: Xu, HuilongX; Tang, HaifengX; Fu, JingguoX >Subject: [DTS][PATCH V2 1/2] scatter: add scatter test suite > >Signed-off-by: Jingguo Fu >--- > tests/TestSuite_scatter.py | 132 ++++++++++++++++++++++++++++++++++++++++= +++++ > 1 file changed, 132 insertions(+) > create mode 100644 tests/TestSuite_scatter.py > >diff --git a/tests/TestSuite_scatter.py b/tests/TestSuite_scatter.py new f= ile mode 100644 index 0000000..2ce5965 >--- /dev/null >+++ b/tests/TestSuite_scatter.py >@@ -0,0 +1,132 @@ >+# 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 #=20 >+modification, are permitted provided that the following conditions #=20 >+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 #=20 >+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT #=20 >+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR #=20 >+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT #=20 >+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, #=20 >+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT #=20 >+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, #=20 >+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY #=20 >+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT #=20 >+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE #=20 >+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >+ >+""" >+DPDK Test suite. >+Test Scattered Packets. >+""" >+import dts >+from test_case import TestCase >+from pmd_output import PmdOutput >+ >+EHTERNET_HEADER =3D 18 >+IP_HEADER =3D 20 >+DEFAULT_MBUF_SIZE =3D 2048 >+JUMBO_FRAME_MTU =3D 9000 >+STANDARD_MTU =3D 1500 >+# >+# >+# Test class. >+# >+class TestScatter(TestCase): >+ # >+ # >+ # >+ # Test cases. >+ # >+ def set_up_all(self): >+ """ >+ Run at the start of each test suite. >+ Scatter Prerequistites >+ """ >+ dutPorts =3D self.dut.get_ports(self.nic) >+ # Verify that enough ports are available >+ self.verify(len(dutPorts) >=3D 2, "Insufficient ports") >+ self.pmdout =3D PmdOutput(self.dut) >+ >+ def scatter_pktgen_send_packet(self, sPortid, rPortid, pktsize, num= =3D1): >+ """ >+ Functional test for scatter packets. >+ """ >+ sport =3D self.tester.get_local_port(sPortid) >+ sintf =3D self.tester.get_interface(sport) >+ smac =3D self.dut.get_mac_address(sPortid) >+ rport =3D self.tester.get_local_port(rPortid) >+ rintf =3D self.tester.get_interface(rport) >+ self.tester.send_expect("ifconfig %s mtu %s" % (sintf, JUMBO_FRAM= E_MTU), "#") >+ self.tester.send_expect("ifconfig %s mtu %s" % (rintf,=20 >+ JUMBO_FRAME_MTU), "#") >+ >+ self.tester.scapy_background() >+ self.tester.scapy_append( >+ 'p =3D sniff(filter=3D"ip",iface=3D"%s", count=3D%d)' % (rint= f, num)) >+ self.tester.scapy_append('RESULT =3D str(p)') >+ >+ pktlen =3D pktsize - EHTERNET_HEADER >+ padding =3D pktlen - IP_HEADER >+ >+ self.tester.scapy_foreground() >+ self.tester.scapy_append( >+ 'sendp([Ether(dst=3D"%s")/IP(len=3D%s)/Raw(load=3D"\x50"*%s)]= , iface=3D"%s")' % (smac, pktlen, padding, sintf)) >+ self.tester.scapy_execute() >+ res =3D self.tester.scapy_get_result() >+ self.tester.send_expect("ifconfig %s mtu %s" % (sintf, STANDARD_M= TU), "#") >+ self.tester.send_expect("ifconfig %s mtu %s" % (rintf, STANDARD_M= TU), "#") >+ return res >+ >+ def set_up(self): >+ """ >+ Run before each test case. >+ """ >+ pass >+ >+ def test_scatter_mbuf(self): >+ """ >+ Scatter 2048 mbuf >+ """ >+ dutPorts =3D self.dut.get_ports(self.nic) >+ portMask =3D dts.create_mask(dutPorts[:2]) >+ >+ # set the mbuf size to 1024 >+ out =3D self.pmdout.start_testpmd( >+ "Default", "--mbcache=3D200 --mbuf-size=3D%s --portmask=3D%s = --max-pkt-len=3D%s" % (DEFAULT_MBUF_SIZE,portMask, JUMBO_FRAME_MTU)) >+ self.verify("Error" not in out, "launch error 1") >+ self.dut.send_expect("set fwd mac", "testpmd> ", 120) >+ self.dut.send_expect("start", "testpmd> ") >+ >+ for offset in [-1, 0, 1, 4, 5]: >+ ret =3D self.scatter_pktgen_send_packet( >+ dutPorts[0], dutPorts[1], DEFAULT_MBUF_SIZE + offset) >+ self.verify("load=3D'P" in ret, "packet receive error") >+ >+ self.dut.send_expect("stop", "testpmd> ") >+ self.dut.send_expect("quit", "# ", 30) >+ >+ def tear_down(self): >+ """ >+ Run after each test case. >+ """ >+ pass >+ >+ def tear_down_all(self): >+ """ >+ Run after each test suite. >+ """ >+ pass >-- >2.1.0 Acked-by: Haifeng Tang