bootclasspath_fragment: Require at least one hidden_api package property
Previously, the split_packages, single_packages and package_prefixes properties were all optional and the split_packages defaulted to ["*"]. As that value conflicted with the other package properties that meant that split_packages always had to be specified even if it was to just set it to an empty array. This change requires at least one of them to be specified and defaults split_packages to an empty list which means it is not required, although it can be helpful to make that explicit. Bug: 194063708 Test: m nothing Change-Id: I5a4c2d68e72e39f5c4a2441326dfce8685fc8ff2
This commit is contained in:
parent
ff9b6faba2
commit
9fd564711e
8 changed files with 120 additions and 3 deletions
|
@ -6227,6 +6227,9 @@ func TestOverrideApex(t *testing.T) {
|
|||
name: "mybootclasspath_fragment",
|
||||
contents: ["bcplib"],
|
||||
apex_available: ["myapex"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -6241,6 +6244,9 @@ func TestOverrideApex(t *testing.T) {
|
|||
name: "override_bootclasspath_fragment",
|
||||
contents: ["override_bcplib"],
|
||||
apex_available: ["myapex"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -7294,6 +7300,9 @@ func testNoUpdatableJarsInBootImage(t *testing.T, errmsg string, preparer androi
|
|||
apex_available: [
|
||||
"some-non-updatable-apex",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -7352,6 +7361,9 @@ func testNoUpdatableJarsInBootImage(t *testing.T, errmsg string, preparer androi
|
|||
apex_available: [
|
||||
"com.android.art.debug",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
apex_key {
|
||||
|
@ -8695,6 +8707,9 @@ func TestApexJavaCoverage(t *testing.T) {
|
|||
name: "mybootclasspathfragment",
|
||||
contents: ["mybootclasspathlib"],
|
||||
apex_available: ["myapex"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -9015,6 +9030,9 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
|
|||
name: "mybootclasspathfragment",
|
||||
contents: ["mybootclasspathlib"],
|
||||
apex_available: ["myapex"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
|
@ -9115,6 +9133,9 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
|
|||
name: "mybootclasspathfragment",
|
||||
contents: ["mybootclasspathlib"],
|
||||
apex_available: ["myapex"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
|
@ -9334,6 +9355,9 @@ func TestApexStrictUpdtabilityLintBcpFragmentDeps(t *testing.T) {
|
|||
name: "mybootclasspathfragment",
|
||||
contents: ["myjavalib"],
|
||||
apex_available: ["myapex"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
java_library {
|
||||
name: "myjavalib",
|
||||
|
|
|
@ -110,6 +110,9 @@ func TestBootclasspathFragments(t *testing.T) {
|
|||
apex_available: [
|
||||
"com.android.art",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
`,
|
||||
)
|
||||
|
@ -209,6 +212,9 @@ func TestBootclasspathFragments_FragmentDependency(t *testing.T) {
|
|||
apex_available: [
|
||||
"com.android.art",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
bootclasspath_fragment {
|
||||
|
@ -220,6 +226,9 @@ func TestBootclasspathFragments_FragmentDependency(t *testing.T) {
|
|||
module: "art-bootclasspath-fragment",
|
||||
},
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
`,
|
||||
)
|
||||
|
@ -361,6 +370,9 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
|
|||
apex_available: [
|
||||
"com.android.art",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
`, contentsInsert(contents))
|
||||
|
||||
|
@ -853,6 +865,9 @@ func TestBootclasspathFragmentContentsNoName(t *testing.T) {
|
|||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
`)
|
||||
|
||||
|
@ -959,6 +974,9 @@ func TestBootclasspathFragment_HiddenAPIList(t *testing.T) {
|
|||
apex_available: [
|
||||
"com.android.art",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
apex {
|
||||
|
@ -1010,6 +1028,9 @@ func TestBootclasspathFragment_HiddenAPIList(t *testing.T) {
|
|||
module: "art-bootclasspath-fragment",
|
||||
},
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
`)
|
||||
|
||||
|
@ -1123,6 +1144,9 @@ func TestBootclasspathFragment_AndroidNonUpdatable(t *testing.T) {
|
|||
apex_available: [
|
||||
"com.android.art",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
apex {
|
||||
|
@ -1175,6 +1199,9 @@ func TestBootclasspathFragment_AndroidNonUpdatable(t *testing.T) {
|
|||
module: "art-bootclasspath-fragment",
|
||||
},
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
`)
|
||||
|
||||
|
@ -1282,6 +1309,9 @@ func TestBootclasspathFragment_AndroidNonUpdatable_AlwaysUsePrebuiltSdks(t *test
|
|||
apex_available: [
|
||||
"com.android.art",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
apex {
|
||||
|
@ -1334,6 +1364,9 @@ func TestBootclasspathFragment_AndroidNonUpdatable_AlwaysUsePrebuiltSdks(t *test
|
|||
module: "art-bootclasspath-fragment",
|
||||
},
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
`)
|
||||
|
||||
|
|
|
@ -88,6 +88,9 @@ func TestCreateClasspathElements(t *testing.T) {
|
|||
"baz",
|
||||
"quuz",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -134,6 +137,9 @@ func TestCreateClasspathElements(t *testing.T) {
|
|||
contents: [
|
||||
"bar",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
|
|
@ -125,6 +125,7 @@ func TestPlatformBootclasspath_Fragments(t *testing.T) {
|
|||
unsupported_packages: [
|
||||
"bar-unsupported-packages.txt",
|
||||
],
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -274,6 +275,9 @@ func TestPlatformBootclasspathDependencies(t *testing.T) {
|
|||
"baz",
|
||||
"quuz",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -317,6 +321,9 @@ func TestPlatformBootclasspathDependencies(t *testing.T) {
|
|||
name: "my-bootclasspath-fragment",
|
||||
contents: ["bar"],
|
||||
apex_available: ["myapex"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
apex_key {
|
||||
|
@ -482,6 +489,9 @@ func TestPlatformBootclasspath_AlwaysUsePrebuiltSdks(t *testing.T) {
|
|||
contents: [
|
||||
"foo", "bar",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
prebuilt_bootclasspath_fragment {
|
||||
|
@ -599,6 +609,9 @@ func TestPlatformBootclasspath_IncludesRemainingApexJars(t *testing.T) {
|
|||
generate_classpaths_proto: false,
|
||||
contents: ["foo"],
|
||||
apex_available: ["myapex"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -656,6 +669,9 @@ func TestBootJarNotInApex(t *testing.T) {
|
|||
contents: [
|
||||
"foo",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
platform_bootclasspath {
|
||||
|
@ -696,6 +712,9 @@ func TestBootFragmentNotInApex(t *testing.T) {
|
|||
bootclasspath_fragment {
|
||||
name: "not-in-apex-fragment",
|
||||
contents: ["foo"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
platform_bootclasspath {
|
||||
|
@ -746,6 +765,9 @@ func TestNonBootJarInFragment(t *testing.T) {
|
|||
name: "apex-fragment",
|
||||
contents: ["foo", "bar"],
|
||||
apex_available:[ "myapex" ],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
platform_bootclasspath {
|
||||
|
|
|
@ -858,11 +858,18 @@ func (b *BootclasspathFragmentModule) produceHiddenAPIOutput(ctx android.ModuleC
|
|||
packagePrefixes := b.sourceOnlyProperties.Hidden_api.Package_prefixes
|
||||
singlePackages := b.sourceOnlyProperties.Hidden_api.Single_packages
|
||||
if splitPackages != nil || packagePrefixes != nil || singlePackages != nil {
|
||||
if splitPackages == nil {
|
||||
splitPackages = []string{"*"}
|
||||
}
|
||||
output.SignaturePatternsPath = buildRuleSignaturePatternsFile(
|
||||
ctx, output.AllFlagsPath, splitPackages, packagePrefixes, singlePackages)
|
||||
} else if !b.isTestFragment() {
|
||||
ctx.ModuleErrorf(`Must specify at least one of the split_packages, package_prefixes and single_packages properties
|
||||
If this is a new bootclasspath_fragment or you are unsure what to do add the
|
||||
the following to the bootclasspath_fragment:
|
||||
hidden_api: {split_packages: ["*"]},
|
||||
and then run the following:
|
||||
m analyze_bcpf && analyze_bcpf --bcpf %q
|
||||
it will analyze the bootclasspath_fragment and provide hints as to what you
|
||||
should specify here. If you are happy with its suggestions then you can add
|
||||
the --fix option and it will fix them for you.`, b.BaseModuleName())
|
||||
}
|
||||
|
||||
return output
|
||||
|
|
|
@ -121,6 +121,9 @@ func TestBootclasspathFragment_Coverage(t *testing.T) {
|
|||
],
|
||||
},
|
||||
},
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -201,6 +204,9 @@ func TestBootclasspathFragment_StubLibs(t *testing.T) {
|
|||
core_platform_api: {
|
||||
stub_libs: ["mycoreplatform.stubs"],
|
||||
},
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
|
|
@ -101,6 +101,9 @@ func TestSnapshotWithBootclasspathFragment_ImageName(t *testing.T) {
|
|||
image_name: "art",
|
||||
contents: ["mybootlib"],
|
||||
apex_available: ["com.android.art"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
apex_key {
|
||||
|
@ -235,6 +238,9 @@ func TestSnapshotWithBootClasspathFragment_Contents(t *testing.T) {
|
|||
// This should be automatically added to the sdk_snapshot as a java_sdk_libs module.
|
||||
stub_libs: ["mycoreplatform"],
|
||||
},
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -453,6 +459,9 @@ func TestSnapshotWithBootClasspathFragment_Fragments(t *testing.T) {
|
|||
contents: [
|
||||
"myotherlib",
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -482,6 +491,9 @@ func TestSnapshotWithBootClasspathFragment_Fragments(t *testing.T) {
|
|||
module: "myotherbootclasspathfragment"
|
||||
},
|
||||
],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
|
@ -561,6 +573,9 @@ func TestBasicSdkWithBootclasspathFragment(t *testing.T) {
|
|||
image_name: "art",
|
||||
contents: ["mybootlib"],
|
||||
apex_available: ["myapex"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -668,6 +683,7 @@ func TestSnapshotWithBootclasspathFragment_HiddenAPI(t *testing.T) {
|
|||
unsupported_packages: [
|
||||
"my-unsupported-packages.txt",
|
||||
],
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -473,6 +473,9 @@ java_import {
|
|||
name: "mybootclasspathfragment",
|
||||
apex_available: ["myapex"],
|
||||
contents: ["mysdklibrary"],
|
||||
hidden_api: {
|
||||
split_packages: ["*"],
|
||||
},
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
|
|
Loading…
Reference in a new issue