diff options
author | 2024-05-21 18:59:23 +0000 | |
---|---|---|
committer | 2024-05-21 18:59:23 +0000 | |
commit | 5f1f9405b5000331b9422673e7e973a69d2d7f61 (patch) | |
tree | 0d29d56f8433c7c6440ef43ea4e948a94e973446 /apex | |
parent | e0d5ea1d7c8fd09182328a6fb1bed2d804fa1de4 (diff) |
Restrict validateApexClasspathFragments to active apex prebuilts
This is a followup to https://r.android.com/3073624 that moved
validation of bcp jars to the top-level prebuilt apex. It is possible
that there can be multiple prebuilt variants of a mainline module and
each prebuilt might have a skew in bcp jars. This CL limits the check to
only the selected apex prebuilt.
Test: go test ./apex
Bug: 328578801
Change-Id: If225a1af6004b6584b86ec442f99672f0d1f8314
Diffstat (limited to 'apex')
-rw-r--r-- | apex/platform_bootclasspath_test.go | 30 | ||||
-rw-r--r-- | apex/prebuilt.go | 8 |
2 files changed, 36 insertions, 2 deletions
diff --git a/apex/platform_bootclasspath_test.go b/apex/platform_bootclasspath_test.go index 9f1e1e16f..4a20cf0e3 100644 --- a/apex/platform_bootclasspath_test.go +++ b/apex/platform_bootclasspath_test.go @@ -865,6 +865,36 @@ func TestNonBootJarMissingInPrebuiltFragment(t *testing.T) { }, } + // Another prebuilt apex, but this is not selected during the build. + prebuilt_apex { + name: "com.google.android.myapex.v2", // mainline prebuilt selection logic in soong relies on the naming convention com.google.android + apex_name: "myapex", + source_apex_name: "myapex", + src: "myapex.apex", + exported_bootclasspath_fragments: ["apex-fragment.v2"], + } + + java_import { + name: "bar", + jars: ["bar.jar"], + apex_available: ["myapex"], + permitted_packages: ["bar"], + } + + prebuilt_bootclasspath_fragment { + name: "apex-fragment.v2", + contents: ["bar"], // Unlike the source fragment, this is missing foo + apex_available:[ "myapex" ], + hidden_api: { + annotation_flags: "my-bootclasspath-fragment/annotation-flags.csv", + metadata: "my-bootclasspath-fragment/metadata.csv", + index: "my-bootclasspath-fragment/index.csv", + stub_flags: "my-bootclasspath-fragment/stub-flags.csv", + all_flags: "my-bootclasspath-fragment/all-flags.csv", + }, + } + + apex_contributions { name: "my_apex_contributions", api_domain: "myapex", diff --git a/apex/prebuilt.go b/apex/prebuilt.go index b2afa3933..9ad5159b5 100644 --- a/apex/prebuilt.go +++ b/apex/prebuilt.go @@ -848,7 +848,9 @@ func validateApexClasspathFragments(ctx android.ModuleContext) { func (p *Prebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) { // Validate contents of classpath fragments - validateApexClasspathFragments(ctx) + if !p.IsHideFromMake() { + validateApexClasspathFragments(ctx) + } p.apexKeysPath = writeApexKeys(ctx, p) // TODO(jungjw): Check the key validity. @@ -1074,7 +1076,9 @@ func (a *ApexSet) ApexInfoMutator(mctx android.TopDownMutatorContext) { func (a *ApexSet) GenerateAndroidBuildActions(ctx android.ModuleContext) { // Validate contents of classpath fragments - validateApexClasspathFragments(ctx) + if !a.IsHideFromMake() { + validateApexClasspathFragments(ctx) + } a.apexKeysPath = writeApexKeys(ctx, a) a.installFilename = a.InstallFilename() |