Merge "Fix tests to use correct fixtures for configuring (Apex)BootJars." am: 721f42d12a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1787998 Change-Id: Ib651ed488365ae0133f5e31333a3dec42f748c31
This commit is contained in:
commit
9958b36643
8 changed files with 90 additions and 18 deletions
|
@ -4663,6 +4663,7 @@ func TestPrebuiltApexNameWithPlatformBootclasspath(t *testing.T) {
|
|||
|
||||
prebuilt_bootclasspath_fragment {
|
||||
name: "art-bootclasspath-fragment",
|
||||
image_name: "art",
|
||||
contents: ["core-oj"],
|
||||
hidden_api: {
|
||||
annotation_flags: "my-bootclasspath-fragment/annotation-flags.csv",
|
||||
|
@ -4871,7 +4872,7 @@ func TestPrebuiltExportDexImplementationJars(t *testing.T) {
|
|||
|
||||
func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
||||
preparer := android.GroupFixturePreparers(
|
||||
java.FixtureConfigureBootJars("myapex:libfoo", "myapex:libbar"),
|
||||
java.FixtureConfigureApexBootJars("myapex:libfoo", "myapex:libbar"),
|
||||
// Make sure that the frameworks/base/Android.bp file exists as otherwise hidden API encoding
|
||||
// is disabled.
|
||||
android.FixtureAddTextFile("frameworks/base/Android.bp", ""),
|
||||
|
@ -4949,6 +4950,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
name: "libfoo",
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["foo"],
|
||||
}
|
||||
|
||||
java_sdk_library_import {
|
||||
|
@ -4958,6 +4960,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
},
|
||||
apex_available: ["myapex"],
|
||||
shared_library: false,
|
||||
permitted_packages: ["bar"],
|
||||
}
|
||||
`
|
||||
|
||||
|
@ -4998,6 +5001,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
name: "libfoo",
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["foo"],
|
||||
}
|
||||
|
||||
java_sdk_library_import {
|
||||
|
@ -5007,6 +5011,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
},
|
||||
apex_available: ["myapex"],
|
||||
shared_library: false,
|
||||
permitted_packages: ["bar"],
|
||||
}
|
||||
`
|
||||
|
||||
|
@ -5120,6 +5125,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
prefer: true,
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["foo"],
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -5136,6 +5142,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
},
|
||||
apex_available: ["myapex"],
|
||||
shared_library: false,
|
||||
permitted_packages: ["bar"],
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
|
@ -5209,6 +5216,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
name: "libfoo",
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["foo"],
|
||||
}
|
||||
|
||||
java_sdk_library_import {
|
||||
|
@ -5225,6 +5233,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
srcs: ["foo/bar/MyClass.java"],
|
||||
unsafe_ignore_missing_latest_api: true,
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["bar"],
|
||||
}
|
||||
`
|
||||
|
||||
|
@ -5286,6 +5295,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
prefer: true,
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["foo"],
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -5302,6 +5312,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
},
|
||||
apex_available: ["myapex"],
|
||||
shared_library: false,
|
||||
permitted_packages: ["bar"],
|
||||
}
|
||||
|
||||
java_sdk_library {
|
||||
|
@ -6899,6 +6910,7 @@ func testNoUpdatableJarsInBootImage(t *testing.T, errmsg string, preparer androi
|
|||
apex_available: [
|
||||
"some-updatable-apex",
|
||||
],
|
||||
permitted_packages: ["some.updatable.apex.lib"],
|
||||
}
|
||||
|
||||
java_library {
|
||||
|
@ -6908,6 +6920,7 @@ func testNoUpdatableJarsInBootImage(t *testing.T, errmsg string, preparer androi
|
|||
"some-non-updatable-apex",
|
||||
],
|
||||
compile_dex: true,
|
||||
permitted_packages: ["some.non.updatable.apex.lib"],
|
||||
}
|
||||
|
||||
bootclasspath_fragment {
|
||||
|
@ -7118,7 +7131,9 @@ func TestUpdatable_should_not_set_generate_classpaths_proto(t *testing.T) {
|
|||
"myapex",
|
||||
],
|
||||
}
|
||||
`)
|
||||
`,
|
||||
dexpreopt.FixtureSetApexSystemServerJars("myapex:foo"),
|
||||
)
|
||||
}
|
||||
|
||||
func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
||||
|
@ -7148,18 +7163,30 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
|||
}
|
||||
|
||||
t.Run("updatable jar from ART apex in the ART boot image => ok", func(t *testing.T) {
|
||||
preparer := java.FixtureConfigureBootJars("com.android.art.debug:some-art-lib")
|
||||
fragment := java.ApexVariantReference{
|
||||
Apex: proptools.StringPtr("com.android.art.debug"),
|
||||
Module: proptools.StringPtr("art-bootclasspath-fragment"),
|
||||
preparer := android.GroupFixturePreparers(
|
||||
java.FixtureConfigureBootJars("com.android.art.debug:some-art-lib"),
|
||||
java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib"),
|
||||
)
|
||||
fragments := []java.ApexVariantReference{
|
||||
{
|
||||
Apex: proptools.StringPtr("com.android.art.debug"),
|
||||
Module: proptools.StringPtr("art-bootclasspath-fragment"),
|
||||
},
|
||||
{
|
||||
Apex: proptools.StringPtr("some-non-updatable-apex"),
|
||||
Module: proptools.StringPtr("some-non-updatable-fragment"),
|
||||
},
|
||||
}
|
||||
testNoUpdatableJarsInBootImage(t, "", preparer, fragment)
|
||||
testNoUpdatableJarsInBootImage(t, "", preparer, fragments...)
|
||||
})
|
||||
|
||||
t.Run("updatable jar from ART apex in the framework boot image => error", func(t *testing.T) {
|
||||
err := `module "some-art-lib" from updatable apexes \["com.android.art.debug"\] is not allowed in the framework boot image`
|
||||
// Update the dexpreopt BootJars directly.
|
||||
preparer := prepareSetBootJars("com.android.art.debug:some-art-lib")
|
||||
preparer := android.GroupFixturePreparers(
|
||||
prepareSetBootJars("com.android.art.debug:some-art-lib"),
|
||||
java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib"),
|
||||
)
|
||||
testNoUpdatableJarsInBootImage(t, err, preparer)
|
||||
})
|
||||
|
||||
|
@ -7179,12 +7206,15 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
|||
|
||||
t.Run("updatable jar from some other apex in the framework boot image => error", func(t *testing.T) {
|
||||
err := `module "some-updatable-apex-lib" from updatable apexes \["some-updatable-apex"\] is not allowed in the framework boot image`
|
||||
preparer := java.FixtureConfigureBootJars("some-updatable-apex:some-updatable-apex-lib")
|
||||
preparer := android.GroupFixturePreparers(
|
||||
java.FixtureConfigureBootJars("some-updatable-apex:some-updatable-apex-lib"),
|
||||
java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib"),
|
||||
)
|
||||
testNoUpdatableJarsInBootImage(t, err, preparer)
|
||||
})
|
||||
|
||||
t.Run("non-updatable jar from some other apex in the framework boot image => ok", func(t *testing.T) {
|
||||
preparer := java.FixtureConfigureBootJars("some-non-updatable-apex:some-non-updatable-apex-lib")
|
||||
preparer := java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib")
|
||||
fragment := java.ApexVariantReference{
|
||||
Apex: proptools.StringPtr("some-non-updatable-apex"),
|
||||
Module: proptools.StringPtr("some-non-updatable-fragment"),
|
||||
|
@ -7212,13 +7242,22 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("platform jar in the framework boot image => ok", func(t *testing.T) {
|
||||
preparer := java.FixtureConfigureBootJars("platform:some-platform-lib")
|
||||
testNoUpdatableJarsInBootImage(t, "", preparer)
|
||||
preparer := android.GroupFixturePreparers(
|
||||
java.FixtureConfigureBootJars("platform:some-platform-lib"),
|
||||
java.FixtureConfigureApexBootJars("some-non-updatable-apex:some-non-updatable-apex-lib"),
|
||||
)
|
||||
fragments := []java.ApexVariantReference{
|
||||
{
|
||||
Apex: proptools.StringPtr("some-non-updatable-apex"),
|
||||
Module: proptools.StringPtr("some-non-updatable-fragment"),
|
||||
},
|
||||
}
|
||||
testNoUpdatableJarsInBootImage(t, "", preparer, fragments...)
|
||||
})
|
||||
}
|
||||
|
||||
func TestDexpreoptAccessDexFilesFromPrebuiltApex(t *testing.T) {
|
||||
preparer := java.FixtureConfigureBootJars("myapex:libfoo")
|
||||
preparer := java.FixtureConfigureApexBootJars("myapex:libfoo")
|
||||
t.Run("prebuilt no source", func(t *testing.T) {
|
||||
fragment := java.ApexVariantReference{
|
||||
Apex: proptools.StringPtr("myapex"),
|
||||
|
@ -7256,6 +7295,7 @@ func TestDexpreoptAccessDexFilesFromPrebuiltApex(t *testing.T) {
|
|||
name: "libfoo",
|
||||
jars: ["libfoo.jar"],
|
||||
apex_available: ["myapex"],
|
||||
permitted_packages: ["libfoo"],
|
||||
}
|
||||
`, "", preparer, fragment)
|
||||
})
|
||||
|
@ -8168,6 +8208,8 @@ func TestApexJavaCoverage(t *testing.T) {
|
|||
java.PrepareForTestWithJavaDefaultModules,
|
||||
android.PrepareForTestWithAndroidBuildComponents,
|
||||
android.FixtureWithRootAndroidBp(bp),
|
||||
dexpreopt.FixtureSetApexBootJars("myapex:mybootclasspathlib"),
|
||||
dexpreopt.FixtureSetApexSystemServerJars("myapex:mysystemserverclasspathlib"),
|
||||
android.FixtureMergeEnv(map[string]string{
|
||||
"EMMA_INSTRUMENT": "true",
|
||||
}),
|
||||
|
|
|
@ -130,7 +130,8 @@ func TestBootclasspathFragments_FragmentDependency(t *testing.T) {
|
|||
result := android.GroupFixturePreparers(
|
||||
prepareForTestWithBootclasspathFragment,
|
||||
// Configure some libraries in the art bootclasspath_fragment and platform_bootclasspath.
|
||||
java.FixtureConfigureBootJars("com.android.art:baz", "com.android.art:quuz", "platform:foo", "platform:bar"),
|
||||
java.FixtureConfigureBootJars("com.android.art:baz", "com.android.art:quuz"),
|
||||
java.FixtureConfigureApexBootJars("someapex:foo", "someapex:bar"),
|
||||
prepareForTestWithArtApex,
|
||||
|
||||
java.PrepareForTestWithJavaSdkLibraryFiles,
|
||||
|
@ -642,7 +643,7 @@ func TestBootclasspathFragmentContentsNoName(t *testing.T) {
|
|||
prepareForTestWithBootclasspathFragment,
|
||||
prepareForTestWithMyapex,
|
||||
// Configure bootclasspath jars to ensure that hidden API encoding is performed on them.
|
||||
java.FixtureConfigureBootJars("myapex:foo", "myapex:bar"),
|
||||
java.FixtureConfigureApexBootJars("myapex:foo", "myapex:bar"),
|
||||
// Make sure that the frameworks/base/Android.bp file exists as otherwise hidden API encoding
|
||||
// is disabled.
|
||||
android.FixtureAddTextFile("frameworks/base/Android.bp", ""),
|
||||
|
@ -893,7 +894,8 @@ func TestBootclasspathFragment_AndroidNonUpdatable(t *testing.T) {
|
|||
prepareForTestWithArtApex,
|
||||
prepareForTestWithMyapex,
|
||||
// Configure bootclasspath jars to ensure that hidden API encoding is performed on them.
|
||||
java.FixtureConfigureBootJars("com.android.art:baz", "com.android.art:quuz", "myapex:foo", "myapex:bar"),
|
||||
java.FixtureConfigureBootJars("com.android.art:baz", "com.android.art:quuz"),
|
||||
java.FixtureConfigureApexBootJars("myapex:foo", "myapex:bar"),
|
||||
// Make sure that the frameworks/base/Android.bp file exists as otherwise hidden API encoding
|
||||
// is disabled.
|
||||
android.FixtureAddTextFile("frameworks/base/Android.bp", ""),
|
||||
|
@ -1062,7 +1064,8 @@ func TestBootclasspathFragment_AndroidNonUpdatable_AlwaysUsePrebuiltSdks(t *test
|
|||
prepareForTestWithArtApex,
|
||||
prepareForTestWithMyapex,
|
||||
// Configure bootclasspath jars to ensure that hidden API encoding is performed on them.
|
||||
java.FixtureConfigureBootJars("com.android.art:baz", "com.android.art:quuz", "myapex:foo", "myapex:bar"),
|
||||
java.FixtureConfigureBootJars("com.android.art:baz", "com.android.art:quuz"),
|
||||
java.FixtureConfigureApexBootJars("myapex:foo", "myapex:bar"),
|
||||
// Make sure that the frameworks/base/Android.bp file exists as otherwise hidden API encoding
|
||||
// is disabled.
|
||||
android.FixtureAddTextFile("frameworks/base/Android.bp", ""),
|
||||
|
|
|
@ -58,6 +58,7 @@ func TestCreateClasspathElements(t *testing.T) {
|
|||
}),
|
||||
java.PrepareForTestWithJavaSdkLibraryFiles,
|
||||
java.FixtureWithLastReleaseApis("foo", "othersdklibrary"),
|
||||
java.FixtureConfigureApexBootJars("myapex:bar"),
|
||||
android.FixtureWithRootAndroidBp(`
|
||||
apex {
|
||||
name: "com.android.art",
|
||||
|
@ -79,6 +80,7 @@ func TestCreateClasspathElements(t *testing.T) {
|
|||
|
||||
bootclasspath_fragment {
|
||||
name: "art-bootclasspath-fragment",
|
||||
image_name: "art",
|
||||
apex_available: [
|
||||
"com.android.art",
|
||||
],
|
||||
|
@ -193,6 +195,10 @@ func TestCreateClasspathElements(t *testing.T) {
|
|||
apex: "com.android.art",
|
||||
module: "art-bootclasspath-fragment",
|
||||
},
|
||||
{
|
||||
apex: "myapex",
|
||||
module: "mybootclasspath-fragment",
|
||||
},
|
||||
],
|
||||
}
|
||||
`),
|
||||
|
|
|
@ -39,7 +39,7 @@ func TestPlatformBootclasspath_Fragments(t *testing.T) {
|
|||
prepareForTestWithMyapex,
|
||||
java.PrepareForTestWithJavaSdkLibraryFiles,
|
||||
java.FixtureWithLastReleaseApis("foo"),
|
||||
java.FixtureConfigureBootJars("myapex:bar"),
|
||||
java.FixtureConfigureApexBootJars("myapex:bar"),
|
||||
android.FixtureWithRootAndroidBp(`
|
||||
platform_bootclasspath {
|
||||
name: "platform-bootclasspath",
|
||||
|
@ -195,6 +195,7 @@ func TestPlatformBootclasspathDependencies(t *testing.T) {
|
|||
|
||||
bootclasspath_fragment {
|
||||
name: "art-bootclasspath-fragment",
|
||||
image_name: "art",
|
||||
apex_available: [
|
||||
"com.android.art",
|
||||
],
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
package apex
|
||||
|
||||
import (
|
||||
"android/soong/dexpreopt"
|
||||
"testing"
|
||||
|
||||
"android/soong/android"
|
||||
|
@ -30,6 +31,7 @@ func TestSystemserverclasspathFragmentContents(t *testing.T) {
|
|||
result := android.GroupFixturePreparers(
|
||||
prepareForTestWithSystemserverclasspathFragment,
|
||||
prepareForTestWithMyapex,
|
||||
dexpreopt.FixtureSetApexSystemServerJars("myapex:foo"),
|
||||
).RunTestWithBp(t, `
|
||||
apex {
|
||||
name: "myapex",
|
||||
|
@ -81,6 +83,7 @@ func TestSystemserverclasspathFragmentNoGeneratedProto(t *testing.T) {
|
|||
result := android.GroupFixturePreparers(
|
||||
prepareForTestWithSystemserverclasspathFragment,
|
||||
prepareForTestWithMyapex,
|
||||
dexpreopt.FixtureSetApexSystemServerJars("myapex:foo"),
|
||||
).RunTestWithBp(t, `
|
||||
apex {
|
||||
name: "myapex",
|
||||
|
|
|
@ -125,6 +125,20 @@ func FixtureSetApexBootJars(bootJars ...string) android.FixturePreparer {
|
|||
})
|
||||
}
|
||||
|
||||
// FixtureSetSystemServerJars sets the SystemServerJars property.
|
||||
func FixtureSetSystemServerJars(jars ...string) android.FixturePreparer {
|
||||
return FixtureModifyGlobalConfig(func(dexpreoptConfig *GlobalConfig) {
|
||||
dexpreoptConfig.SystemServerJars = android.CreateTestConfiguredJarList(jars)
|
||||
})
|
||||
}
|
||||
|
||||
// FixtureSetApexSystemServerJars sets the ApexSystemServerJars property in the global config.
|
||||
func FixtureSetApexSystemServerJars(jars ...string) android.FixturePreparer {
|
||||
return FixtureModifyGlobalConfig(func(dexpreoptConfig *GlobalConfig) {
|
||||
dexpreoptConfig.ApexSystemServerJars = android.CreateTestConfiguredJarList(jars)
|
||||
})
|
||||
}
|
||||
|
||||
// FixtureSetPreoptWithUpdatableBcp sets the PreoptWithUpdatableBcp property in the global config.
|
||||
func FixtureSetPreoptWithUpdatableBcp(value bool) android.FixturePreparer {
|
||||
return FixtureModifyGlobalConfig(func(dexpreoptConfig *GlobalConfig) {
|
||||
|
|
|
@ -164,6 +164,7 @@ func TestBootclasspathFragment_Coverage(t *testing.T) {
|
|||
prepareForTestWithBootclasspathFragment,
|
||||
PrepareForTestWithJavaSdkLibraryFiles,
|
||||
FixtureWithLastReleaseApis("mysdklibrary", "mycoveragestubs"),
|
||||
FixtureConfigureApexBootJars("someapex:mybootlib"),
|
||||
prepareWithBp,
|
||||
)
|
||||
|
||||
|
@ -186,6 +187,7 @@ func TestBootclasspathFragment_StubLibs(t *testing.T) {
|
|||
prepareForTestWithBootclasspathFragment,
|
||||
PrepareForTestWithJavaSdkLibraryFiles,
|
||||
FixtureWithLastReleaseApis("mysdklibrary", "myothersdklibrary", "mycoreplatform"),
|
||||
FixtureConfigureApexBootJars("someapex:mysdklibrary"),
|
||||
).RunTestWithBp(t, `
|
||||
bootclasspath_fragment {
|
||||
name: "myfragment",
|
||||
|
|
|
@ -566,6 +566,7 @@ func TestSnapshotWithBootClasspathFragment_Fragments(t *testing.T) {
|
|||
java.PrepareForTestWithJavaDefaultModules,
|
||||
java.PrepareForTestWithJavaSdkLibraryFiles,
|
||||
java.FixtureWithLastReleaseApis("mysdklibrary", "myothersdklibrary"),
|
||||
java.FixtureConfigureApexBootJars("someapex:mysdklibrary", "myotherapex:myotherlib"),
|
||||
prepareForSdkTestWithApex,
|
||||
|
||||
// Some additional files needed for the myotherapex.
|
||||
|
|
Loading…
Reference in a new issue