Use D8 by default for android_test
android_test defaults to using R8, but with shrinking, optimization and obfuscation disabled, eliminating most of the benefits of R8. Instead, use D8 by default, improving build performance and avoiding any other issues that may arise in test-specific code related to whole-program R8 execution. An initial audit shows that android_test targets that *do* enable shrinking or optimization also explicitly opt in to R8. A follow-up CL will do the same for android_test_helper_app, but that requires some additional auditing of downstream targets. Bug: 192032291 Test: m + presubmit Change-Id: I5b14a0986dde210f241a77c3a93daacf9e53d667
This commit is contained in:
@@ -1017,7 +1017,7 @@ func (a *AndroidTest) OverridablePropertiesDepsMutator(ctx android.BottomUpMutat
|
||||
func AndroidTestFactory() android.Module {
|
||||
module := &AndroidTest{}
|
||||
|
||||
module.Module.dexProperties.Optimize.EnabledByDefault = true
|
||||
module.Module.dexProperties.Optimize.EnabledByDefault = false
|
||||
|
||||
module.Module.properties.Instrument = true
|
||||
module.Module.properties.Supports_static_instrumentation = true
|
||||
@@ -1071,6 +1071,7 @@ func (a *AndroidTestHelperApp) InstallInTestcases() bool {
|
||||
func AndroidTestHelperAppFactory() android.Module {
|
||||
module := &AndroidTestHelperApp{}
|
||||
|
||||
// TODO(b/192032291): Disable by default after auditing downstream usage.
|
||||
module.Module.dexProperties.Optimize.EnabledByDefault = true
|
||||
|
||||
module.Module.properties.Installable = proptools.BoolPtr(true)
|
||||
|
@@ -36,8 +36,8 @@ type DexProperties struct {
|
||||
Main_dex_rules []string `android:"path"`
|
||||
|
||||
Optimize struct {
|
||||
// If false, disable all optimization. Defaults to true for android_app and android_test
|
||||
// modules, false for java_library and java_test modules.
|
||||
// If false, disable all optimization. Defaults to true for android_app and
|
||||
// android_test_helper_app modules, false for android_test, java_library, and java_test modules.
|
||||
Enabled *bool
|
||||
// True if the module containing this has it set by default.
|
||||
EnabledByDefault bool `blueprint:"mutated"`
|
||||
|
@@ -723,9 +723,9 @@ func TestDefaults(t *testing.T) {
|
||||
t.Errorf("atestNoOptimize should not optimize APK")
|
||||
}
|
||||
|
||||
atestDefault := ctx.ModuleForTests("atestDefault", "android_common").MaybeRule("r8")
|
||||
atestDefault := ctx.ModuleForTests("atestDefault", "android_common").MaybeRule("d8")
|
||||
if atestDefault.Output == nil {
|
||||
t.Errorf("atestDefault should optimize APK")
|
||||
t.Errorf("atestDefault should not optimize APK")
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user