Merge cherrypicks of ['android-review.googlesource.com/3160716'] into 24Q3-release.

Change-Id: I3d1fe188748cfdb8fae067e6eb9ec5cd64cb88f5
This commit is contained in:
Android Build Coastguard Worker 2024-07-10 05:23:33 +00:00
commit f3a42c8e08
2 changed files with 89 additions and 1 deletions

View file

@ -539,7 +539,11 @@ func (a *AndroidApp) aaptBuildActions(ctx android.ModuleContext) {
a.aapt.splitNames = a.appProperties.Package_splits
a.aapt.LoggingParent = String(a.overridableAppProperties.Logging_parent)
if a.Updatable() {
a.aapt.defaultManifestVersion = android.DefaultUpdatableModuleVersion
if override := ctx.Config().Getenv("OVERRIDE_APEX_MANIFEST_DEFAULT_VERSION"); override != "" {
a.aapt.defaultManifestVersion = override
} else {
a.aapt.defaultManifestVersion = android.DefaultUpdatableModuleVersion
}
}
// Use non final ids if we are doing optimized shrinking and are using R8.

View file

@ -519,6 +519,49 @@ func TestUpdatableApps_ErrorIfDepMinSdkVersionIsHigher(t *testing.T) {
testJavaError(t, `"libjni" .*: links "libbar" built against newer API version "current"`, bp)
}
func TestUpdatableApps_ApplyDefaultUpdatableModuleVersion(t *testing.T) {
result := android.GroupFixturePreparers(
PrepareForTestWithJavaDefaultModules,
).RunTestWithBp(t, `
android_app {
name: "com.android.foo",
srcs: ["a.java"],
sdk_version: "current",
min_sdk_version: "31",
updatable: true,
}
`)
foo := result.ModuleForTests("com.android.foo", "android_common").Rule("manifestFixer")
android.AssertStringDoesContain(t,
"com.android.foo: expected manifest fixer to set override-placeholder-version to android.DefaultUpdatableModuleVersion",
foo.BuildParams.Args["args"],
fmt.Sprintf("--override-placeholder-version %s", android.DefaultUpdatableModuleVersion),
)
}
func TestUpdatableApps_ApplyOverrideApexManifestDefaultVersion(t *testing.T) {
result := android.GroupFixturePreparers(
PrepareForTestWithJavaDefaultModules,
android.FixtureMergeEnv(map[string]string{
"OVERRIDE_APEX_MANIFEST_DEFAULT_VERSION": "1234",
}),
).RunTestWithBp(t, `
android_app {
name: "com.android.foo",
srcs: ["a.java"],
sdk_version: "current",
min_sdk_version: "31",
updatable: true,
}
`)
foo := result.ModuleForTests("com.android.foo", "android_common").Rule("manifestFixer")
android.AssertStringDoesContain(t,
"com.android.foo: expected manifest fixer to set override-placeholder-version to 1234",
foo.BuildParams.Args["args"],
"--override-placeholder-version 1234",
)
}
func TestResourceDirs(t *testing.T) {
testCases := []struct {
name string
@ -4479,3 +4522,44 @@ func TestAppMinSdkVersionOverride(t *testing.T) {
)
}
func TestNotApplyDefaultUpdatableModuleVersion(t *testing.T) {
result := android.GroupFixturePreparers(
PrepareForTestWithJavaDefaultModules,
).RunTestWithBp(t, `
android_app {
name: "com.android.foo",
srcs: ["a.java"],
sdk_version: "current",
min_sdk_version: "31",
}
`)
foo := result.ModuleForTests("com.android.foo", "android_common").Rule("manifestFixer")
android.AssertStringDoesNotContain(t,
"com.android.foo: expected manifest fixer to not set override-placeholder-version",
foo.BuildParams.Args["args"],
"--override-placeholder-version",
)
}
func TestNotApplyOverrideApexManifestDefaultVersion(t *testing.T) {
result := android.GroupFixturePreparers(
PrepareForTestWithJavaDefaultModules,
android.FixtureMergeEnv(map[string]string{
"OVERRIDE_APEX_MANIFEST_DEFAULT_VERSION": "1234",
}),
).RunTestWithBp(t, `
android_app {
name: "com.android.foo",
srcs: ["a.java"],
sdk_version: "current",
min_sdk_version: "31",
}
`)
foo := result.ModuleForTests("com.android.foo", "android_common").Rule("manifestFixer")
android.AssertStringDoesNotContain(t,
"com.android.foo: expected manifest fixer to not set override-placeholder-version",
foo.BuildParams.Args["args"],
"--override-placeholder-version",
)
}