testing/libfuzzer/gen_fuzzer_owners.py
def TraverseGroups(deps_list, build_dir):
  """Filter out groups from a deps list. Add groups' direct dependencies."""
  full_deps_set = set(deps_list)
  deps_to_check = full_deps_set.copy()

  # Keep track of groups to break circular dependendies, if any.
  seen_groups = set()

  while deps_to_check:
    # Look for groups from the deps set.
    groups, deps_for_groups = FindGroupsAndDepsInDeps(deps_to_check, build_dir)
    groups = set(groups).difference(seen_groups)
    if not groups:
      break

    # Update sets. Filter out groups from the full deps set.
    full_deps_set.difference_update(groups)
    deps_to_check.clear()
    seen_groups.update(groups)

    # Get the direct dependencies, and filter out known groups there too.
    for group in groups:
      deps_to_check.update(deps_for_groups[group])
    deps_to_check.difference_update(seen_groups)
    full_deps_set.update(deps_to_check)
  return list(full_deps_set)
Filter out groups from a deps list. Add groups' direct dependencies.
Filter out groups from a deps list. Add groups' direct dependencies.
Filter out groups from a deps list . Add groups ' direct dependencies .
def TraverseGroups(deps_list, build_dir):
  full_deps_set = set(deps_list)
  deps_to_check = full_deps_set.copy()
  seen_groups = set()
  while deps_to_check:
    groups, deps_for_groups = FindGroupsAndDepsInDeps(deps_to_check, build_dir)
    groups = set(groups).difference(seen_groups)
    if not groups:
      break
    full_deps_set.difference_update(groups)
    deps_to_check.clear()
    seen_groups.update(groups)
    for group in groups:
      deps_to_check.update(deps_for_groups[group])
    deps_to_check.difference_update(seen_groups)
    full_deps_set.update(deps_to_check)
  return list(full_deps_set)
def TraverseGroups ( deps_list , build_dir ) : full_deps_set = set ( deps_list ) deps_to_check = full_deps_set . copy ( ) seen_groups = set ( ) while deps_to_check : groups , deps_for_groups = FindGroupsAndDepsInDeps ( deps_to_check , build_dir ) groups = set ( groups ) . difference ( seen_groups ) if not groups : break full_deps_set . difference_update ( groups ) deps_to_check . clear ( ) seen_groups . update ( groups ) for group in groups : deps_to_check . update ( deps_for_groups [ group ] ) deps_to_check . difference_update ( seen_groups ) full_deps_set . update ( deps_to_check ) return list ( full_deps_set )
Filter out groups from a deps list.
Filter out groups from a deps list .
"""Filter out groups from a deps list. Add groups' direct dependencies.""" # Keep track of groups to break circular dependendies, if any. # Look for groups from the deps set. # Update sets. Filter out groups from the full deps set. # Get the direct dependencies, and filter out known groups there too.
deps_list
build_dir