in project_future.py [0:0]
def is_xfailed(xfail_args, compatible_version, platform, swift_branch, build_config, job_type):
"""Return whether the specified swift version/platform/branch/configuration/job is xfailed."""
if isinstance(xfail_args, dict):
xfail_args = [xfail_args]
def is_or_contains(spec, arg):
return arg in spec if isinstance(spec, list) else spec == arg
def matches(spec):
issue = spec['issue'].split()[0]
current = {
'compatibility': compatible_version,
'branch': swift_branch,
'platform': platform,
'job': job_type,
}
if 'configuration' in spec:
if build_config is None:
raise common.Unreachable("'xfail' entry contains 'configuration' "
"but none supplied via '--build-config' or the containing "
"action's 'configuration' field.")
current['configuration'] = build_config.lower()
for key, value in current.iteritems():
if key in spec and not is_or_contains(spec[key], value):
return None
return issue
for spec in xfail_args:
issue = matches(spec)
if issue is not None:
return issue
return None