run vndk-sp closure check before double-loadable
If vndk-sp closure fails, the error message mentions it instead of
double-loadable error. It would be more helpful since vndk-sp is more
straightforward to fix.
Bug: 171080110
Test: m (soong test added)
Change-Id: Icc762a4ffb4a8d7d6b31ef1daac17f13383518bf
diff --git a/cc/cc_test.go b/cc/cc_test.go
index d1780cd..84fd4bd 100644
--- a/cc/cc_test.go
+++ b/cc/cc_test.go
@@ -103,6 +103,7 @@
}
func testCcError(t *testing.T, pattern string, bp string) {
+ t.Helper()
config := TestConfig(buildDir, android.Android, nil, bp, nil)
config.TestProductVariables.DeviceVndkVersion = StringPtr("current")
config.TestProductVariables.Platform_vndk_version = StringPtr("VER")
@@ -111,6 +112,7 @@
}
func testCcErrorProductVndk(t *testing.T, pattern string, bp string) {
+ t.Helper()
config := TestConfig(buildDir, android.Android, nil, bp, nil)
config.TestProductVariables.DeviceVndkVersion = StringPtr("current")
config.TestProductVariables.ProductVndkVersion = StringPtr("current")
@@ -1637,6 +1639,35 @@
`)
}
+func TestCheckVndkMembershipBeforeDoubleLoadable(t *testing.T) {
+ testCcError(t, "module \"libvndksp\" variant .*: .*: VNDK-SP must only depend on VNDK-SP", `
+ cc_library {
+ name: "libvndksp",
+ shared_libs: ["libanothervndksp"],
+ vendor_available: true,
+ vndk: {
+ enabled: true,
+ support_system_process: true,
+ }
+ }
+
+ cc_library {
+ name: "libllndk",
+ shared_libs: ["libanothervndksp"],
+ }
+
+ llndk_library {
+ name: "libllndk",
+ symbol_file: "",
+ }
+
+ cc_library {
+ name: "libanothervndksp",
+ vendor_available: true,
+ }
+ `)
+}
+
func TestVndkExt(t *testing.T) {
// This test checks the VNDK-Ext properties.
bp := `