test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH V1] tests: judge tcpdump version when use flow direction params
@ 2019-06-10 23:07 lihong
  2019-06-11  6:34 ` Yao, BingX Y
  2019-06-12  6:23 ` Tu, Lijuan
  0 siblings, 2 replies; 3+ messages in thread
From: lihong @ 2019-06-10 23:07 UTC (permalink / raw)
  To: dts; +Cc: lihong

The params of flow direction in tcpdump is varied by tcpdump version.
So add function to get the param base on the version.

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 tests/TestSuite_flow_classify_softnic.py | 27 +++++++++++++++++++++++++--
 tests/TestSuite_ip_pipeline.py           | 27 +++++++++++++++++++++++++--
 2 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/tests/TestSuite_flow_classify_softnic.py b/tests/TestSuite_flow_classify_softnic.py
index 9b339ca..88dcc7e 100644
--- a/tests/TestSuite_flow_classify_softnic.py
+++ b/tests/TestSuite_flow_classify_softnic.py
@@ -120,14 +120,35 @@ class TestFlowClassifySoftnic(TestCase):
         command = "sed -i \'/^table action/a" + cmd + "\' ./drivers/net/softnic/flow_classify_softnic/%s" % filename
         self.dut.send_expect(command, "# ", 20)
 
+    def get_flow_direction_param_of_tcpdump(self):
+        """
+        get flow dirction param depend on tcpdump version
+        """
+        param = ""
+        direct_param = r"(\s+)\[ (\S+) in\|out\|inout \]"
+        out = self.tester.send_expect('tcpdump -h', '# ')
+        for line in out.split('\n'):
+            m = re.match(direct_param, line)
+            if m:
+                opt = re.search("-Q", m.group(2));
+                if opt:
+                    param = "-Q" + " in"
+                else:
+                    opt = re.search("-P", m.group(2));
+                    if opt:
+                        param = "-P" + " in"
+        if len(param) == 0:
+            self.logger.info("tcpdump not support direction choice!!!")
+        return param
+
     def tcpdump_start_sniff(self, interface, filters=""):
         """
         Starts tcpdump in the background to sniff packets that received by interface.
         """
         command = 'rm -f /tmp/tcpdump_{0}.pcap'.format(interface)
         self.tester.send_expect(command, '#')
-        command = 'tcpdump -n -e -Q in -w /tmp/tcpdump_{0}.pcap -i {0} {1} 2>/tmp/tcpdump_{0}.out &'\
-                  .format(interface, filters)
+        command = 'tcpdump -n -e {0} -w /tmp/tcpdump_{1}.pcap -i {1} {2} 2>/tmp/tcpdump_{1}.out &'\
+                  .format(self.param_flow_dir, interface, filters)
         self.tester.send_expect(command, '# ')
 
     def tcpdump_stop_sniff(self):
@@ -373,6 +394,8 @@ class TestFlowClassifySoftnic(TestCase):
         self.tester_itf = self.tester.get_interface(localPort)
         self.copy_config_files_to_dut()
 
+        self.param_flow_dir = self.get_flow_direction_param_of_tcpdump()
+
     def set_up(self):
         """
         Run before each test case.
diff --git a/tests/TestSuite_ip_pipeline.py b/tests/TestSuite_ip_pipeline.py
index 390c69d..f05b5cd 100644
--- a/tests/TestSuite_ip_pipeline.py
+++ b/tests/TestSuite_ip_pipeline.py
@@ -64,14 +64,35 @@ from scapy.sendrecv import sendp
 
 class TestIPPipeline(TestCase):
 
+    def get_flow_direction_param_of_tcpdump(self):
+        """
+        get flow dirction param depend on tcpdump version
+        """
+        param = ""
+        direct_param = r"(\s+)\[ (\S+) in\|out\|inout \]"
+        out = self.tester.send_expect('tcpdump -h', '# ')
+        for line in out.split('\n'):
+            m = re.match(direct_param, line)
+            if m:
+                opt = re.search("-Q", m.group(2));
+                if opt:
+                    param = "-Q" + " in"
+                else:
+                    opt = re.search("-P", m.group(2));
+                    if opt:
+                        param = "-P" + " in"
+        if len(param) == 0:
+            self.logger.info("tcpdump not support direction choice!!!")
+        return param
+
     def tcpdump_start_sniff(self, interface, filters=""):
         """
         Starts tcpdump in the background to sniff packets that received by interface.
         """
         command = 'rm -f /tmp/tcpdump_{0}.pcap'.format(interface)
         self.tester.send_expect(command, '#')
-        command = 'tcpdump -n -e -Q in -w /tmp/tcpdump_{0}.pcap -i {0} {1} 2>/tmp/tcpdump_{0}.out &'\
-                  .format(interface, filters)
+        command = 'tcpdump -n -e {0} -w /tmp/tcpdump_{1}.pcap -i {1} {2} 2>/tmp/tcpdump_{1}.out &'\
+                  .format(self.param_flow_dir, interface, filters)
         self.tester.send_expect(command, '# ')
 
     def tcpdump_stop_sniff(self):
@@ -202,6 +223,8 @@ class TestIPPipeline(TestCase):
         out = self.dut.build_dpdk_apps("./examples/ip_pipeline")
         self.verify("Error" not in out, "Compilation error")
 
+        self.param_flow_dir = self.get_flow_direction_param_of_tcpdump()
+
     def set_up(self):
         """
         Run before each test case.
