[v2,2/2] tests/TestSuite_fortville_rss_input.py add flow query test case

Message ID 20200811060745.16434-2-junyux.jiang@intel.com (mailing list archive)
State Accepted
Headers
Series [v2,1/2] test_plans/fortville_rss_input_test_plan.rst: add flow query test case |

Commit Message

Junyu Jiang Aug. 11, 2020, 6:07 a.m. UTC
  add test case for rss flow query.

Signed-off-by: Junyu Jiang <junyux.jiang@intel.com>
---
 tests/TestSuite_fortville_rss_input.py | 31 ++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
  

Comments

Fu, Qi Aug. 12, 2020, 1:30 a.m. UTC | #1
Acked-by: Fu, Qi <qi.fu@intel.com>

Best regards,
Fu, Qi

> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of Junyu Jiang
> Sent: Tuesday, August 11, 2020 2:08 PM
> To: dts@dpdk.org
> Cc: Jiang, JunyuX <junyux.jiang@intel.com>
> Subject: [dts] [PATCH v2 2/2] tests/TestSuite_fortville_rss_input.py add flow
> query test case
> 
> add test case for rss flow query.
> 
> Signed-off-by: Junyu Jiang <junyux.jiang@intel.com>
> ---
>  tests/TestSuite_fortville_rss_input.py | 31 ++++++++++++++++++++++++++
>  1 file changed, 31 insertions(+)
> 
> diff --git a/tests/TestSuite_fortville_rss_input.py
> b/tests/TestSuite_fortville_rss_input.py
> index d1ff39c..8a0c41e 100644
> --- a/tests/TestSuite_fortville_rss_input.py
> +++ b/tests/TestSuite_fortville_rss_input.py
> @@ -3962,6 +3962,37 @@ class TestFortvilleRssGranularityConfig(TestCase):
> 
>          self.dut.send_expect("quit", "# ", 30)
> 
> +    def test_flow_query(self):
> +        """
> +        Test the flow rule query.
> +        """
> +        self.start_testpmd()
> +
> +        self.dut.send_expect("flow create 0 ingress pattern eth / ipv4 / tcp / end
> actions rss types ipv4-tcp end queues end / end", "testpmd> ")
> +        self.dut.send_expect("flow create 0 ingress pattern eth / ipv4 / udp / end
> actions rss types ipv4-udp l3-src-only end queues end func symmetric_toeplitz /
> end", "testpmd> ")
> +        self.dut.send_expect("flow create 0 ingress pattern end actions rss types
> end queues end func simple_xor / end", "testpmd> ")
> +        self.dut.send_expect("flow create 0 ingress pattern end actions rss types
> end queues 1 2 end / end", "testpmd> ")
> +
> +        rexp = r"flow query 0 (\d) rss\r\r\nRSS:\r\n queues: ([\S\s]+?)\r\n function:
> (\S+?)\r\n types:\r\n  ([\s\S]+)"
> +        out0 = self.dut.send_expect("flow query 0 0 rss", "testpmd> ")
> +        m0 = re.match(rexp, out0.strip())
> +        self.verify("none" == m0.group(2) and "default" == m0.group(3) and "ipv4-
> tcp" == m0.group(4) , "Query error")
> +        out1 = self.dut.send_expect("flow query 0 1 rss", "testpmd> ")
> +        m1 = re.match(rexp, out1.strip())
> +        self.verify("none" == m1.group(2) and "symmetric_toeplitz" == m1.group(3)
> and "ipv4-udp" in m1.group(4) and "l3-src-only" in m1.group(4) , "Query error")
> +        out2 = self.dut.send_expect("flow query 0 2 rss", "testpmd> ")
> +        m2 = re.match(rexp, out2.strip())
> +        self.verify("none" == m2.group(2) and "simple_xor" == m2.group(3) and
> "none" == m2.group(4) , "Query error")
> +        out3 = self.dut.send_expect("flow query 0 3 rss", "testpmd> ")
> +        m3 = re.match(rexp, out3.strip())
> +        self.verify("1 2" == m3.group(2) and "default" == m3.group(3) and "none"
> == m3.group(4) , "Query error")
> +
> +        self.dut.send_expect("flow flush 0", "testpmd> ")
> +        out4 = self.dut.send_expect("flow query 0 0 rss", "testpmd> ")
> +        self.verify("Flow rule #0 not found" in out4, "Failed to rss query!")
> +
> +        self.dut.send_expect("quit", "# ", 30)
> +
>      def tear_down(self):
>          """
>          Run after each test case.
> --
> 2.17.1
  
Tu, Lijuan Aug. 13, 2020, 3 a.m. UTC | #2
> Subject: [dts] [PATCH v2 2/2] tests/TestSuite_fortville_rss_input.py add flow
> query test case
> 
> add test case for rss flow query.
> 
> Signed-off-by: Junyu Jiang <junyux.jiang@intel.com>
> ---
>  tests/TestSuite_fortville_rss_input.py | 31 ++++++++++++++++++++++++++

Applied
  

Patch

diff --git a/tests/TestSuite_fortville_rss_input.py b/tests/TestSuite_fortville_rss_input.py
index d1ff39c..8a0c41e 100644
--- a/tests/TestSuite_fortville_rss_input.py
+++ b/tests/TestSuite_fortville_rss_input.py
@@ -3962,6 +3962,37 @@  class TestFortvilleRssGranularityConfig(TestCase):
 
         self.dut.send_expect("quit", "# ", 30)
 
+    def test_flow_query(self):
+        """
+        Test the flow rule query.
+        """
+        self.start_testpmd()
+
+        self.dut.send_expect("flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss types ipv4-tcp end queues end / end", "testpmd> ")
+        self.dut.send_expect("flow create 0 ingress pattern eth / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end queues end func symmetric_toeplitz / end", "testpmd> ")
+        self.dut.send_expect("flow create 0 ingress pattern end actions rss types end queues end func simple_xor / end", "testpmd> ")
+        self.dut.send_expect("flow create 0 ingress pattern end actions rss types end queues 1 2 end / end", "testpmd> ")
+
+        rexp = r"flow query 0 (\d) rss\r\r\nRSS:\r\n queues: ([\S\s]+?)\r\n function: (\S+?)\r\n types:\r\n  ([\s\S]+)"
+        out0 = self.dut.send_expect("flow query 0 0 rss", "testpmd> ")
+        m0 = re.match(rexp, out0.strip())
+        self.verify("none" == m0.group(2) and "default" == m0.group(3) and "ipv4-tcp" == m0.group(4) , "Query error")
+        out1 = self.dut.send_expect("flow query 0 1 rss", "testpmd> ")
+        m1 = re.match(rexp, out1.strip())
+        self.verify("none" == m1.group(2) and "symmetric_toeplitz" == m1.group(3) and "ipv4-udp" in m1.group(4) and "l3-src-only" in m1.group(4) , "Query error")
+        out2 = self.dut.send_expect("flow query 0 2 rss", "testpmd> ")
+        m2 = re.match(rexp, out2.strip())
+        self.verify("none" == m2.group(2) and "simple_xor" == m2.group(3) and "none" == m2.group(4) , "Query error")
+        out3 = self.dut.send_expect("flow query 0 3 rss", "testpmd> ")
+        m3 = re.match(rexp, out3.strip())
+        self.verify("1 2" == m3.group(2) and "default" == m3.group(3) and "none" == m3.group(4) , "Query error")
+
+        self.dut.send_expect("flow flush 0", "testpmd> ")
+        out4 = self.dut.send_expect("flow query 0 0 rss", "testpmd> ")
+        self.verify("Flow rule #0 not found" in out4, "Failed to rss query!")
+
+        self.dut.send_expect("quit", "# ", 30)
+
     def tear_down(self):
         """
         Run after each test case.