diff options
author | 2024-12-04 23:34:26 +0000 | |
---|---|---|
committer | 2024-12-04 23:34:26 +0000 | |
commit | 81484fe6e62c32b4048b0634f9d930dcc272ee3a (patch) | |
tree | dd90ebc00bf724138d1d1b95870fa8b3558136a7 | |
parent | 58f6acf8fecce12168c045ae209d67bcd1e84edc (diff) | |
parent | da9246d61d89b7bf65930a24c106081d46e70d8a (diff) |
Merge "Move autogenerated rro creation to a higher priority load hook" into main am: e014bdce4d am: da9246d61d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3390962
Change-Id: Ia94a717ee1c519f6950e772a6c6b4181148aaa07
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | java/app.go | 4 | ||||
-rw-r--r-- | java/app_test.go | 73 |
2 files changed, 75 insertions, 2 deletions
diff --git a/java/app.go b/java/app.go index 8739d1c18..bedb45c5e 100644 --- a/java/app.go +++ b/java/app.go @@ -1794,9 +1794,9 @@ func OverrideAndroidAppModuleFactory() android.Module { android.InitAndroidMultiTargetsArchModule(m, android.DeviceSupported, android.MultilibCommon) android.InitOverrideModule(m) - android.AddLoadHook(m, func(ctx android.LoadHookContext) { + android.AddLoadHookWithPriority(m, func(ctx android.LoadHookContext) { createInternalRuntimeOverlays(ctx, m.ModuleBase) - }) + }, 1) // Run after soong config load hoook return m } diff --git a/java/app_test.go b/java/app_test.go index 61b718d00..11556b05c 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -4798,3 +4798,76 @@ override_android_app { android.AssertBoolEquals(t, tc.desc, tc.overlayApkExpected, overrideVendorOverlayApk.Rule != nil) } } + +func TestNoAutogeneratedStaticRroForDisabledOverrideApps(t *testing.T) { + t.Parallel() + bp := ` +soong_config_module_type { + name: "my_custom_override_android_app", + module_type: "override_android_app", + config_namespace: "my_namespace", + value_variables: ["my_app_enabled"], + properties: ["enabled"], +} +soong_config_bool_variable { + name: "my_app_enabled", +} +android_app { + name: "foo", + srcs: ["foo.java"], + platform_apis: true, +} +my_custom_override_android_app { + name: "override_foo", + base: "foo", + soong_config_variables: { + my_app_enabled: { + enabled: true, + conditions_default: { + enabled: false + }, + }, + } +} +` + testCases := []struct { + desc string + preparer android.FixturePreparer + overlayApkExpected bool + }{ + { + desc: "my_app_enabled is empty", + overlayApkExpected: false, + }, + { + desc: "my_app_enabled is true", + overlayApkExpected: true, + preparer: android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + variables.VendorVars = map[string]map[string]string{ + "my_namespace": { + "my_app_enabled": "true", + }, + } + }), + }, + } + for _, tc := range testCases { + result := android.GroupFixturePreparers( + PrepareForTestWithJavaDefaultModules, + android.PrepareForTestWithSoongConfigModuleBuildComponents, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + variables.EnforceRROTargets = []string{"*"} + }), + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + variables.DeviceResourceOverlays = []string{"device/company/test_product"} + }), + android.MockFS{ + "res/foo.xml": nil, + "device/company/test_product/res/foo.xml": nil, + }.AddToFixture(), + android.OptionalFixturePreparer(tc.preparer), + ).RunTestWithBp(t, bp) + overrideVendorOverlayApk := result.ModuleForTests("override_foo__test_product__auto_generated_rro_vendor", "android_arm64_armv8-a").Module().(*AutogenRuntimeResourceOverlay) + android.AssertBoolEquals(t, tc.desc, tc.overlayApkExpected, overrideVendorOverlayApk.exportPackage != nil) + } +} |