Revert "Generate app profiles even if dexpreopt is disabled."
Revert submission 2574032
Reason for revert: DroidMonitor-triggered revert due to breakage <https://android-build.googleplex.com/builds/quarterdeck?branch=aosp-master&target=aosp_cf_riscv64_minidroid-userdebug&lkgb=10069333&lkbb=10075041&fkbb=10071083>, bug <b/280902279>
Reverted changes: /q/submissionid:2574032
Change-Id: Ia9d05f3b7439604eb4a4b4100f46879fe11f5820
BUG: <280902279>
diff --git a/android/testing.go b/android/testing.go
index 2a9c658..fc39a9c 100644
--- a/android/testing.go
+++ b/android/testing.go
@@ -813,20 +813,6 @@
return path.RelativeToTop()
}
-func allOutputs(p BuildParams) []string {
- outputs := append(WritablePaths(nil), p.Outputs...)
- outputs = append(outputs, p.ImplicitOutputs...)
- if p.Output != nil {
- outputs = append(outputs, p.Output)
- }
- return outputs.Strings()
-}
-
-// AllOutputs returns all 'BuildParams.Output's and 'BuildParams.Outputs's in their full path string forms.
-func (p TestingBuildParams) AllOutputs() []string {
- return allOutputs(p.BuildParams)
-}
-
// baseTestingComponent provides functionality common to both TestingModule and TestingSingleton.
type baseTestingComponent struct {
config Config
@@ -968,7 +954,12 @@
func (b baseTestingComponent) allOutputs() []string {
var outputFullPaths []string
for _, p := range b.provider.BuildParamsForTests() {
- outputFullPaths = append(outputFullPaths, allOutputs(p)...)
+ outputs := append(WritablePaths(nil), p.Outputs...)
+ outputs = append(outputs, p.ImplicitOutputs...)
+ if p.Output != nil {
+ outputs = append(outputs, p.Output)
+ }
+ outputFullPaths = append(outputFullPaths, outputs.Strings()...)
}
return outputFullPaths
}
diff --git a/dexpreopt/dexpreopt.go b/dexpreopt/dexpreopt.go
index 2b38793..a590c72 100644
--- a/dexpreopt/dexpreopt.go
+++ b/dexpreopt/dexpreopt.go
@@ -100,19 +100,11 @@
return rule, nil
}
-// If dexpreopt is applicable to the module, returns whether dexpreopt is disabled. Otherwise, the
-// behavior is undefined.
-// When it returns true, dexpreopt artifacts will not be generated, but profile will still be
-// generated if profile-guided compilation is requested.
func dexpreoptDisabled(ctx android.PathContext, global *GlobalConfig, module *ModuleConfig) bool {
if ctx.Config().UnbundledBuild() {
return true
}
- if global.DisablePreopt {
- return true
- }
-
if contains(global.DisablePreoptModules, module.Name) {
return true
}
diff --git a/dexpreopt/testing.go b/dexpreopt/testing.go
index 6ed0736..b3dd3cc 100644
--- a/dexpreopt/testing.go
+++ b/dexpreopt/testing.go
@@ -181,10 +181,3 @@
dexpreoptConfig.DisablePreoptBootImages = disable
})
}
-
-// FixtureDisableDexpreopt sets the DisablePreopt property in the global config.
-func FixtureDisableDexpreopt(disable bool) android.FixturePreparer {
- return FixtureModifyGlobalConfig(func(_ android.PathContext, dexpreoptConfig *GlobalConfig) {
- dexpreoptConfig.DisablePreopt = disable
- })
-}
diff --git a/java/dex_test.go b/java/dex_test.go
index 2ba3831..97fc3d0 100644
--- a/java/dex_test.go
+++ b/java/dex_test.go
@@ -23,7 +23,7 @@
)
func TestR8(t *testing.T) {
- result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, `
+ result := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd.RunTestWithBp(t, `
android_app {
name: "app",
srcs: ["foo.java"],
@@ -191,7 +191,7 @@
for _, tc := range testcases {
t.Run(tc.name, func(t *testing.T) {
- fixturePreparer := PrepareForTestWithJavaDefaultModules
+ fixturePreparer := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd
if tc.unbundled {
fixturePreparer = android.GroupFixturePreparers(
fixturePreparer,
@@ -258,7 +258,7 @@
}
func TestR8Flags(t *testing.T) {
- result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, `
+ result := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd.RunTestWithBp(t, `
android_app {
name: "app",
srcs: ["foo.java"],
@@ -287,7 +287,7 @@
}
func TestD8(t *testing.T) {
- result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, `
+ result := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd.RunTestWithBp(t, `
java_library {
name: "foo",
srcs: ["foo.java"],
@@ -328,7 +328,7 @@
}
func TestProguardFlagsInheritance(t *testing.T) {
- result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, `
+ result := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd.RunTestWithBp(t, `
android_app {
name: "app",
static_libs: [
diff --git a/java/dexpreopt.go b/java/dexpreopt.go
index f0bb9a3..0ffedf6 100644
--- a/java/dexpreopt.go
+++ b/java/dexpreopt.go
@@ -180,8 +180,6 @@
return android.RemoveOptionalPrebuiltPrefix(ctx.ModuleName())
}
-// Returns whether dexpreopt is applicable to the module.
-// When it returns true, neither profile nor dexpreopt artifacts will be generated.
func (d *dexpreopter) dexpreoptDisabled(ctx android.BaseModuleContext) bool {
if !ctx.Device() {
return true
@@ -207,6 +205,14 @@
global := dexpreopt.GetGlobalConfig(ctx)
+ if global.DisablePreopt {
+ return true
+ }
+
+ if inList(moduleName(ctx), global.DisablePreoptModules) {
+ return true
+ }
+
isApexSystemServerJar := global.AllApexSystemServerJars(ctx).ContainsJar(moduleName(ctx))
if isApexVariant(ctx) {
// Don't preopt APEX variant module unless the module is an APEX system server jar.
diff --git a/java/dexpreopt_test.go b/java/dexpreopt_test.go
index f91ac5c..3d2c5c3 100644
--- a/java/dexpreopt_test.go
+++ b/java/dexpreopt_test.go
@@ -438,28 +438,3 @@
android.AssertIntEquals(t, "entries count", 0, len(entriesList))
}
-
-func TestGenerateProfileEvenIfDexpreoptIsDisabled(t *testing.T) {
- preparers := android.GroupFixturePreparers(
- PrepareForTestWithJavaDefaultModules,
- PrepareForTestWithFakeApexMutator,
- dexpreopt.FixtureDisableDexpreopt(true),
- )
-
- result := preparers.RunTestWithBp(t, `
- java_library {
- name: "foo",
- installable: true,
- dex_preopt: {
- profile: "art-profile",
- },
- srcs: ["a.java"],
- }`)
-
- ctx := result.TestContext
- dexpreopt := ctx.ModuleForTests("foo", "android_common").MaybeRule("dexpreopt")
-
- expected := []string{"out/soong/.intermediates/foo/android_common/dexpreopt/profile.prof"}
-
- android.AssertArrayString(t, "outputs", expected, dexpreopt.AllOutputs())
-}