From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0071.outbound.protection.outlook.com [104.47.38.71]) by dpdk.org (Postfix) with ESMTP id 8793E69D8 for ; Wed, 19 Apr 2017 14:23:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=NQUNZhkAhaxp11aVVXDHjqIBp5hR/IE6brdeFnpLafg=; b=QfUuPqqJI92xM7VjtoaxR7YuYPpX3T5LTGoVmTZ1jSmapQ08Qymp/i4+TPDezfiILjC1vOsWWlZxSbFcoCsjvVvMzvE8MsgrPI/5cGiyV1N9CAdXwqPgGF8Fo24sKNoKk+RrlFtsZZSj5h+wU50JMh43Gn2WKaeP8KfQ9p6tT78= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=caviumnetworks.com; Received: from angela-H81M-S1.semihalf.local (31.172.191.173) by CO2PR0701MB805.namprd07.prod.outlook.com (10.141.246.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.10; Wed, 19 Apr 2017 12:23:05 +0000 From: Angela Czubak To: dts@dpdk.org Cc: Angela Czubak Date: Wed, 19 Apr 2017 14:22:14 +0200 Message-Id: <1492604540-12114-22-git-send-email-aczubak@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1492604540-12114-1-git-send-email-aczubak@caviumnetworks.com> References: <1491501092-14278-1-git-send-email-aczubak@caviumnetworks.com> <1492604540-12114-1-git-send-email-aczubak@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [31.172.191.173] X-ClientProxiedBy: AM5PR0701CA0064.eurprd07.prod.outlook.com (10.169.145.154) To CO2PR0701MB805.namprd07.prod.outlook.com (10.141.246.23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: aa160257-46c7-4dbe-d40c-08d4871ed557 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:CO2PR0701MB805; X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB805; 3:qMHlFc6zmghHZjMWWl8E6fv42UdIh8q3FLcwLormq6DCa462OnLKGs5medYbDj+C3cqXLJ28/BPcO0Zk/q3PBVJmQUaaKm9Z45db8ADe2vt/6QqL6dME9G2561Yz6Eoj84/YQ2h+M452gKTRmB2n8+0Knf0C/U5T24mKYURuEXCQfcdabwFVmthJlFj4HEXz7VOS4CLjBxSqzjPSbqrPZpLcGNRXAU6NoAGA8CS/TM8en9rrTRDa83x2Hu4Z0Abf5DfNF7pKg1aZeJ8/HJkQlgrfoftwTlPklttLzBchoNvsfYnj6z7zOm60LUGEJ+fYgJiA2QtafeXqaNhQHJF9jQ==; 25:bscss6SjWorF28FUtgeDsYTZfTTJrrd5g1g8BQENS/b8z+785d6J2auVMJPC1NtyQ+BeTGJSDToGZFl7i8pu7igX855UXrXomjoQMwc/Ac6guQD1Pe/l7McJeqLwWm/dTpej9C39/zC37yY7wmjlVMN9Ocd0JRgnk9q7Ov9B4qCBbIwKKqWrnZWetyP8z+xUxyZo1VTfVqglz1gNm2DXHvywXQIiTVqNrb2u1KZuXXm3LSiHInVtNBhzh0McU8yV2si3jeHhKC6ZP0+eRqqS8KI7IUDuBBA2M6yq9aOSdhHMM0At0dh2aCq5OrxHNp7r0JD262oTG7NMh8kP5uHo3uRDgpt0btaekTqodt7xEynQg7xPJtYydsuH4m1M3IcBcmHUUbbfwaGRbu3zQjHERk/+OG6wxmQde0tt57drXAGTKGJeSXc1CZxGZz1FtMJVeKeMWvNL5YK2r5rJPtoEsw== X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB805; 31:KclvNQiRvwP2VUeGfbnIwILrP62dDHN7s9nptLF4fnEYkrzc0vKLrAgkMO8Tx0iEc08z7ioqyJ5RyDBQspz67sIrZo3dsKNwcnLFtF0J/98YyzWg22dY9nwUjRebczFu+5VbBX64tzN/Ie3ZrBJW09g4q2X/xYliz1jSOdh+7rM4iLcsSWzFbmW8Hd49YKNKnuyv1O2MfvJVVp518PVAxA2UzgiCCX4NFl6zQbePfDc=; 20:UnTQ+YQdULI4T4iZogB41D6mm+EhjSvtcKkoIxVe+HWK/qsbQKYG/fGjdY8704qBVEtVcMs7myS88ii1GYF9i/LIg/+ohr5QJi7j3Uqg787snkMTeq8SAAEumpjOEiEDInPshLKOJtwNWq7CWmAQBrGJoSrZs6eO9mkaJODSYqg5RaEWtkRWJViabADqTXFcpqWr56JGDiefAiftU3oCjhCq+X6BVXHj+x9EpkeR9iaXOfoTwBe3jBMLS+AOmoCUW3ibY/Xr0w303HyNvdD5IOgmM7tCod0LLx8eiAQAyOZEkF0lJoETRPEwuXSq2SQxeQN1HD+HDtcSDNzdP4LVzEaH8JksEdU2MxVieUpNngvS1pFgCSxePkdpEJR0yLXkidHZOhbJABE+Y4hKGDFUuu5sczlgrwgPWRx96RlbX5UgsaeURF+e0jsja/XKPevuc0mp+YCKPD5TxrvIsvsezTeZ2GOw7oRH4QTprTNrRiuUl9rhWvlgcfmgGWa+A4u+NBB7NMKk0+80bYrD1o6Wx9f+6viBz0V2W4oa/b3LoxjLiAH1ZgA3kcHEjEGosSGSrGF+8XmA8GO16RL5JYBv1a/9GC5zeB/lpX9jaV4/B2Y= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(6041248)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(6072148); SRVR:CO2PR0701MB805; BCL:0; PCL:0; RULEID:; SRVR:CO2PR0701MB805; X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB805; 4:8jNjJQzfut2vc9ONpxlVWIsqYWk5ERLQwF4d/rwp+5WfYgKC4F7RcDGqkqJLuK+ItlcYF306dCSw5wscQsrrsaUDXxCn4vGcdtKd+EXcL/gqXr3YLRgTzlSndvphjGzBVwKArDtjpgyFnnIoqz2MD3JnVMyqjxNh4WyIYbhcocaaFpKrcYW1UEEvmVM/n8uf+8d/rc0JnFSiiF6mlbLX+t+vX5kSOnfyfy6gVMmI1bTv/qbcpvWRbUfpW+I7wcLkub6bkCGwOUdkj88gYSn4svdRqj1iYYlsOn1vbA4+XM7dKP5ptqy25BqhjGB6N4m5ke3mcFFwGt6Y294Std8onDchjGAdni+S7zTXnhM34F4Z0aS7krGZEm1ED8DFgqf9iM4HNbGnkCPjCK5tIF/PZCL6Fjb8RL/vDyyVqWlU7aUn1c+lVyjrdX50cSXOZs0slXZ2opRk/vkH4ITToS3RRqMvuDenJjgTYDvQivRdu1tZqk4R8SR9bpUWrP+Pql8YkTJ/LkJVdb4EszvCi0EnX8BnuDHVcd5Geyoq6hZ7w4FJq475sed5wdUwq+Ayjj4yRVDnk2Pikg7jIGm4kvKhDvOaOmeLSTS0Bq47bufFVfFSMCUejjT114bEly5egz0RuAwpPd/SwO+stKCttSInboOyaHuzrVVdRq/sR6DTvSN58s/PvpM2Ctv8Rz836XTs X-Forefront-PRVS: 028256169F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39410400002)(39850400002)(39400400002)(39840400002)(39450400003)(6486002)(5660300001)(38730400002)(6506006)(7736002)(6512007)(66066001)(305945005)(47776003)(53936002)(42882006)(110136004)(15650500001)(6916009)(2906002)(8676002)(4326008)(2950100002)(50226002)(81166006)(25786009)(107886003)(6666003)(36756003)(5003940100001)(42186005)(33646002)(3846002)(6116002)(2351001)(2361001)(189998001)(76176999)(50986999)(48376002)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:CO2PR0701MB805; H:angela-H81M-S1.semihalf.local; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO2PR0701MB805; 23:J5F2jC2Fe972Kts2rr0Jz7zxdXFO6w5OBqhukm4x?= =?us-ascii?Q?FGlTso67RYUANH+8MH1I+jyLrr8t4SxIWYLqGlGNV7tNMgyMOyoyH6ixpdOH?= =?us-ascii?Q?Eu/AEP3UovQOzYSYKcg1SECe07miVRlbqIjLww2Hscb4RU+PGwjiazwsZcvU?= =?us-ascii?Q?isHgW4FS+KL1YbW7nSVvcGImM2XpUphuDA6etqIr8gL0riL9oQV4JKrl7eiL?= =?us-ascii?Q?48FcIbejj2/VTHYB+JPGpqLQUAbiep/NAygXLHZOsiJtht9OCd/W0COKhggF?= =?us-ascii?Q?+U4Ch/1FSBdXhqdXJl2/4JiGyFaA2+dzkym+JshTDZiLZGiuucby7cjdxcnf?= =?us-ascii?Q?C1kPD5mEM+9WqvuoWCswGlOY+dHRcvRPrxvnfpRw5nkVMtqu+l1sX1i8Vn5U?= =?us-ascii?Q?/p05Xa1GKTTgkk87JsLcrfd1rofxAgb7UygL+g7/TtzHuWS4syKEtRur3g2L?= =?us-ascii?Q?MIaV3YQD3amNP36b++a9dD0TiTbGN3+nt7qs+GrrJIMyuaadctmCEW8E0HPe?= =?us-ascii?Q?5YFPU1dzYHHhVwoaA8OlmoypapSvCrN63xF8tV1enyGk15qePs1SgtZsrklG?= =?us-ascii?Q?lubWP7W/con78I8BerPxO4oQPzaIFUi/5NI1BdG2v985UFPcZKEmINhi8V8k?= =?us-ascii?Q?yvMFCt8iRBHelKRwV5ictzlTsc9xRFb3fw+gMdraBfMQEXNQpOdSdRKUSpMb?= =?us-ascii?Q?2cAahxIyNFWEnaAve1K9WFebfDdmacAmtjHYK+uqDV76oE/LyW9RCk+rBoxe?= =?us-ascii?Q?vY8P6aXjqF4eRAwgFvMM+FZeQmMs+9THyxlrQ/B/9NF2sD0oqMPOVwybozY4?= =?us-ascii?Q?dMKWVIcdur2O+YVyk1AiI9KwMrty1Ud9Opgt/YgP1+5a40/l3XxP+2kGwpgI?= =?us-ascii?Q?HA+HYeYzTwzJGG9n14wIBufptHVFSF8+gKrhV9fQ4I3VKtrtFSWr00PmA+lc?= =?us-ascii?Q?Kui4faG5cte4KIn/dpSZkpgMgzpGGa8JnT7c2tfi2GcW9PpgQz0JFimSUc84?= =?us-ascii?Q?+OjXI5RpaK3XZkTBlwVdrFqNJ3GLqzbuw1kqgaT02lAJA3wYKlxXSmXZMljQ?= =?us-ascii?Q?kGcGZm16DOttXDcPEUBUMYs3AHRF4eqcsUApUmVVjSgswqTBEw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB805; 6:slZF/pYxEOcjy6DtSJsNWy0HEm0rM7uGzzia5DnOOLFmqyhHUrrTpCRgm8cvBrJLRmS0qVA7BPfH9k34KqxRNr+ZGC15GgFvvK8lFxdetorKMGeguvonFj2BDVA7bADT7uiDD11QIvWirUREjkTUXdEC6eZo1h9Y+Kd89K8ecwG3gxo0ss6CeekOYgVlYkG2GTiFNn/r8tv5tYr3UOsEwCgTSs4dSCcho8u0+rnyfYdf0ayC5qXHwpcb7Nx1JhDMimtGgSpZrkBx5YnC18TXggNOMssm3rntahOGZ+pN/2QthZnGMD+am89VJ0cF0HI6spdW6YQiiOCCgC8obeiyFD7toiE2tGy8n+6Y6Fkawhdc6EysG87CW3UvU0JZ66VpEXcAn+7D+oCjjQyHNyP4l/CzAXXmqXgOU5LaDnr1JNc8yWxJMxhpU09k/wcuJYH06t71fSyB4ijrNWg+JOmhNg==; 5:dEK27LExMpJX1JxccymY3onPpvSAecD0Rx8S5DdOto5MPw4DLH97cbj+Le82MVyyQAUpMlY3DSPx1zFZEtE7a07QDKXaWEWE8pN6LLu9EsqEVHtpbFMrQ+yIrkOEHdrz6tZT3qPsRnjrV77HOIkfkw==; 24:IFgskTCnxge4+Qmdd/Ek5Zs6YE9NiJruUwQ8eh4mcSrTZB7lzzRYjgrYuVj6WDn+dN4XOQ3X7f+DiiHRxXVrN+cgCIkkSApBXtxY3SEgIF8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB805; 7:30oCOVyuk72q4CJD1h+ud3VTkA64FtaZYXQ74gQrVdLkrOsgwiWlxaTl2hV6UqQ2kedNC08WQa0oT5FiWvgpcocoBrK1Ra8FjUfeeQ0khbsJib3ka21mL/bxlgpsb1V4aOCGvg/ifyEoYPRxSMhVxe05Ulwt5/z2tP+uRe54R2/rSyt1HlEhGjNyoa1nwB4Jq8Nsp+WsWGOHhIrxT+kTRl6znXRx5nK7v3DEH4CxU563a+Ay8zwybiwPuBKoNVMSJZz2DCYpJ7FN0eTrTNLv4XDUhwouY1qkV0acJfpBtcLqP1hPwSmGPYs60sVKEqmQ7awTqoIZYILh4luh0lYcNA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Apr 2017 12:23:05.6908 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR0701MB805 Subject: [dts] [PATCH v3 21/27] tests: short_live - taking into account cavium NICs + fixes 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: Wed, 19 Apr 2017 12:23:10 -0000 Testpmd must be run with hardware VLAN filter disabled as thunder driver does not support this feature - --disable-hw-vlan-filter is appended if NIC is Cavium device. Additional fixes done: waiting for DPDK application to be finished by calling `ps` in a loop and checking whether the process is still alive; sniffing in background scapy process fails at times, using tcpdump instead; if start_up_time fails it is checked if the problem was that time command seem not to be found (informing user about it). Signed-off-by: Angela Czubak --- tests/TestSuite_short_live.py | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/tests/TestSuite_short_live.py b/tests/TestSuite_short_live.py index 72745a9..45727a1 100644 --- a/tests/TestSuite_short_live.py +++ b/tests/TestSuite_short_live.py @@ -45,6 +45,7 @@ from test_case import TestCase from pmd_output import PmdOutput from settings import FOLDERS +from packet import Packet, sniff_packets, load_sniff_packets, strip_pktload # # # Test class. @@ -95,17 +96,14 @@ class TestShortLiveApp(TestCase): dmac = self.dut.get_mac_address(txPort) Dut_tx_mac = self.dut.get_mac_address(rxPort) - self.tester.scapy_background() count = 1 # if only one port rx/tx, we should check count 2 so that both # rx and tx packet are list if (txPort == rxPort): count = 2 - self.tester.scapy_append('p=sniff(iface="%s",count=%d,timeout=5)' % (rxitf, count)) - self.tester.scapy_append('RESULT=str(p)') - self.tester.scapy_foreground() + inst = sniff_packets(intf=rxitf, count=count) pktlen = pktSize - 14 padding = pktlen - 20 @@ -114,7 +112,11 @@ class TestShortLiveApp(TestCase): self.tester.scapy_execute() time.sleep(3) - out = self.tester.scapy_get_result() + p = load_sniff_packets(inst) + nr_packets=len(p) + reslist = [p[i].pktgen.pkt for i in range(nr_packets)] + out = str(reslist) + if received: self.verify(('PPP' in out) and 'src=%s'% Dut_tx_mac in out, "Receive test failed") else: @@ -125,7 +127,10 @@ class TestShortLiveApp(TestCase): Basic rx/tx forwarding test """ #dpdk start - self.dut.send_expect("./%s/app/testpmd -c 0xf -n 4 -- -i --portmask=0x3" % self.target, "testpmd>", 120) + cmd = "./%s/app/testpmd -c 0xf -n 4 -- -i --portmask=0x3" + if "cavium" in self.dut.nic_type: + cmd += " --disable-hw-vlan-filter" + self.dut.send_expect(cmd % self.target, "testpmd>", 120) self.dut.send_expect("set fwd mac", "testpmd>") self.dut.send_expect("set promisc all off", "testpmd>") self.dut.send_expect("start", "testpmd>") @@ -144,23 +149,33 @@ class TestShortLiveApp(TestCase): print "start time: %s s"%time[0] else: self.verify(0, "start_up_time failed") + if "time: command not found" in out: + print "Command time is not installed or is a shell keyword" def test_clean_up_with_signal_testpmd(self): repeat_time = 5 + cmd = "./%s/app/testpmd -c 0xf -n 4 -- -i --portmask=0x3" + if "cavium" in self.dut.nic_type: + cmd += " --disable-hw-vlan-filter" for i in range(repeat_time): #dpdk start print "clean_up_with_signal_testpmd round %d" % (i + 1) - self.dut.send_expect("./%s/app/testpmd -c 0xf -n 4 -- -i --portmask=0x3" % self.target, "testpmd>", 120) + self.dut.send_expect(cmd % self.target, "testpmd>", 120) self.dut.send_expect("set fwd mac", "testpmd>") self.dut.send_expect("set promisc all off", "testpmd>") self.dut.send_expect("start", "testpmd>") self.check_forwarding([0, 1], self.nic) + pid = self.dut.send_expect("ps -o pid -C testpmd | tail -n +2", "#", 60, True) # kill with differen Signal if i%2 == 0: self.dut.send_expect("pkill -2 testpmd", "#", 60, True) else: self.dut.send_expect("pkill -15 testpmd", "#", 60, True) + # waiting for the process to truly finish + while True: + no_lines = int(self.dut.send_expect("ps -p %d | wc -l" % int(pid), "#", 60, True)) + if 1 == no_lines: break # only header is printed out def test_clean_up_with_signal_l2fwd(self): repeat_time = 5 @@ -172,10 +187,16 @@ class TestShortLiveApp(TestCase): self.check_forwarding([0, 1], self.nic) # kill with differen Signal + pid = self.dut.send_expect("ps -o pid -C l2fwd | tail -n +2", "#", 60, True) if i%2 == 0: self.dut.send_expect("pkill -2 l2fwd", "#", 60, True) else: self.dut.send_expect("pkill -15 l2fwd", "#", 60, True) + + while True: + no_lines = int(self.dut.send_expect("ps -p %d | wc -l" % int(pid), "#", 60, True)) + if 1 == no_lines: break + def test_clean_up_with_signal_l3fwd(self): repeat_time = 5 @@ -186,12 +207,17 @@ class TestShortLiveApp(TestCase): self.dut.send_expect("./examples/l3fwd/build/app/l3fwd -n 4 -c 0xf -- -p 0x3 --config='(0,0,1),(1,0,2)' &", "L3FWD:", 120) self.check_forwarding([0, 0], self.nic) + pid = self.dut.send_expect("ps -o pid -C l3fwd | tail -n +2", "#", 60, True) # kill with differen Signal if i%2 == 0: self.dut.send_expect("pkill -2 l3fwd", "#", 60, True) else: self.dut.send_expect("pkill -15 l3fwd", "#", 60, True) - + + while True: + no_lines = int(self.dut.send_expect("ps -p %d | wc -l" % int(pid), "#", 60, True)) + if 1 == no_lines: break + def tear_down(self): """ Run after each test case. -- 2.7.4