From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0057.outbound.protection.outlook.com [104.47.32.57]) by dpdk.org (Postfix) with ESMTP id 1709E69D4 for ; Mon, 10 Apr 2017 19:10:00 +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=R07Dla6PiceNts3+v9qYuaPvcwZlqKzFd/8m2OjmJy6N0KCkZ7/G7FpWaXIwB3Et1CrtpEVq0ek+oEFxyMtsGPGP/dwnKW96vggOYQ1Y5zAcM4kPKxgmfM5AuFIKReOMCxCdJwn3P0vO+HXbK67p7ncp+01Op4SKw+ve6vB83A0= 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 DM2PR0701MB812.namprd07.prod.outlook.com (10.242.127.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1019.17; Mon, 10 Apr 2017 17:09:58 +0000 From: Angela Czubak To: dts@dpdk.org Cc: Angela Czubak Date: Mon, 10 Apr 2017 19:09:16 +0200 Message-Id: <1491844162-16300-23-git-send-email-aczubak@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1491844162-16300-1-git-send-email-aczubak@caviumnetworks.com> References: <1491501092-14278-1-git-send-email-aczubak@caviumnetworks.com> <1491844162-16300-1-git-send-email-aczubak@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [31.172.191.173] X-ClientProxiedBy: DB6PR05CA0010.eurprd05.prod.outlook.com (10.170.218.23) To DM2PR0701MB812.namprd07.prod.outlook.com (10.242.127.26) X-MS-Office365-Filtering-Correlation-Id: 10e3d28d-01c4-4ecc-7b81-08d480346b4b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:DM2PR0701MB812; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB812; 3:hovHbEDq2migzBKxnBe1C8vbHPV6wThSR4osSEX/in4cVEQ8jAbkm/w+X61hT+AVx+mDMVY04oCsg92vxEyzhUFb7/0wnlmepeLJGdG8YsyYEb3GuKK2Hkxb1FAEZUay5xbDItT1EU7/Kp6MWTXsOXg0vdtfrLohv+MDHDwtAUAwcel72JSzVcrGoV9sJSlaitAF7WMGAbcR6kbuoqqqOOcZ5etg/rl2IGbEmC55wSWy9U15ItJU0FNR0X9s7gKk4S5mu2MMb0QpKINY+vzrO+JEr42loYU65Y/37I/ndyr8QOToTYNjgSMWwzEMeFKTLjZwV9BouSrlb3gm2lfoaQ==; 25:alU+fNOUA/UikAiC7RT4DiEg0zOO0sVLyedf912Drpby8W9Qjaetxx8CKLKQjw1Ry1q6U9quUjHNmFwdKHaWta+pcdl9RthEyYA//tVy65kTMw9kNFxXjVfc1ZTQP4LlkZrV8u8rq12KkolwCPpoz5ZE0iUmGyGbNGjaipV4n2TWDkgsb6Gy8rnEQCBdQSCSzkLlaYY556yPu3k3kTXCpiPlX8whYxQM9JVjyx2KSuaBFKl5kB7QFpqdNvhCGCwrt+MILDCS+20JzyBi3J5pkuR1mN26wY3bae5cCXMmC/FrklNpJoUsAwCiXkxkQ1E2pS4odB9q8sL+5wEs+uluHMSLuUATAAKdXnZABDsy/kpI6iLsMv7rOsw97p7i9F1iy97Hospd77ZLEmXXHS18U/IVm6f4OBlU9nqKr5ZK0cvybPO7tj2NgfsBeNS9t0mi8lvjRwzBiyhee6zJ9qyEUA== X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB812; 31:a4ChaXF4TMhJl0SJKHblCiBy2vxNQ4ocAZQ5FGG+pySGNfrgXD0cePvWqAlYc2JQ68NmlcmHN1MxPHB0paDt5ERsXlLGXc07W78WRe1ibEnYKq91HfbwecnwTeRqddyDEhKoss5Fj7QbE3jmGolAXnheevl7MXHgzMg63N+7JYW1D2dSKtihAHNuIuuH+vv6aJOzEBZJEFJFX+LDW0tIU10AkPJBZtjbOvg3fQDlMH70rQ9mgG/Vn7FCfE8fM875; 20:UFNnMwCjZ1NiYC5yg6obZv3AW9BWj2g2mzgxrfnxQ+OCCGOIKKj7Pi9ixCrhM529rHf2KMhdpQ8tAmpeU+IM8O0lvYN1yL+HG5iU+4n/iwMytipIXV2msvQr8t/einYumnbx8TZZs/SzW1ndOFdGy2MSuuUlh176YcrpadTjLNEx5/sW+N30QcF/SlMxYhnL1QZrRUAfPRnfmGMdOaxQ49rVfgJIfjvUXwnF2J4ZGJHG2dRpkWn9X0ZTkVDFx3098TeVKvWbUnRH9LFDFRSox0MVGXi4FpLMnLGhzZbhlBEXySbetJwQbaTc2umJe0o5/ivCEvjhVo0utOMxUdNdPJ6s+FImtMhkARzoMMSSakrNMxFu8Lr7fgsM+h2wxTRbHBLqy8MZ7gKfWbDij4LwwB6z8jbNy6nIqckYzdDr39CibCIl0TxdAHEl8YSscHff+4FhIrx4G9cwNn82oPXaXCgr6HMk1zKeuhD95RLSF9qnZzywJK8RIybm9r4o+Z7ZLXvxbSgWHePMk57muWRl4Y9aqUJjPQzJ1Do+GuGucI586LLxVOryWYaTaiMlgxuSRcIw/sn71I4pAXTbz6Ah1m+N45dPHMaxJNulnGgoj8Y= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(6072148); SRVR:DM2PR0701MB812; BCL:0; PCL:0; RULEID:; SRVR:DM2PR0701MB812; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB812; 4:tKCLJZyh7Wys4NQvbzrVk7qcD0cEufzx5iMkeWciLPV+N5URwsITXxG/6NSGuWWUtth6q115Z33bYw00CXZROOx8riNvMBSmX00snKcPSkehqUxB5VEYcYtEGxmxLrGd9Oq+FMc2FQnjQmVaKSA+nmtib90sVM5xJCb8EZAsJEa48OaXuyycoyMHs8Wo7stHUPp3vPg/fYEapOYaXCeLjMfJApRYH0mH6KQuL20G5kKOJp19HPl+pv+Wx/ZOu0ZNKj29ieFHmP8VB1uwyBKIyjseA8qKPdAAcQghXDBPavuJcian9GvsbOn9jnKtVXbOiyNcIwwxOvUnnE6w/WFQt+uFLrngoFoi6AxRrXcjzE0oQbCyIPoKLo8eHDq2eNoInsVeia1te5TPYzOSQxyBOwHAMvKkSdUjCpEk3+HzR1PuxIJHqkBcAQI+PzshrQJP76nu2iO06AaX24/SFQEX0N+7yT6NX6Lwn8dOkNyaOr0Kf1yeumoAbrTAMBiEGeK7kCN+dcFFlgGvzc7dyiMx7lNRSzYAOiblw27VLPKfVK4mrDrEIQw1MDOQcoHUhotTdGN9L12HROWN7qk2WkYGrMSN6zNj3TkBY84OmyWFKsQiOKU5B3jzQMQJ+2DSjhJsLC6CvvsQW37eZVw+J4LGrhOaP45U9P7CFtnna/LUxQn0CCe3Wd7BNRAN/HhGxt22 X-Forefront-PRVS: 027367F73D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39840400002)(39410400002)(39450400003)(39400400002)(8676002)(81166006)(2950100002)(15650500001)(305945005)(6512007)(7736002)(42882006)(6916009)(50226002)(48376002)(47776003)(6506006)(2906002)(53936002)(66066001)(6666003)(189998001)(6116002)(110136004)(33646002)(36756003)(38730400002)(107886003)(2361001)(5003940100001)(4326008)(3846002)(2351001)(5660300001)(6486002)(50466002)(50986999)(76176999)(42186005)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0701MB812; H:angela-H81M-S1.semihalf.local; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0701MB812; 23:FhZ4ajTpuDhS53OQdERwFFtLD7pef5rtoHV/BEe+?= =?us-ascii?Q?+d8Ki60+qApvFbtQOTiFa83rhhbhxftkQdMSlplVl09UAfuPhcXyqkVdQEO7?= =?us-ascii?Q?383PX98gq+GRAAXWj4w9vSlw7JOm52SQ4Kc4/d2cYdb3q3J/wsD1GD5Ve+Yz?= =?us-ascii?Q?bcvAAdYlR8SkDMc19vnGa31aCe6AXGoshkVVlE0fWtqVDOIaCemLjMe33ptq?= =?us-ascii?Q?ZYf3QVLm83deYkK7HOWa20hjQyDSlPabNZUHwead8gj81ur8/djp6dckkJAn?= =?us-ascii?Q?1jx47JbXVq9Acl37F+gKOAp7kNjXFUcRDD9XFugQZ4V6wr9lvWSFUYxlGNkH?= =?us-ascii?Q?dJ6eoVPas5DFRdaPvhaCTak6uDXhZ30AxXSTz2Z+YYrje5buD+I4YPNYziIr?= =?us-ascii?Q?BvdyL6LqQWVWW/U/SgY90Tv4eor5JvTjNAgGOwmZsdK/7D6OUz1b59OjWudC?= =?us-ascii?Q?prud+1eQ1c07EyiNhdP8al5ZRXxLr+/cS+l/UhsKge2X1D/T9L1RvSf2ZROH?= =?us-ascii?Q?qRaS0NneH1L01yIfplT5cebzZes0JSnJm+j19G7++CldHCYV5XdVvGhwrMOV?= =?us-ascii?Q?Lr3LTApADArxqDsf5Jztwk1fFnkJ6CxO5Rtfu0lP/0z7NDgQPqdTM/1FkNYi?= =?us-ascii?Q?DJ2oe2ouN6X5ONEbP/OgpgUH2XTSbkrjYTs1COREyZ1VuTgp4yMPRqqDNX6j?= =?us-ascii?Q?81KyAufOATREwRf3IWnMHHO+UoalO/OE4v6LItn7qM2q4Tu0w0EYnWh0r4ZU?= =?us-ascii?Q?d5MrXyewUS7B0Jj6JdnCVWLnQab3H418f0txGl0n0ij09Aeb7U6iKk3LtteR?= =?us-ascii?Q?MS7oQtwoR+IC3hIND129oXvXz0AcK8uvxOFkquc5m+FN/omtyJdKqowGWwoU?= =?us-ascii?Q?PKd4Am/mM0tldhjmXybSw0u9PdZ/ryTLP6GBH3yWAT4zntaTVTZrkV9MUfk5?= =?us-ascii?Q?/WbWFjyNVQX535qAi2WoKTgMIBtqfd8oZEyO6E/N6sJ/orvB/W3QZkyQEpsP?= =?us-ascii?Q?aZgHJuNTizxELIzuywekPYOBppa6+P04xQwHxnf80KGBwW1tVuJwGtLxgjL9?= =?us-ascii?Q?o+GUVW7vPKHR1qVFxhXVrr1bGAdRuoLg0jpJO/FoxZEduoHHcg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB812; 6:3Ma7G+PIT6B8U2CmhmldCxixBq9YMA8n8OQeQONJNbaLgquPqUnW5/aSjJwlZjn/Pl0C0oa9tLgs/nWiO9vb3kG01FonnHMi0lV7FU3sOSEXRd6Mps4iibtD+oe5D2H7rRXLFa0R61tsAc4AdJ23ymX+AmcObgVrC1MuTR0daZkg3xGaT/QN6rm7dHxJ3S+eyFZlWuQgumTDemoDIstlWLBfMayIeGRug76yvD/67FHZ7G+sBjrYde2fwXuKU0r7dFXbuww0DOZsaGx3KheVnuhbi1zOJ4Yg4Uhwo9VI/lHExm0vmnLzl7woduc9zkvpncOFvMtODbDufpfAjkxfSDHGEzLTLl+tRf+A8LFby1agOnzUtc1VyLrIzEU5NjnKI9aZT0n6lR2g50C+NyGzDggKedfmmtDEktAutj4hHn6s8NEzwkDvmLNpvfwPuE/l5imr8SqUkKErP07tYGTQ7Q==; 5:cK8nuxmMMyrhJPdRyYruGCQ9TPnOYsuA18Sk7CFZgj9IyZUOaKOlR+7qES3/I+Q4WqxrZlOTYg9P4clgnIhjdoZ1CzHugmH9xaY3tjGhDQdZH1hTESKj9jpg5yx/DLvFz0E2QEbB1OP0zuRLUyam+w==; 24:uAJNdM1njnCOZVXLjYs4QKbOlFs61O5AHTBuft8vlGHxW6ePexrEGGav6YGrkZP2HQ9mRN1i0KOfZks8zGgI1x1kjk0zf7suHCVHCJnvS0g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0701MB812; 7:w99DKyFzVDoV35nuixUeEorFkj+IzlLEV0u39T/oq0LUjCKLoKH6j0HMcNiMDHGkbV2qpV6h4wFKQdCNqtDIA2mlOHfzr9hOkEiE2U64oSo78dC/ZAEhfTYcteciqXwp6VhdbaXRs13pOxPParJoKJKqiqnWRWnATJVB+atzmKhsLn9OL9Dr8wfZCC8VfVQysOQ85o3nIkQf9DrecjWpgWGxK/poMj6/fDDi6U1P+luBQ664eoYAufsw5HFRVYHvRb97PFr2bp+KZ1AvhQHckRwKSSRibEQPBmyC0uD8b5+o0GdddQSazbcfOhOnpvm3Rt2OKOvhyUT+qoSANo+rPA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Apr 2017 17:09:58.6908 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0701MB812 Subject: [dts] [PATCH v2 22/28] 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: Mon, 10 Apr 2017 17:10:00 -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