Introduce flat deps info list.

Compared to full list, flat list drops dependency edges and simply
lists all transitive dependencies for a top-level apex bundle.

Bug: 149622332
Test: m, manually build flatlist

Change-Id: Ibd521c96b7aeab90b95965c1b524e0a0152aaf5a
diff --git a/apex/apex_test.go b/apex/apex_test.go
index d520544..de04dce 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -504,12 +504,19 @@
 	ensureListContains(t, noticeInputs, "custom_notice")
 	ensureListContains(t, noticeInputs, "custom_notice_for_static_lib")
 
-	depsInfo := strings.Split(ctx.ModuleForTests("myapex", "android_common_myapex_image").Output("depsinfo/fulllist.txt").Args["content"], "\\n")
-	ensureListContains(t, depsInfo, "myjar <- myapex")
-	ensureListContains(t, depsInfo, "mylib <- myapex")
-	ensureListContains(t, depsInfo, "mylib2 <- mylib")
-	ensureListContains(t, depsInfo, "myotherjar <- myjar")
-	ensureListContains(t, depsInfo, "mysharedjar (external) <- myjar")
+	fullDepsInfo := strings.Split(ctx.ModuleForTests("myapex", "android_common_myapex_image").Output("depsinfo/fulllist.txt").Args["content"], "\\n")
+	ensureListContains(t, fullDepsInfo, "myjar <- myapex")
+	ensureListContains(t, fullDepsInfo, "mylib <- myapex")
+	ensureListContains(t, fullDepsInfo, "mylib2 <- mylib")
+	ensureListContains(t, fullDepsInfo, "myotherjar <- myjar")
+	ensureListContains(t, fullDepsInfo, "mysharedjar (external) <- myjar")
+
+	flatDepsInfo := strings.Split(ctx.ModuleForTests("myapex", "android_common_myapex_image").Output("depsinfo/flatlist.txt").Args["content"], "\\n")
+	ensureListContains(t, flatDepsInfo, "  myjar")
+	ensureListContains(t, flatDepsInfo, "  mylib")
+	ensureListContains(t, flatDepsInfo, "  mylib2")
+	ensureListContains(t, flatDepsInfo, "  myotherjar")
+	ensureListContains(t, flatDepsInfo, "  mysharedjar (external)")
 }
 
 func TestDefaults(t *testing.T) {
@@ -818,11 +825,15 @@
 	// Ensure that libfoo stubs is not linking to libbar (since it is a stubs)
 	ensureNotContains(t, libFooStubsLdFlags, "libbar.so")
 
-	depsInfo := strings.Split(ctx.ModuleForTests("myapex2", "android_common_myapex2_image").Output("depsinfo/fulllist.txt").Args["content"], "\\n")
+	fullDepsInfo := strings.Split(ctx.ModuleForTests("myapex2", "android_common_myapex2_image").Output("depsinfo/fulllist.txt").Args["content"], "\\n")
+	ensureListContains(t, fullDepsInfo, "mylib <- myapex2")
+	ensureListContains(t, fullDepsInfo, "libbaz <- mylib")
+	ensureListContains(t, fullDepsInfo, "libfoo (external) <- mylib")
 
-	ensureListContains(t, depsInfo, "mylib <- myapex2")
-	ensureListContains(t, depsInfo, "libbaz <- mylib")
-	ensureListContains(t, depsInfo, "libfoo (external) <- mylib")
+	flatDepsInfo := strings.Split(ctx.ModuleForTests("myapex2", "android_common_myapex2_image").Output("depsinfo/flatlist.txt").Args["content"], "\\n")
+	ensureListContains(t, flatDepsInfo, "  mylib")
+	ensureListContains(t, flatDepsInfo, "  libbaz")
+	ensureListContains(t, flatDepsInfo, "  libfoo (external)")
 }
 
 func TestApexWithRuntimeLibsDependency(t *testing.T) {