in tools/migration/ctoolchain_comparator_lib.py [0:0]
def _check_feature_equivalence(before, after):
"""Compares two "CToolchain.Feature"s."""
if before.name != after.name:
return False
if before.enabled != after.enabled:
return False
if len(before.flag_set) != len(after.flag_set):
return False
for (flag_set_before, flag_set_after) in zip(before.flag_set, after.flag_set):
if not _check_flag_set_equivalence(flag_set_before, flag_set_after):
return False
if len(before.env_set) != len(after.env_set):
return False
for (env_set_before, env_set_after) in zip(before.env_set, after.env_set):
if not _check_env_set_equivalence(env_set_before, env_set_after):
return False
if len(before.requires) != len(after.requires):
return False
for (requires_before, requires_after) in zip(before.requires, after.requires):
if set(requires_before.feature) != set(requires_after.feature):
return False
if before.implies != after.implies:
return False
if before.provides != after.provides:
return False
return True