From aaa0c1ffcde21693d1d033d2e32ba638c211f695 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 16 May 2022 16:19:54 -0700 Subject: [PATCH] Fix prebuilts of overridden apps AndroidApp had its own HideFromMake method and flag that shadowed the one in ModuleBase. This caused performOverrideMutator to set the AndroidApp flag, but ModuleBase.skipInstall to read the ModuleBase flag, resulting in a conflicting install rule being created. Remove AndroidApp's HideFromMake in favor of the ModuleBase one. Bug: 232788722 Test: TestOverrideAndroidAppWithPrebuilt Change-Id: I8c0dfcb50ff4dc1e4d0574f150b10d79908f46aa --- java/androidmk.go | 2 +- java/app.go | 5 ----- java/app_test.go | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/java/androidmk.go b/java/androidmk.go index ed4c58608..9f6269488 100644 --- a/java/androidmk.go +++ b/java/androidmk.go @@ -324,7 +324,7 @@ func (binary *Binary) AndroidMkEntries() []android.AndroidMkEntries { } func (app *AndroidApp) AndroidMkEntries() []android.AndroidMkEntries { - if app.hideApexVariantFromMake || app.appProperties.HideFromMake { + if app.hideApexVariantFromMake || app.IsHideFromMake() { return []android.AndroidMkEntries{android.AndroidMkEntries{ Disabled: true, }} diff --git a/java/app.go b/java/app.go index 31463de4d..7ff654424 100755 --- a/java/app.go +++ b/java/app.go @@ -99,7 +99,6 @@ type appProperties struct { // cc.Coverage related properties PreventInstall bool `blueprint:"mutated"` - HideFromMake bool `blueprint:"mutated"` IsCoverageVariant bool `blueprint:"mutated"` // Whether this app is considered mainline updatable or not. When set to true, this will enforce @@ -880,10 +879,6 @@ func (a *AndroidApp) SetPreventInstall() { a.appProperties.PreventInstall = true } -func (a *AndroidApp) HideFromMake() { - a.appProperties.HideFromMake = true -} - func (a *AndroidApp) MarkAsCoverageVariant(coverage bool) { a.appProperties.IsCoverageVariant = coverage } diff --git a/java/app_test.go b/java/app_test.go index 64d706a43..31cd697b7 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -2038,6 +2038,41 @@ func TestOverrideAndroidAppOverrides(t *testing.T) { } } +func TestOverrideAndroidAppWithPrebuilt(t *testing.T) { + result := PrepareForTestWithJavaDefaultModules.RunTestWithBp( + t, ` + android_app { + name: "foo", + srcs: ["a.java"], + sdk_version: "current", + } + + override_android_app { + name: "bar", + base: "foo", + } + + android_app_import { + name: "bar", + prefer: true, + apk: "bar.apk", + presigned: true, + } + `) + + // An app that has an override that also has a prebuilt should not be hidden. + foo := result.ModuleForTests("foo", "android_common") + if foo.Module().IsHideFromMake() { + t.Errorf("expected foo to have HideFromMake false") + } + + // An override that also has a prebuilt should be hidden. + barOverride := result.ModuleForTests("foo", "android_common_bar") + if !barOverride.Module().IsHideFromMake() { + t.Errorf("expected bar override variant of foo to have HideFromMake true") + } +} + func TestOverrideAndroidAppStem(t *testing.T) { ctx, _ := testJava(t, ` android_app {