aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/python/PapiExecutor.py
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2019-09-04 13:13:08 +0200
committerVratko Polak <vrpolak@cisco.com>2019-09-05 08:25:18 +0000
commit2570a7fad59831b3d91359bc52440339a168c808 (patch)
tree4c858835def1a8ac5603054514ff826226f7237e /resources/libraries/python/PapiExecutor.py
parent4751baad9a204c27b0566e4faf00bf0b30f7e170 (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.py17
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.