def _check_feature_equivalence()

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