Retry: Separate hidden API flags needed in sdk snapshots for S and T
Previous change that was reverted: https://r.android.com/1835222 An additional test was added that revealed a bug in the previous change which has been fixed here. Previously, the behavior of the stub_flags and all_flags properties was different between S and T. In S they contained paths for the complete set of stub flags and all the encoded flags. However, in T they contained filtered sets of flags which if used in S would prevent build checks from detecting possible inconsistencies. Also, a new signature_patterns property was added in T that is not supported in S. This change creates separate properties/files for T and reverts the behavior of the properties/files that were added in S back to how they behaved in S. The new properties are called filtered_stub_flags and filtered_flags. The S and T properties are tagged with the appropriate supported_build_releases tag to ensure that they are only output when specifically targeted. Bug: 197842263 Test: m nothing Change-Id: I1ce0a3d6623dabf73e32af1a7457b9b444fc3b7c
This commit is contained in:
@@ -168,6 +168,76 @@ func TestPlatformBootclasspath_Fragments(t *testing.T) {
|
||||
android.AssertArrayString(t, "all flags", []string{"out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/filtered-flags.csv:out/soong/.intermediates/bar-fragment/android_common_apex10000/modular-hiddenapi/signature-patterns.csv"}, info.FlagSubsets.RelativeToTop())
|
||||
}
|
||||
|
||||
// TestPlatformBootclasspath_LegacyPrebuiltFragment verifies that the
|
||||
// prebuilt_bootclasspath_fragment falls back to using the complete stub-flags/all-flags if the
|
||||
// filtered files are not provided.
|
||||
//
|
||||
// TODO: Remove once all prebuilts use the filtered_... properties.
|
||||
func TestPlatformBootclasspath_LegacyPrebuiltFragment(t *testing.T) {
|
||||
result := android.GroupFixturePreparers(
|
||||
prepareForTestWithPlatformBootclasspath,
|
||||
java.FixtureConfigureApexBootJars("myapex:foo"),
|
||||
java.PrepareForTestWithJavaSdkLibraryFiles,
|
||||
).RunTestWithBp(t, `
|
||||
prebuilt_apex {
|
||||
name: "myapex",
|
||||
src: "myapex.apex",
|
||||
exported_bootclasspath_fragments: ["mybootclasspath-fragment"],
|
||||
}
|
||||
|
||||
// A prebuilt java_sdk_library_import that is not preferred by default but will be preferred
|
||||
// because AlwaysUsePrebuiltSdks() is true.
|
||||
java_sdk_library_import {
|
||||
name: "foo",
|
||||
prefer: false,
|
||||
shared_library: false,
|
||||
permitted_packages: ["foo"],
|
||||
public: {
|
||||
jars: ["sdk_library/public/foo-stubs.jar"],
|
||||
stub_srcs: ["sdk_library/public/foo_stub_sources"],
|
||||
current_api: "sdk_library/public/foo.txt",
|
||||
removed_api: "sdk_library/public/foo-removed.txt",
|
||||
sdk_version: "current",
|
||||
},
|
||||
apex_available: ["myapex"],
|
||||
}
|
||||
|
||||
prebuilt_bootclasspath_fragment {
|
||||
name: "mybootclasspath-fragment",
|
||||
apex_available: [
|
||||
"myapex",
|
||||
],
|
||||
contents: [
|
||||
"foo",
|
||||
],
|
||||
hidden_api: {
|
||||
stub_flags: "prebuilt-stub-flags.csv",
|
||||
annotation_flags: "prebuilt-annotation-flags.csv",
|
||||
metadata: "prebuilt-metadata.csv",
|
||||
index: "prebuilt-index.csv",
|
||||
all_flags: "prebuilt-all-flags.csv",
|
||||
},
|
||||
}
|
||||
|
||||
platform_bootclasspath {
|
||||
name: "myplatform-bootclasspath",
|
||||
fragments: [
|
||||
{
|
||||
apex: "myapex",
|
||||
module:"mybootclasspath-fragment",
|
||||
},
|
||||
],
|
||||
}
|
||||
`,
|
||||
)
|
||||
|
||||
pbcp := result.Module("myplatform-bootclasspath", "android_common")
|
||||
info := result.ModuleProvider(pbcp, java.MonolithicHiddenAPIInfoProvider).(java.MonolithicHiddenAPIInfo)
|
||||
|
||||
android.AssertArrayString(t, "stub flags", []string{"prebuilt-stub-flags.csv:out/soong/.intermediates/mybootclasspath-fragment/android_common_myapex/modular-hiddenapi/signature-patterns.csv"}, info.StubFlagSubsets.RelativeToTop())
|
||||
android.AssertArrayString(t, "all flags", []string{"prebuilt-all-flags.csv:out/soong/.intermediates/mybootclasspath-fragment/android_common_myapex/modular-hiddenapi/signature-patterns.csv"}, info.FlagSubsets.RelativeToTop())
|
||||
}
|
||||
|
||||
func TestPlatformBootclasspathDependencies(t *testing.T) {
|
||||
result := android.GroupFixturePreparers(
|
||||
prepareForTestWithPlatformBootclasspath,
|
||||
|
Reference in New Issue
Block a user