[dts] [PATCH V2] framework: add the check of scapy version

LihongX Ma lihongx.ma at intel.com
Mon Oct 19 19:34:34 CEST 2020


v2: modify the comments information

 - modify the requirement scapy version to 2.4.4
 - add the check of the scapy version on tester

Signed-off-by: LihongX Ma <lihongx.ma at intel.com>
---
 framework/tester.py | 19 +++++++++++++++++++
 requirements.txt    |  2 +-
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/framework/tester.py b/framework/tester.py
index ca179b2..008c10d 100644
--- a/framework/tester.py
+++ b/framework/tester.py
@@ -80,6 +80,7 @@ class Tester(Crb):
         # prepare for scapy env
         self.scapy_sessions_li = list()
         self.scapy_session = self.prepare_scapy_env()
+        self.check_scapy_version()
         self.tmp_file = '/tmp/tester/'
         out = self.send_expect('ls -d %s' % self.tmp_file, '# ', verify=True)
         if out == 2:
@@ -105,6 +106,24 @@ class Tester(Crb):
             session.logger.warning(f'entering import error: {out}')
         return session
 
+    def check_scapy_version(self):
+        require_version = '2.4.4'
+        self.scapy_session.get_session_before(timeout = 1)
+        self.scapy_session.send_expect('conf.version', '\'')
+        out = self.scapy_session.get_session_before(timeout = 1)
+        cur_version = out[:out.find('\'')]
+        out = self.session.send_expect('grep scapy requirements.txt', '# ')
+        value = re.search('scapy\s*==\s*(\S*)', out)
+        if value is not None:
+            require_version = value.group(1)
+        cur_version = cur_version.split('.')
+        require_version = require_version.split('.')
+        for i in range(len(require_version)):
+            if int(cur_version[i]) < int(require_version[i]):
+                self.logger.warning('The scapy vesrion not meet the requirement on tester,' +
+                    'please update your scapy, otherwise maybe some suite will failed')
+                break
+
     def init_ext_gen(self):
         """
         Initialize tester packet generator object.
diff --git a/requirements.txt b/requirements.txt
index cb9f636..fae0ace 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -36,5 +36,5 @@ numpy==1.18.5
 docutils
 pcapy
 xlrd
-scapy==2.4.3
+scapy==2.4.4
 threadpool
-- 
2.7.4



More information about the dts mailing list