Remove direct dependency from FrameworksCoreTestsRavenwood
... to FrameworksCoreTests, so that the entire FrameworksCoreTests
doesn't have to be rebuilt when running
`atest FrameworksCoreTestsRavenwood` after touching the source files.
Bug: 292141694
Test: atest FrameworksCoreTestsRavenwood
Change-Id: Iebc92e30656a5f7eb1a2e467b4d31c56a292209d
diff --git a/core/tests/coretests/Android.bp b/core/tests/coretests/Android.bp
index 861f719..c8eb52f 100644
--- a/core/tests/coretests/Android.bp
+++ b/core/tests/coretests/Android.bp
@@ -28,10 +28,19 @@
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 @@
certificate: "platform",
- resource_dirs: ["res"],
resource_zips: [":FrameworksCoreTests_apks_as_resources"],
java_resources: [":FrameworksCoreTests_unit_test_cert_der"],
@@ -128,6 +136,22 @@
],
}
+// 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",
+ ],
+ sdk_version: "core_platform",
+}
+
// Rules to copy all the test apks to the intermediate raw resource directory
java_genrule {
name: "FrameworksCoreTests_apks_as_resources",
@@ -224,7 +248,11 @@
"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",