-- 
2.7.4


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dts] [PATCH V1] tests: judge tcpdump version when use flow direction params
  2019-06-10 23:07 [dts] [PATCH V1] tests: judge tcpdump version when use flow direction params lihong
@ 2019-06-11  6:34 ` Yao, BingX Y
  2019-06-12  6:23 ` Tu, Lijuan
  1 sibling, 0 replies; 3+ messages in thread
From: Yao, BingX Y @ 2019-06-11  6:34 UTC (permalink / raw)
  To: Ma, LihongX, dts; +Cc: Ma, LihongX

Tested-by: Yao, BingX Y <bingx.y.yao@intel.com>

-----Original Message-----
From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of lihong
Sent: Tuesday, June 11, 2019 7:08 AM
To: dts@dpdk.org
Cc: Ma, LihongX <lihongx.ma@intel.com>
Subject: [dts] [PATCH V1] tests: judge tcpdump version when use flow direction params

The params of flow direction in tcpdump is varied by tcpdump version.
So add function to get the param base on the version.

Signed-off-by: lihong <lihongx.ma@intel.com>
---
 tests/TestSuite_flow_classify_softnic.py | 27 +++++++++++++++++++++++++--
 tests/TestSuite_ip_pipeline.py           | 27 +++++++++++++++++++++++++--
 2 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/tests/TestSuite_flow_classify_softnic.py b/tests/TestSuite_flow_classify_softnic.py
index 9b339ca..88dcc7e 100644
--- a/tests/TestSuite_flow_classify_softnic.py
+++ b/tests/TestSuite_flow_classify_softnic.py
@@ -120,14 +120,35 @@ class TestFlowClassifySoftnic(TestCase):
         command = "sed -i \'/^table action/a" + cmd + "\' ./drivers/net/softnic/flow_classify_softnic/%s" % filename
         self.dut.send_expect(command, "# ", 20)
 
+    def get_flow_direction_param_of_tcpdump(self):
+        """
+        get flow dirction param depend on tcpdump version
+        """
+        param = ""
+        direct_param = r"(\s+)\[ (\S+) in\|out\|inout \]"
+        out = self.tester.send_expect('tcpdump -h', '# ')
+        for line in out.split('\n'):
+            m = re.match(direct_param, line)
+            if m:
+                opt = re.search("-Q", m.group(2));
+                if opt:
+                    param = "-Q" + " in"
+                else:
+                    opt = re.search("-P", m.group(2));
+                    if opt:
+                        param = "-P" + " in"
+        if len(param) == 0:
+            self.logger.info("tcpdump not support direction choice!!!")
+        return param
+
     def tcpdump_start_sniff(self, interface, filters=""):
         """
         Starts tcpdump in the background to sniff packets that received by interface.
         """
         command = 'rm -f /tmp/tcpdump_{0}.pcap'.format(interface)
         self.tester.send_expect(command, '#')
-        command = 'tcpdump -n -e -Q in -w /tmp/tcpdump_{0}.pcap -i {0} {1} 2>/tmp/tcpdump_{0}.out &'\
-                  .format(interface, filters)
+        command = 'tcpdump -n -e {0} -w /tmp/tcpdump_{1}.pcap -i {1} {2} 2>/tmp/tcpdump_{1}.out &'\
+                  .format(self.param_flow_dir, interface, filters)
         self.tester.send_expect(command, '# ')
 
     def tcpdump_stop_sniff(self):
@@ -373,6 +394,8 @@ class TestFlowClassifySoftnic(TestCase):
         self.tester_itf = self.tester.get_interface(localPort)
         self.copy_config_files_to_dut()
 
