Coverage: Avoid double-counting of sub-dirs in component view.

[email protected],[email protected]

Change-Id: I7c192d6ef87ff08291574ba3c42aeeb8640d9306
Reviewed-on: https://chromium-review.googlesource.com/1056627
Reviewed-by: Abhishek Arya <[email protected]>
Commit-Queue: Abhishek Arya <[email protected]>
Cr-Commit-Position: refs/heads/master@{#558153}
diff --git a/tools/code_coverage/coverage.py b/tools/code_coverage/coverage.py
index b83c04d..4f73bd27 100755
--- a/tools/code_coverage/coverage.py
+++ b/tools/code_coverage/coverage.py
@@ -674,9 +674,19 @@
   directory_to_component = component_mappings['dir-to-component']
 
   component_to_directories = defaultdict(list)
-  for directory in directory_to_component:
+  for directory in sorted(directory_to_component):
     component = directory_to_component[directory]
-    component_to_directories[component].append(directory)
+
+    # Check if we already added the parent directory of this directory. If yes,
+    # skip this sub-directory to avoid double-counting.
+    found_parent_directory = False
+    for component_directory in component_to_directories[component]:
+      if directory.startswith(component_directory + '/'):
+        found_parent_directory = True
+        break
+
+    if not found_parent_directory:
+      component_to_directories[component].append(directory)
 
   return component_to_directories