java_sdk_library: Require xml permission file only if it is generated

Eliminates invalid LOCAL_REQUIRED_MODULES lines in the generated
Android.mk entries.

Bug: 7456955
Test: TH artifact noop
Test: Add unittest to java/androidmk_test.go
Test: m nothing and verify build rule doesn't contain invalid REQUIRED
Change-Id: Ic8d7e6d08181f6a24fd2aa86479bb9303cfd9be8
This commit is contained in:
Yo Chiang
2020-06-05 17:43:19 +08:00
parent e40383355b
commit 07d75070a6
2 changed files with 37 additions and 2 deletions

View File

@@ -169,3 +169,36 @@ func TestDistWithTag(t *testing.T) {
t.Errorf("did not expect explicit DistFile, got %v", without_tag_entries[0].DistFile) t.Errorf("did not expect explicit DistFile, got %v", without_tag_entries[0].DistFile)
} }
} }
func TestJavaSdkLibrary_RequireXmlPermissionFile(t *testing.T) {
ctx, config := testJava(t, `
java_sdk_library {
name: "foo-shared_library",
srcs: ["a.java"],
}
java_sdk_library {
name: "foo-no_shared_library",
srcs: ["a.java"],
shared_library: false,
}
`)
// Verify the existence of internal modules
ctx.ModuleForTests("foo-shared_library.xml", "android_common")
testCases := []struct {
moduleName string
expected []string
}{
{"foo-shared_library", []string{"foo-shared_library.xml"}},
{"foo-no_shared_library", nil},
}
for _, tc := range testCases {
mod := ctx.ModuleForTests(tc.moduleName, "android_common").Module()
entries := android.AndroidMkEntriesForTest(t, config, "", mod)[0]
actual := entries.EntryMap["LOCAL_REQUIRED_MODULES"]
if !reflect.DeepEqual(tc.expected, actual) {
t.Errorf("Unexpected required modules - expected: %q, actual: %q", tc.expected, actual)
}
}
}

View File

@@ -1042,8 +1042,10 @@ func (module *SdkLibrary) AndroidMkEntries() []android.AndroidMkEntries {
return nil return nil
} }
entriesList := module.Library.AndroidMkEntries() entriesList := module.Library.AndroidMkEntries()
entries := &entriesList[0] if module.sharedLibrary() {
entries.Required = append(entries.Required, module.xmlPermissionsModuleName()) entries := &entriesList[0]
entries.Required = append(entries.Required, module.xmlPermissionsModuleName())
}
return entriesList return entriesList
} }