From 2570a7fad59831b3d91359bc52440339a168c808 Mon Sep 17 00:00:00 2001 From: Vratko Polak Date: Wed, 4 Sep 2019 13:13:08 +0200 Subject: 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 --- resources/libraries/python/PapiExecutor.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'resources') 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. -- cgit 1.2.3-korg