diff options
author | Vratko Polak <vrpolak@cisco.com> | 2019-09-04 13:13:08 +0200 |
---|---|---|
committer | Vratko Polak <vrpolak@cisco.com> | 2019-09-05 08:25:18 +0000 |
commit | 2570a7fad59831b3d91359bc52440339a168c808 (patch) | |
tree | 4c858835def1a8ac5603054514ff826226f7237e /resources/libraries/python/PapiExecutor.py | |
parent | 4751baad9a204c27b0566e4faf00bf0b30f7e170 (diff) |
Allow CRC checking to be controlled via env var
The plan is to override the default in some (but not all) jobs.
The csit-vpp jobs shall do the checking, but vpp-csit jobs shall not
(except api-crc job of course) in order to confirm benign changes.
Change-Id: If59d17991de3fb0e847113a87e0533a8ee62af7f
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
Diffstat (limited to 'resources/libraries/python/PapiExecutor.py')
-rw-r--r-- | resources/libraries/python/PapiExecutor.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/resources/libraries/python/PapiExecutor.py b/resources/libraries/python/PapiExecutor.py index ef04787fa7..0a714c182c 100644 --- a/resources/libraries/python/PapiExecutor.py +++ b/resources/libraries/python/PapiExecutor.py @@ -166,8 +166,20 @@ class PapiSocketExecutor(object): if self.vpp_instance: return cls = self.__class__ # Shorthand for setting class fields. - tmp_dir = tempfile.mkdtemp(dir="/tmp") + fail_on_mismatch = Constants.CRC_MISMATCH_FAILS_TEST + try: + from robot.libraries.BuiltIn import BuiltIn + from_robot = BuiltIn().get_variable_value( + "\${crc_mismatch_fails}", None) + if from_robot is not None: + # Robot interprets env vars as strings. + fail_on_mismatch = not from_robot.lower() in ("false", "n", "0") + except (ImportError, AttributeError): + # If robot is not installed or not running, or value is not string, + # the Constants value applies. + pass package_path = None + tmp_dir = tempfile.mkdtemp(dir="/tmp") try: # Pack, copy and unpack Python part of VPP installation from _node. # TODO: Use rsync or recursive version of ssh.scp_node instead? @@ -187,7 +199,8 @@ class PapiSocketExecutor(object): api_json_directory = tmp_dir + "/usr/share/vpp/api" # Perform initial checks before .api.json files are gone, # by creating the checker instance. - cls.crc_checker = VppApiCrcChecker(api_json_directory) + cls.crc_checker = VppApiCrcChecker( + api_json_directory, fail_on_mismatch=fail_on_mismatch) # When present locally, we finally can find the installation path. package_path = glob.glob(tmp_dir + installed_papi_glob)[0] # Package path has to be one level above the vpp_papi directory. |