Create regression test to catch concurrency error
The bottom-up walk to resolve conditions treats "already started" as
"alreay finished".
Bug: 261787132
Test: m compliance_checkshare
Change-Id: Ibb548bd4f5464b47682633878d475dfe011df3e1
diff --git a/tools/compliance/cmd/checkshare/checkshare_test.go b/tools/compliance/cmd/checkshare/checkshare_test.go
index fdcab29..079691c 100644
--- a/tools/compliance/cmd/checkshare/checkshare_test.go
+++ b/tools/compliance/cmd/checkshare/checkshare_test.go
@@ -241,6 +241,59 @@
roots: []string{"lib/libd.so.meta_lic"},
expectedStdout: "PASS",
},
+ {
+ condition: "regressconcur",
+ name: "container",
+ roots: []string{"container.zip.meta_lic"},
+ expectedStdout: "FAIL",
+ expectedOutcomes: outcomeList{
+ &outcome{
+ target: "testdata/regressconcur/bin/bin1.meta_lic",
+ privacyCondition: "proprietary",
+ shareCondition: "restricted",
+ },
+ &outcome{
+ target: "testdata/regressconcur/bin/bin2.meta_lic",
+ privacyCondition: "proprietary",
+ shareCondition: "restricted",
+ },
+ &outcome{
+ target: "testdata/regressconcur/bin/bin3.meta_lic",
+ privacyCondition: "proprietary",
+ shareCondition: "restricted",
+ },
+ &outcome{
+ target: "testdata/regressconcur/bin/bin4.meta_lic",
+ privacyCondition: "proprietary",
+ shareCondition: "restricted",
+ },
+ &outcome{
+ target: "testdata/regressconcur/bin/bin5.meta_lic",
+ privacyCondition: "proprietary",
+ shareCondition: "restricted",
+ },
+ &outcome{
+ target: "testdata/regressconcur/bin/bin6.meta_lic",
+ privacyCondition: "proprietary",
+ shareCondition: "restricted",
+ },
+ &outcome{
+ target: "testdata/regressconcur/bin/bin7.meta_lic",
+ privacyCondition: "proprietary",
+ shareCondition: "restricted",
+ },
+ &outcome{
+ target: "testdata/regressconcur/bin/bin8.meta_lic",
+ privacyCondition: "proprietary",
+ shareCondition: "restricted",
+ },
+ &outcome{
+ target: "testdata/regressconcur/bin/bin9.meta_lic",
+ privacyCondition: "proprietary",
+ shareCondition: "restricted",
+ },
+ },
+ },
}
for _, tt := range tests {
t.Run(tt.condition+" "+tt.name, func(t *testing.T) {
diff --git a/tools/compliance/cmd/testdata/regressconcur/README.md b/tools/compliance/cmd/testdata/regressconcur/README.md
new file mode 100644
index 0000000..98ab0ef
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/README.md
@@ -0,0 +1,62 @@
+## Start long walks followed by short walks
+
+Detect concurrency error where "already started" treated as
+"already finished".
+
+### Testdata build graph structure:
+
+A restricted licensed library sandwiched between a notice library and a notice
+binary. The source-code for the libraries only needs to be shared if shipped
+alongside the container with the binaries.
+
+```dot
+strict digraph {
+ rankdir=LR;
+ bin1 [label="bin/bin1.meta_lic\nproprietary"];
+ bin2 [label="bin/bin2.meta_lic\nproprietary"];
+ bin3 [label="bin/bin3.meta_lic\nproprietary"];
+ bin4 [label="bin/bin4.meta_lic\nproprietary"];
+ bin5 [label="bin/bin5.meta_lic\nproprietary"];
+ bin6 [label="bin/bin6.meta_lic\nproprietary"];
+ bin7 [label="bin/bin7.meta_lic\nproprietary"];
+ bin8 [label="bin/bin8.meta_lic\nproprietary"];
+ bin9 [label="bin/bin9.meta_lic\nproprietary"];
+ container [label="container.zip.meta_lic\nnotice"];
+ lib1 [label="lib/lib1.so.meta_lic\nnotice"];
+ lib2 [label="lib/lib2.so.meta_lic\nnotice"];
+ lib3 [label="lib/lib3.so.meta_lic\nnotice"];
+ lib4 [label="lib/lib4.so.meta_lic\nnotice"];
+ lib5 [label="lib/lib5.so.meta_lic\nnotice"];
+ lib6 [label="lib/lib6.so.meta_lic\nnotice"];
+ lib7 [label="lib/lib7.so.meta_lic\nnotice"];
+ lib8 [label="lib/lib8.so.meta_lic\nnotice"];
+ lib9 [label="lib/lib9.so.meta_lic\nrestricted"];
+ container -> bin1 [label="static"];
+ container -> bin2 [label="static"];
+ container -> bin3 [label="static"];
+ container -> bin4 [label="static"];
+ container -> bin5 [label="static"];
+ container -> bin6 [label="static"];
+ container -> bin7 [label="static"];
+ container -> bin8 [label="static"];
+ container -> bin9 [label="static"];
+ bin1 -> lib1 [label="static"];
+ bin2 -> lib2 [label="static"];
+ bin3 -> lib3 [label="static"];
+ bin4 -> lib4 [label="static"];
+ bin5 -> lib5 [label="static"];
+ bin6 -> lib6 [label="static"];
+ bin7 -> lib7 [label="static"];
+ bin8 -> lib8 [label="static"];
+ bin9 -> lib9 [label="static"];
+ lib1 -> lib2 [label="static"];
+ lib2 -> lib3 [label="static"];
+ lib3 -> lib4 [label="static"];
+ lib4 -> lib5 [label="static"];
+ lib5 -> lib6 [label="static"];
+ lib6 -> lib7 [label="static"];
+ lib7 -> lib8 [label="static"];
+ lib8 -> lib9 [label="static"];
+ {rank=same; container}
+}
+```
diff --git a/tools/compliance/cmd/testdata/regressconcur/bin/bin1.meta_lic b/tools/compliance/cmd/testdata/regressconcur/bin/bin1.meta_lic
new file mode 100644
index 0000000..e3763f6
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/bin/bin1.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+module_classes: "EXECUTABLES"
+projects: "bin/onelibrary"
+license_kinds: "legacy_proprietary"
+license_conditions: "proprietary"
+is_container: false
+built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin1"
+installed: "out/target/product/fictional/system/bin/bin1"
+sources: "out/target/product/fictional/system/lib/lib1.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib1.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/bin/bin2.meta_lic b/tools/compliance/cmd/testdata/regressconcur/bin/bin2.meta_lic
new file mode 100644
index 0000000..e1822bb
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/bin/bin2.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+module_classes: "EXECUTABLES"
+projects: "bin/onelibrary"
+license_kinds: "legacy_proprietary"
+license_conditions: "proprietary"
+is_container: false
+built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin2"
+installed: "out/target/product/fictional/system/bin/bin2"
+sources: "out/target/product/fictional/system/lib/lib2.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib2.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/bin/bin3.meta_lic b/tools/compliance/cmd/testdata/regressconcur/bin/bin3.meta_lic
new file mode 100644
index 0000000..35f5d74
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/bin/bin3.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+module_classes: "EXECUTABLES"
+projects: "bin/onelibrary"
+license_kinds: "legacy_proprietary"
+license_conditions: "proprietary"
+is_container: false
+built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin3"
+installed: "out/target/product/fictional/system/bin/bin3"
+sources: "out/target/product/fictional/system/lib/lib3.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib3.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/bin/bin4.meta_lic b/tools/compliance/cmd/testdata/regressconcur/bin/bin4.meta_lic
new file mode 100644
index 0000000..3287382
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/bin/bin4.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+module_classes: "EXECUTABLES"
+projects: "bin/onelibrary"
+license_kinds: "legacy_proprietary"
+license_conditions: "proprietary"
+is_container: false
+built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin4"
+installed: "out/target/product/fictional/system/bin/bin4"
+sources: "out/target/product/fictional/system/lib/lib4.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib4.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/bin/bin5.meta_lic b/tools/compliance/cmd/testdata/regressconcur/bin/bin5.meta_lic
new file mode 100644
index 0000000..f51bcdb
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/bin/bin5.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+module_classes: "EXECUTABLES"
+projects: "bin/onelibrary"
+license_kinds: "legacy_proprietary"
+license_conditions: "proprietary"
+is_container: false
+built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin5"
+installed: "out/target/product/fictional/system/bin/bin5"
+sources: "out/target/product/fictional/system/lib/lib5.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib5.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/bin/bin6.meta_lic b/tools/compliance/cmd/testdata/regressconcur/bin/bin6.meta_lic
new file mode 100644
index 0000000..4c99b01
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/bin/bin6.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+module_classes: "EXECUTABLES"
+projects: "bin/onelibrary"
+license_kinds: "legacy_proprietary"
+license_conditions: "proprietary"
+is_container: false
+built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin6"
+installed: "out/target/product/fictional/system/bin/bin6"
+sources: "out/target/product/fictional/system/lib/lib6.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib6.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/bin/bin7.meta_lic b/tools/compliance/cmd/testdata/regressconcur/bin/bin7.meta_lic
new file mode 100644
index 0000000..565a338
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/bin/bin7.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+module_classes: "EXECUTABLES"
+projects: "bin/onelibrary"
+license_kinds: "legacy_proprietary"
+license_conditions: "proprietary"
+is_container: false
+built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin7"
+installed: "out/target/product/fictional/system/bin/bin7"
+sources: "out/target/product/fictional/system/lib/lib7.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib7.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/bin/bin8.meta_lic b/tools/compliance/cmd/testdata/regressconcur/bin/bin8.meta_lic
new file mode 100644
index 0000000..f66c2c9
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/bin/bin8.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+module_classes: "EXECUTABLES"
+projects: "bin/onelibrary"
+license_kinds: "legacy_proprietary"
+license_conditions: "proprietary"
+is_container: false
+built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin8"
+installed: "out/target/product/fictional/system/bin/bin8"
+sources: "out/target/product/fictional/system/lib/lib8.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib8.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/bin/bin9.meta_lic b/tools/compliance/cmd/testdata/regressconcur/bin/bin9.meta_lic
new file mode 100644
index 0000000..0aac4c6
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/bin/bin9.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+module_classes: "EXECUTABLES"
+projects: "bin/onelibrary"
+license_kinds: "legacy_proprietary"
+license_conditions: "proprietary"
+is_container: false
+built: "out/target/product/fictional/obj/EXECUTABLES/bin_intermediates/bin9"
+installed: "out/target/product/fictional/system/bin/bin9"
+sources: "out/target/product/fictional/system/lib/lib9.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib9.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/container.zip.meta_lic b/tools/compliance/cmd/testdata/regressconcur/container.zip.meta_lic
new file mode 100644
index 0000000..88683d4
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/container.zip.meta_lic
@@ -0,0 +1,60 @@
+package_name: "Android"
+projects: "container/zip"
+license_kinds: "SPDX-license-identifier-MIT"
+license_conditions: "notice"
+is_container: true
+built: "out/target/product/fictional/obj/ETC/container_intermediates/container.zip"
+installed: "out/target/product/fictional/data/container.zip"
+install_map {
+ from_path: "out/target/product/fictional/system/lib/"
+ container_path: "/"
+}
+install_map {
+ from_path: "out/target/product/fictional/system/bin/"
+ container_path: "/"
+}
+sources: "out/target/product/fictional/system/bin/bin1"
+sources: "out/target/product/fictional/system/bin/bin2"
+sources: "out/target/product/fictional/system/bin/bin3"
+sources: "out/target/product/fictional/system/bin/bin4"
+sources: "out/target/product/fictional/system/bin/bin5"
+sources: "out/target/product/fictional/system/bin/bin6"
+sources: "out/target/product/fictional/system/bin/bin7"
+sources: "out/target/product/fictional/system/bin/bin8"
+sources: "out/target/product/fictional/system/bin/bin9"
+deps: {
+ file: "testdata/regressconcur/bin/bin1.meta_lic"
+ annotations: "static"
+}
+deps: {
+ file: "testdata/regressconcur/bin/bin2.meta_lic"
+ annotations: "static"
+}
+deps: {
+ file: "testdata/regressconcur/bin/bin3.meta_lic"
+ annotations: "static"
+}
+deps: {
+ file: "testdata/regressconcur/bin/bin4.meta_lic"
+ annotations: "static"
+}
+deps: {
+ file: "testdata/regressconcur/bin/bin5.meta_lic"
+ annotations: "static"
+}
+deps: {
+ file: "testdata/regressconcur/bin/bin6.meta_lic"
+ annotations: "static"
+}
+deps: {
+ file: "testdata/regressconcur/bin/bin7.meta_lic"
+ annotations: "static"
+}
+deps: {
+ file: "testdata/regressconcur/bin/bin8.meta_lic"
+ annotations: "static"
+}
+deps: {
+ file: "testdata/regressconcur/bin/bin9.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/lib/lib1.a.meta_lic b/tools/compliance/cmd/testdata/regressconcur/lib/lib1.a.meta_lic
new file mode 100644
index 0000000..89ebd7c
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/lib/lib1.a.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+projects: "lib/restricted"
+license_kinds: "SPDX-license-identifier-MIT"
+license_conditions: "notice"
+is_container: false
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib1.so"
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib1.a"
+installed: "out/target/product/fictional/system/lib/lib1.so"
+sources: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib2.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib2.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/lib/lib2.a.meta_lic b/tools/compliance/cmd/testdata/regressconcur/lib/lib2.a.meta_lic
new file mode 100644
index 0000000..ec84287
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/lib/lib2.a.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+projects: "lib/restricted"
+license_kinds: "SPDX-license-identifier-MIT"
+license_conditions: "notice"
+is_container: false
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib2.so"
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib2.a"
+installed: "out/target/product/fictional/system/lib/lib2.so"
+sources: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib3.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib3.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/lib/lib3.a.meta_lic b/tools/compliance/cmd/testdata/regressconcur/lib/lib3.a.meta_lic
new file mode 100644
index 0000000..1949c06
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/lib/lib3.a.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+projects: "lib/restricted"
+license_kinds: "SPDX-license-identifier-MIT"
+license_conditions: "notice"
+is_container: false
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib3.so"
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib3.a"
+installed: "out/target/product/fictional/system/lib/lib3.so"
+sources: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib4.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib4.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/lib/lib4.a.meta_lic b/tools/compliance/cmd/testdata/regressconcur/lib/lib4.a.meta_lic
new file mode 100644
index 0000000..4dc777b
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/lib/lib4.a.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+projects: "lib/restricted"
+license_kinds: "SPDX-license-identifier-MIT"
+license_conditions: "notice"
+is_container: false
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib4.so"
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib4.a"
+installed: "out/target/product/fictional/system/lib/lib4.so"
+sources: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib5.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib5.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/lib/lib5.a.meta_lic b/tools/compliance/cmd/testdata/regressconcur/lib/lib5.a.meta_lic
new file mode 100644
index 0000000..5d005dc
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/lib/lib5.a.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+projects: "lib/restricted"
+license_kinds: "SPDX-license-identifier-MIT"
+license_conditions: "notice"
+is_container: false
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib5.so"
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib5.a"
+installed: "out/target/product/fictional/system/lib/lib5.so"
+sources: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib6.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib6.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/lib/lib6.a.meta_lic b/tools/compliance/cmd/testdata/regressconcur/lib/lib6.a.meta_lic
new file mode 100644
index 0000000..f2920c3
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/lib/lib6.a.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+projects: "lib/restricted"
+license_kinds: "SPDX-license-identifier-MIT"
+license_conditions: "notice"
+is_container: false
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib6.so"
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib6.a"
+installed: "out/target/product/fictional/system/lib/lib6.so"
+sources: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib7.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib7.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/lib/lib7.a.meta_lic b/tools/compliance/cmd/testdata/regressconcur/lib/lib7.a.meta_lic
new file mode 100644
index 0000000..28c0c5f
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/lib/lib7.a.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+projects: "lib/restricted"
+license_kinds: "SPDX-license-identifier-MIT"
+license_conditions: "notice"
+is_container: false
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib7.so"
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib7.a"
+installed: "out/target/product/fictional/system/lib/lib7.so"
+sources: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib8.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib8.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/lib/lib8.a.meta_lic b/tools/compliance/cmd/testdata/regressconcur/lib/lib8.a.meta_lic
new file mode 100644
index 0000000..b887edc
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/lib/lib8.a.meta_lic
@@ -0,0 +1,13 @@
+package_name: "Android"
+projects: "lib/restricted"
+license_kinds: "SPDX-license-identifier-MIT"
+license_conditions: "notice"
+is_container: false
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib8.so"
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib8.a"
+installed: "out/target/product/fictional/system/lib/lib8.so"
+sources: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib9.a"
+deps: {
+ file: "testdata/regressconcur/lib/lib9.a.meta_lic"
+ annotations: "static"
+}
diff --git a/tools/compliance/cmd/testdata/regressconcur/lib/lib9.a.meta_lic b/tools/compliance/cmd/testdata/regressconcur/lib/lib9.a.meta_lic
new file mode 100644
index 0000000..9bf155f
--- /dev/null
+++ b/tools/compliance/cmd/testdata/regressconcur/lib/lib9.a.meta_lic
@@ -0,0 +1,8 @@
+package_name: "Android"
+projects: "lib/restricted"
+license_kinds: "SPDX-license-identifier-GPL-2.0"
+license_conditions: "restricted"
+is_container: false
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib9.so"
+built: "out/target/product/fictional/obj/SHARED_LIBRARIES/lib_intermediates/lib9.a"
+installed: "out/target/product/fictional/system/lib/lib9.so"