+        self.param_flow_dir = 
+ self.get_flow_direction_param_of_tcpdump()
+
     def set_up(self):
         """
         Run before each test case.
diff --git a/tests/TestSuite_ip_pipeline.py b/tests/TestSuite_ip_pipeline.py index 390c69d..f05b5cd 100644
--- a/tests/TestSuite_ip_pipeline.py
+++ b/tests/TestSuite_ip_pipeline.py
@@ -64,14 +64,35 @@ from scapy.sendrecv import sendp
 
 class TestIPPipeline(TestCase):
 
+    def get_flow_direction_param_of_tcpdump(self):
+        """
+        get flow dirction param depend on tcpdump version
+        """
+        param = ""
+        direct_param = r"(\s+)\[ (\S+) in\|out\|inout \]"
+        out = self.tester.send_expect('tcpdump -h', '# ')
+        for line in out.split('\n'):
+            m = re.match(direct_param, line)
+            if m:
+                opt = re.search("-Q", m.group(2));
+                if opt:
+                    param = "-Q" + " in"
+                else:
+                    opt = re.search("-P", m.group(2));
+                    if opt:
+                        param = "-P" + " in"
+        if len(param) == 0:
+            self.logger.info("tcpdump not support direction choice!!!")
+        return param
+
     def tcpdump_start_sniff(self, interface, filters=""):
         """
         Starts tcpdump in the background to sniff packets that received by interface.
         """
         command = 'rm -f /tmp/tcpdump_{0}.pcap'.format(interface)
         self.tester.send_expect(command, '#')
-        command = 'tcpdump -n -e -Q in -w /tmp/tcpdump_{0}.pcap -i {0} {1} 2>/tmp/tcpdump_{0}.out &'\
-                  .format(interface, filters)
+        command = 'tcpdump -n -e {0} -w /tmp/tcpdump_{1}.pcap -i {1} {2} 2>/tmp/tcpdump_{1}.out &'\
+                  .format(self.param_flow_dir, interface, filters)
         self.tester.send_expect(command, '# ')
 
     def tcpdump_stop_sniff(self):
@@ -202,6 +223,8 @@ class TestIPPipeline(TestCase):
         out = self.dut.build_dpdk_apps("./examples/ip_pipeline")
         self.verify("Error" not in out, "Compilation error")
 
+        self.param_flow_dir = 
+ self.get_flow_direction_param_of_tcpdump()
+
     def set_up(self):
         """
         Run before each test case.
--
2.7.4


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dts] [PATCH V1] tests: judge tcpdump version when use flow direction params
  2019-06-10 23:07 [dts] [PATCH V1] tests: judge tcpdump version when use flow direction params lihong
  2019-06-11  6:34 ` Yao, BingX Y
@ 2019-06-12  6:23 ` Tu, Lijuan
  1 sibling, 0 replies; 3+ messages in thread
From: Tu, Lijuan @ 2019-06-12  6:23 UTC (permalink / raw)
  To: Ma, LihongX, dts; +Cc: Ma, LihongX

Applied, thanks

