[v2,2/2] tests/TestSuite_fortville_rss_input.py add flow query test case
Commit Message
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
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
> 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
@@ -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.