diff options
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. |