summaryrefslogtreecommitdiff
path: root/java/app_test.go
diff options
context:
space:
mode:
author Jihoon Kang <jihoonkang@google.com> 2023-12-01 22:01:06 +0000
committer Jihoon Kang <jihoonkang@google.com> 2023-12-07 23:01:26 +0000
commit84b2589e6dc85d15af273b8a293ed7f064142af7 (patch)
treebcdd1a9808f4eaa9c221dd44b8481e308c2e7498 /java/app_test.go
parentcca3e0c4b56b7620dee8f2dcf76b7b6682d8ebe8 (diff)
Add aconfig flag support for android_app
This change adds an overrideable property flags_packages to android_app, which is used to list the aconfig_declarations module names that the app depends on. The build action of android_app is modified to pass all flags text file provided by the aconfig_declarations to aapt2 link as --feature-flags arguments. Test: m nothing --no-skip-soong-tests Bug: 306024510 Change-Id: I4924f88b9954950cc1936a472cd7ac70f41add5d
Diffstat (limited to 'java/app_test.go')
-rw-r--r--java/app_test.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/java/app_test.go b/java/app_test.go
index 5cb4a2301..0936b281a 100644
--- a/java/app_test.go
+++ b/java/app_test.go
@@ -4333,3 +4333,48 @@ func TestApexGlobalMinSdkVersionOverride(t *testing.T) {
)
}
+
+func TestAppFlagsPackages(t *testing.T) {
+ ctx := testApp(t, `
+ android_app {
+ name: "foo",
+ srcs: ["a.java"],
+ sdk_version: "current",
+ flags_packages: [
+ "bar",
+ "baz",
+ ],
+ }
+ aconfig_declarations {
+ name: "bar",
+ package: "com.example.package",
+ srcs: [
+ "bar.aconfig",
+ ],
+ }
+ aconfig_declarations {
+ name: "baz",
+ package: "com.example.package",
+ srcs: [
+ "baz.aconfig",
+ ],
+ }
+ `)
+
+ foo := ctx.ModuleForTests("foo", "android_common")
+
+ // android_app module depends on aconfig_declarations listed in flags_packages
+ android.AssertBoolEquals(t, "foo expected to depend on bar", true,
+ CheckModuleHasDependency(t, ctx, "foo", "android_common", "bar"))
+
+ android.AssertBoolEquals(t, "foo expected to depend on baz", true,
+ CheckModuleHasDependency(t, ctx, "foo", "android_common", "baz"))
+
+ aapt2LinkRule := foo.Rule("android/soong/java.aapt2Link")
+ linkInFlags := aapt2LinkRule.Args["inFlags"]
+ android.AssertStringDoesContain(t,
+ "aapt2 link command expected to pass feature flags arguments",
+ linkInFlags,
+ "--feature-flags @out/soong/.intermediates/bar/intermediate.txt --feature-flags @out/soong/.intermediates/baz/intermediate.txt",
+ )
+}