[V1,3/3] tests/generic_flow_api: add two test cases

Message ID 20210825183034.63754-4-linglix.chen@intel.com (mailing list archive)
State Accepted
Headers
Series generic_flow_api: add two test cases |

Checks

Context Check Description
ci/Intel-dts-test fail Testing issues

Commit Message

Lingli Chen Aug. 25, 2021, 6:30 p.m. UTC
  add two test cases

Signed-off-by: Lingli Chen <linglix.chen@intel.com>
---
 tests/TestSuite_generic_flow_api.py | 48 +++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
  

Comments

Lin, Xueqin Aug. 30, 2021, 6:06 a.m. UTC | #1
> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of Lingli Chen
> Sent: Thursday, August 26, 2021 2:31 AM
> To: dts@dpdk.org
> Cc: Chen, LingliX <linglix.chen@intel.com>
> Subject: [dts] [PATCH V1 3/3] tests/generic_flow_api: add two test cases
> 
> add two test cases
> 
> Signed-off-by: Lingli Chen <linglix.chen@intel.com>
Acked-by: Xueqin Lin <xueqin.lin@intel.com>
> ---
>  tests/TestSuite_generic_flow_api.py | 48 +++++++++++++++++++++++++++++
>  1 file changed, 48 insertions(+)
> 
> diff --git a/tests/TestSuite_generic_flow_api.py
> b/tests/TestSuite_generic_flow_api.py
> index e8171589..f64a5be5 100644
> --- a/tests/TestSuite_generic_flow_api.py
> +++ b/tests/TestSuite_generic_flow_api.py
> @@ -2351,6 +2351,54 @@ class TestGeneric_flow_api(TestCase):
>          rule_num = extrapkt_rulenum['rulenum']
>          self.verify_rulenum(rule_num)
> 
> +    def test_create_same_rule_after_destroy(self):
> +
> +        self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --
> txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
> +        self.dut.send_expect("set fwd rxonly", "testpmd> ", 20)
> +        self.dut.send_expect("set verbose 1", "testpmd> ", 20)
> +        self.dut.send_expect("start", "testpmd> ", 20)
> +        time.sleep(2)
> +
> +        self.dut.send_expect(
> +            "flow create 0 ingress pattern eth / ipv4 / udp src is 32 / end actions
> queue index 2 / end", "created")
> +
> +        out = self.dut.send_expect("flow destroy 0 rule 0", "testpmd> ")
> +        p = re.compile(r"Flow rule #(\d+) destroyed")
> +        m = p.search(out)
> +        self.verify(m, "flow rule 0 delete failed" )
> +
> +        self.dut.send_expect(
> +            "flow create 0 ingress pattern eth / ipv4 / udp src is 32 / end actions
> queue index 2 / end", "created")
> +
> +        self.sendpkt(pktstr='Ether(dst="%s")/IP()/UDP(sport=32)/Raw("x" *
> 20)' % self.pf_mac)
> +        self.verify_result("pf", expect_rxpkts="1", expect_queue="2",
> verify_mac=self.pf_mac)
> +        self.sendpkt(pktstr='Ether(dst="%s")/IP()/UDP(dport=32)/Raw("x" *
> 20)' % self.pf_mac)
> +        self.verify_result("pf", expect_rxpkts="1", expect_queue="0",
> verify_mac=self.pf_mac)
> +
> +    def test_create_different_rule_after_destroy(self):
> +
> +        self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --
> txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
> +        self.dut.send_expect("set fwd rxonly", "testpmd> ", 20)
> +        self.dut.send_expect("set verbose 1", "testpmd> ", 20)
> +        self.dut.send_expect("start", "testpmd> ", 20)
> +        time.sleep(2)
> +
> +        self.dut.send_expect(
> +            "flow create 0 ingress pattern eth / ipv4 / udp src is 32 / end actions
> queue index 2 / end", "created")
> +
> +        out = self.dut.send_expect("flow destroy 0 rule 0", "testpmd> ")
> +        p = re.compile(r"Flow rule #(\d+) destroyed")
> +        m = p.search(out)
> +        self.verify(m, "flow rule 0 delete failed" )
> +
> +        self.dut.send_expect(
> +            "flow create 0 ingress pattern eth / ipv4 / udp dst is 32 / end actions
> queue index 2 / end", "created")
> +
> +        self.sendpkt(pktstr='Ether(dst="%s")/IP()/UDP(sport=32)/Raw("x" *
> 20)' % self.pf_mac)
> +        self.verify_result("pf", expect_rxpkts="1", expect_queue="0",
> verify_mac=self.pf_mac)
> +        self.sendpkt(pktstr='Ether(dst="%s")/IP()/UDP(dport=32)/Raw("x" *
> 20)' % self.pf_mac)
> +        self.verify_result("pf", expect_rxpkts="1", expect_queue="2",
> verify_mac=self.pf_mac)
> +
>      def tear_down(self):
>          """
>          Run after each test case.
> --
> 2.32.0
  

Patch

diff --git a/tests/TestSuite_generic_flow_api.py b/tests/TestSuite_generic_flow_api.py
index e8171589..f64a5be5 100644
--- a/tests/TestSuite_generic_flow_api.py
+++ b/tests/TestSuite_generic_flow_api.py
@@ -2351,6 +2351,54 @@  class TestGeneric_flow_api(TestCase):
         rule_num = extrapkt_rulenum['rulenum']
         self.verify_rulenum(rule_num)
 
+    def test_create_same_rule_after_destroy(self):
+
+        self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
+        self.dut.send_expect("set fwd rxonly", "testpmd> ", 20)
+        self.dut.send_expect("set verbose 1", "testpmd> ", 20)
+        self.dut.send_expect("start", "testpmd> ", 20)
+        time.sleep(2)
+
+        self.dut.send_expect(
+            "flow create 0 ingress pattern eth / ipv4 / udp src is 32 / end actions queue index 2 / end", "created")
+
+        out = self.dut.send_expect("flow destroy 0 rule 0", "testpmd> ")
+        p = re.compile(r"Flow rule #(\d+) destroyed")
+        m = p.search(out)
+        self.verify(m, "flow rule 0 delete failed" )
+
+        self.dut.send_expect(
+            "flow create 0 ingress pattern eth / ipv4 / udp src is 32 / end actions queue index 2 / end", "created")
+
+        self.sendpkt(pktstr='Ether(dst="%s")/IP()/UDP(sport=32)/Raw("x" * 20)' % self.pf_mac)
+        self.verify_result("pf", expect_rxpkts="1", expect_queue="2", verify_mac=self.pf_mac)
+        self.sendpkt(pktstr='Ether(dst="%s")/IP()/UDP(dport=32)/Raw("x" * 20)' % self.pf_mac)
+        self.verify_result("pf", expect_rxpkts="1", expect_queue="0", verify_mac=self.pf_mac)
+
+    def test_create_different_rule_after_destroy(self):
+
+        self.pmdout.start_testpmd("%s" % self.cores, "--disable-rss --rxq=%d --txq=%d" % (MAX_QUEUE+1, MAX_QUEUE+1))
+        self.dut.send_expect("set fwd rxonly", "testpmd> ", 20)
+        self.dut.send_expect("set verbose 1", "testpmd> ", 20)
+        self.dut.send_expect("start", "testpmd> ", 20)
+        time.sleep(2)
+
+        self.dut.send_expect(
+            "flow create 0 ingress pattern eth / ipv4 / udp src is 32 / end actions queue index 2 / end", "created")
+
+        out = self.dut.send_expect("flow destroy 0 rule 0", "testpmd> ")
+        p = re.compile(r"Flow rule #(\d+) destroyed")
+        m = p.search(out)
+        self.verify(m, "flow rule 0 delete failed" )
+
+        self.dut.send_expect(
+            "flow create 0 ingress pattern eth / ipv4 / udp dst is 32 / end actions queue index 2 / end", "created")
+
+        self.sendpkt(pktstr='Ether(dst="%s")/IP()/UDP(sport=32)/Raw("x" * 20)' % self.pf_mac)
+        self.verify_result("pf", expect_rxpkts="1", expect_queue="0", verify_mac=self.pf_mac)
+        self.sendpkt(pktstr='Ether(dst="%s")/IP()/UDP(dport=32)/Raw("x" * 20)' % self.pf_mac)
+        self.verify_result("pf", expect_rxpkts="1", expect_queue="2", verify_mac=self.pf_mac)
+
     def tear_down(self):
         """
         Run after each test case.