> -----Original Message-----
> From: dts [mailto:dts-bounces@dpdk.org] On Behalf Of lihong
> Sent: Tuesday, June 11, 2019 7:08 AM
> To: dts@dpdk.org
> Cc: Ma, LihongX <lihongx.ma@intel.com>
> Subject: [dts] [PATCH V1] tests: judge tcpdump version when use flow
> direction params
> 
> The params of flow direction in tcpdump is varied by tcpdump version.
> So add function to get the param base on the version.
> 
> Signed-off-by: lihong <lihongx.ma@intel.com>
> ---
>  tests/TestSuite_flow_classify_softnic.py | 27 +++++++++++++++++++++++++--
>  tests/TestSuite_ip_pipeline.py           | 27 +++++++++++++++++++++++++--
>  2 files changed, 50 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/TestSuite_flow_classify_softnic.py
> b/tests/TestSuite_flow_classify_softnic.py
> index 9b339ca..88dcc7e 100644
> --- a/tests/TestSuite_flow_classify_softnic.py
> +++ b/tests/TestSuite_flow_classify_softnic.py
> @@ -120,14 +120,35 @@ class TestFlowClassifySoftnic(TestCase):
>          command = "sed -i \'/^table action/a" + cmd +
> "\' ./drivers/net/softnic/flow_classify_softnic/%s" % filename
>          self.dut.send_expect(command, "# ", 20)
> 
> +    def get_flow_direction_param_of_tcpdump(self):
> +        """
> +        get flow dirction param depend on tcpdump version
> +        """
> +        param = ""
> +        direct_param = r"(\s+)\[ (\S+) in\|out\|inout \]"
> +        out = self.tester.send_expect('tcpdump -h', '# ')
> +        for line in out.split('\n'):
> +            m = re.match(direct_param, line)
> +            if m:
> +                opt = re.search("-Q", m.group(2));
> +                if opt:
> +                    param = "-Q" + " in"
> +                else:
> +                    opt = re.search("-P", m.group(2));
> +                    if opt:
> +                        param = "-P" + " in"
> +        if len(param) == 0:
> +            self.logger.info("tcpdump not support direction choice!!!")
> +        return param
> +
>      def tcpdump_start_sniff(self, interface, filters=""):
>          """
>          Starts tcpdump in the background to sniff packets that received by
> interface.
>          """
>          command = 'rm -f /tmp/tcpdump_{0}.pcap'.format(interface)
>          self.tester.send_expect(command, '#')
> -        command = 'tcpdump -n -e -Q in -w /tmp/tcpdump_{0}.pcap -i {0} {1}
> 2>/tmp/tcpdump_{0}.out &'\
> -                  .format(interface, filters)
> +        command = 'tcpdump -n -e {0} -w /tmp/tcpdump_{1}.pcap -i {1} {2}
> 2>/tmp/tcpdump_{1}.out &'\
> +                  .format(self.param_flow_dir, interface, filters)
>          self.tester.send_expect(command, '# ')
> 
>      def tcpdump_stop_sniff(self):
> @@ -373,6 +394,8 @@ class TestFlowClassifySoftnic(TestCase):
>          self.tester_itf = self.tester.get_interface(localPort)
>          self.copy_config_files_to_dut()
> 
> +        self.param_flow_dir =
> + self.get_flow_direction_param_of_tcpdump()
> +
>      def set_up(self):
>          """
>          Run before each test case.
> diff --git a/tests/TestSuite_ip_pipeline.py b/tests/TestSuite_ip_pipeline.py
> index 390c69d..f05b5cd 100644
> --- a/tests/TestSuite_ip_pipeline.py
> +++ b/tests/TestSuite_ip_pipeline.py
> @@ -64,14 +64,35 @@ from scapy.sendrecv import sendp
> 
>  class TestIPPipeline(TestCase):
> 
> +    def get_flow_direction_param_of_tcpdump(self):
> +        """
> +        get flow dirction param depend on tcpdump version
> +        """
> +        param = ""
> +        direct_param = r"(\s+)\[ (\S+) in\|out\|inout \]"
> +        out = self.tester.send_expect('tcpdump -h', '# ')
> +        for line in out.split('\n'):
> +            m = re.match(direct_param, line)
> +            if m:
> +                opt = re.search("-Q", m.group(2));
> +                if opt:
> +                    param = "-Q" + " in"
> +                else:
> +                    opt = re.search("-P", m.group(2));
> +                    if opt:
> +                        param = "-P" + " in"
> +        if len(param) == 0:
> +            self.logger.info("tcpdump not support direction choice!!!")
> +        return param
> +
>      def tcpdump_start_sniff(self, interface, filters=""):
>          """
>          Starts tcpdump in the background to sniff packets that received by
> interface.
>          """
>          command = 'rm -f /tmp/tcpdump_{0}.pcap'.format(interface)
>          self.tester.send_expect(command, '#')
> -        command = 'tcpdump -n -e -Q in -w /tmp/tcpdump_{0}.pcap -i {0} {1}
> 2>/tmp/tcpdump_{0}.out &'\
> -                  .format(interface, filters)
> +        command = 'tcpdump -n -e {0} -w /tmp/tcpdump_{1}.pcap -i {1} {2}
> 2>/tmp/tcpdump_{1}.out &'\
> +                  .format(self.param_flow_dir, interface, filters)
>          self.tester.send_expect(command, '# ')
> 
>      def tcpdump_stop_sniff(self):
> @@ -202,6 +223,8 @@ class TestIPPipeline(TestCase):
>          out = self.dut.build_dpdk_apps("./examples/ip_pipeline")
>          self.verify("Error" not in out, "Compilation error")
> 
> +        self.param_flow_dir =
> + self.get_flow_direction_param_of_tcpdump()
> +
>      def set_up(self):
>          """
>          Run before each test case.
> --
> 2.7.4


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-06-12  6:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-10 23:07 [dts] [PATCH V1] tests: judge tcpdump version when use flow direction params lihong
2019-06-11  6:34 ` Yao, BingX Y
2019-06-12  6:23 ` Tu, Lijuan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).