bootclasspath_fragment: Add test specific module type

This is needed to allow the behavior of the bootclasspath_fragment to
be tweaked for test fragments.

Bug: 194063708
Test: m nothing
Change-Id: Iee5c09d5b580d088ba081d95a788dbde883078ed
(cherry picked from commit c15b9e99e5)
Merged-In: Iee5c09d5b580d088ba081d95a788dbde883078ed
This commit is contained in:
Paul Duffin
2022-03-31 15:42:30 +01:00
committed by Cherrypicker Worker
parent 2bf4389d33
commit ab9fbab7ef
2 changed files with 54 additions and 0 deletions

View File

@@ -37,6 +37,7 @@ func init() {
func registerBootclasspathFragmentBuildComponents(ctx android.RegistrationContext) {
ctx.RegisterModuleType("bootclasspath_fragment", bootclasspathFragmentFactory)
ctx.RegisterModuleType("bootclasspath_fragment_test", testBootclasspathFragmentFactory)
ctx.RegisterModuleType("prebuilt_bootclasspath_fragment", prebuiltBootclasspathFragmentFactory)
}
@@ -231,6 +232,9 @@ type BootclasspathFragmentModule struct {
android.SdkBase
ClasspathFragmentBase
// True if this fragment is for testing purposes.
testFragment bool
properties bootclasspathFragmentProperties
sourceOnlyProperties SourceOnlyBootclasspathProperties
@@ -302,6 +306,12 @@ func bootclasspathFragmentFactory() android.Module {
return m
}
func testBootclasspathFragmentFactory() android.Module {
m := bootclasspathFragmentFactory().(*BootclasspathFragmentModule)
m.testFragment = true
return m
}
// bootclasspathFragmentInitContentsFromImage will initialize the contents property from the image_name if
// necessary.
func bootclasspathFragmentInitContentsFromImage(ctx android.EarlyModuleContext, m *BootclasspathFragmentModule) {
@@ -823,6 +833,11 @@ func (b *BootclasspathFragmentModule) createHiddenAPIFlagInput(ctx android.Modul
return input
}
// isTestFragment returns true if the current module is a test bootclasspath_fragment.
func (b *BootclasspathFragmentModule) isTestFragment() bool {
return b.testFragment
}
// produceHiddenAPIOutput produces the hidden API all-flags.csv file (and supporting files)
// for the fragment as well as encoding the flags in the boot dex jars.
func (b *BootclasspathFragmentModule) produceHiddenAPIOutput(ctx android.ModuleContext, contents []android.Module, input HiddenAPIFlagInput) *HiddenAPIOutput {