diff --git a/core/tests/coretests/Android.bp b/core/tests/coretests/Android.bp index 37e6780a8109ee921c77b50247fff257dd02762f..e72beee71e5062b7e8d112073b834625239b03b1 100644 --- a/core/tests/coretests/Android.bp +++ b/core/tests/coretests/Android.bp @@ -28,10 +28,19 @@ filegroup { visibility: ["//visibility:private"], } +java_defaults { + name: "FrameworksCoreTests-resources", + aaptflags: [ + "-0 .dat", + "-0 .gld", + "-c fa", + ], + resource_dirs: ["res"], +} + android_test { name: "FrameworksCoreTests", - // FrameworksCoreTestsRavenwood references the .aapt.srcjar - use_resource_processor: false, + defaults: ["FrameworksCoreTests-resources"], srcs: [ "src/**/*.java", @@ -117,7 +126,6 @@ android_test { certificate: "platform", - resource_dirs: ["res"], resource_zips: [":FrameworksCoreTests_apks_as_resources"], java_resources: [":FrameworksCoreTests_unit_test_cert_der"], @@ -128,6 +136,24 @@ android_test { ], } +// FrameworksCoreTestsRavenwood pulls in the R.java class from this one. +// Note, "FrameworksCoreTests" and "FrameworksCoreTests-resonly" _might_ not have indentical +// R.java (not sure if there's a guarantee), but that doesn't matter as long as +// FrameworksCoreTestsRavenwood consistently uses the R definition in this module. +android_app { + name: "FrameworksCoreTests-resonly", + defaults: ["FrameworksCoreTests-resources"], + + // FrameworksCoreTestsRavenwood references the .aapt.srcjar + use_resource_processor: false, + libs: [ + "framework-res", + "android.test.runner", + "org.apache.http.legacy", + ], + sdk_version: "core_platform", +} + // Rules to copy all the test apks to the intermediate raw resource directory java_genrule { name: "FrameworksCoreTests_apks_as_resources", @@ -225,7 +251,11 @@ android_ravenwood_test { "src/com/android/internal/util/**/*.java", "src/com/android/internal/power/EnergyConsumerStatsTest.java", - ":FrameworksCoreTests{.aapt.srcjar}", + // Pull in R.java from FrameworksCoreTests-resonly, not from FrameworksCoreTests, + // to avoid having a dependency to FrameworksCoreTests. + // This way, when updating source files and running this test, we don't need to + // rebuild the entire FrameworksCoreTests, which would be slow. + ":FrameworksCoreTests-resonly{.aapt.srcjar}", ":FrameworksCoreTests-aidl", ":FrameworksCoreTests-helpers", ":FrameworksCoreTestDoubles-sources",