summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Makoto Onuki <omakoto@google.com> 2024-09-18 14:02:17 -0700
committer Makoto Onuki <omakoto@google.com> 2024-09-19 02:00:20 +0000
commit77efd35ff6a73f45b11b4ab41256f079a3888df0 (patch)
tree0cbde71e0345643952c4f907fe1b85c211b55b6b
parente1034f1a3436fe01c56c6cbcd1ab30553943ddbf (diff)
Hook up "instrumentation resources"
- Also rename "test context" to "inst context" because "test context" is a bit confusing. Bug: 339614874 Flag: EXEMPT host test change only Test: $ANDROID_BUILD_TOP/frameworks/base/ravenwood/scripts/run-ravenwood-tests.sh Change-Id: If924ac03bca36409c0a45121e5165389dc62b9bc
-rw-r--r--ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuntimeEnvironmentController.java35
-rw-r--r--ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodSystemServer.java2
-rw-r--r--ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodConfig.java2
-rw-r--r--ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java2
-rw-r--r--ravenwood/runtime-common-src/com/android/ravenwood/common/RavenwoodCommonUtils.java2
-rw-r--r--ravenwood/tests/bivalentinst/Android.bp7
-rw-r--r--ravenwood/tests/bivalentinst/test/com/android/ravenwoodtest/bivalentinst/RavenwoodInstrumentationTest_nonself.java4
-rw-r--r--ravenwood/tests/bivalentinst/test/com/android/ravenwoodtest/bivalentinst/RavenwoodInstrumentationTest_self.java3
8 files changed, 24 insertions, 33 deletions
diff --git a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuntimeEnvironmentController.java b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuntimeEnvironmentController.java
index 241726283c52..90bb93de3bc4 100644
--- a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuntimeEnvironmentController.java
+++ b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuntimeEnvironmentController.java
@@ -16,12 +16,11 @@
package android.platform.test.ravenwood;
+import static com.android.ravenwood.common.RavenwoodCommonUtils.RAVENWOOD_INST_RESOURCE_APK;
import static com.android.ravenwood.common.RavenwoodCommonUtils.RAVENWOOD_RESOURCE_APK;
import static com.android.ravenwood.common.RavenwoodCommonUtils.RAVENWOOD_VERBOSE_LOGGING;
import static com.android.ravenwood.common.RavenwoodCommonUtils.RAVENWOOD_VERSION_JAVA_SYSPROP;
-import static org.junit.Assert.fail;
-
import android.app.ActivityManager;
import android.app.Instrumentation;
import android.app.ResourcesManager;
@@ -211,23 +210,21 @@ public class RavenwoodRuntimeEnvironmentController {
var file = new File(RAVENWOOD_RESOURCE_APK);
return config.mState.loadResources(file.exists() ? file : null);
};
- // Set up test context's resources.
+
+ // Set up test context's (== instrumentation context's) resources.
// If the target package name == test package name, then we use the main resources.
- // Otherwise, we don't simulate loading resources from the test APK yet.
- // (we need to add `test_resource_apk` to `android_ravenwood_test`)
- final Supplier<Resources> testResourcesLoader;
+ final Supplier<Resources> instResourcesLoader;
if (isSelfInstrumenting) {
- testResourcesLoader = targetResourcesLoader;
+ instResourcesLoader = targetResourcesLoader;
} else {
- testResourcesLoader = () -> {
- fail("Cannot load resources from the test context (yet)."
- + " Use target context's resources instead.");
- return null; // unreachable.
+ instResourcesLoader = () -> {
+ var file = new File(RAVENWOOD_INST_RESOURCE_APK);
+ return config.mState.loadResources(file.exists() ? file : null);
};
}
- var testContext = new RavenwoodContext(
- config.mTestPackageName, main, testResourcesLoader);
+ var instContext = new RavenwoodContext(
+ config.mTestPackageName, main, instResourcesLoader);
var targetContext = new RavenwoodContext(
config.mTargetPackageName, main, targetResourcesLoader);
@@ -236,18 +233,18 @@ public class RavenwoodRuntimeEnvironmentController {
config.mTargetPackageName, main, targetResourcesLoader);
appContext.setApplicationContext(appContext);
if (isSelfInstrumenting) {
- testContext.setApplicationContext(appContext);
+ instContext.setApplicationContext(appContext);
targetContext.setApplicationContext(appContext);
} else {
// When instrumenting into another APK, the test context doesn't have an app context.
targetContext.setApplicationContext(appContext);
}
- config.mTestContext = testContext;
+ config.mInstContext = instContext;
config.mTargetContext = targetContext;
// Prepare other fields.
config.mInstrumentation = new Instrumentation();
- config.mInstrumentation.basicInit(config.mTestContext, config.mTargetContext);
+ config.mInstrumentation.basicInit(config.mInstContext, config.mTargetContext);
InstrumentationRegistry.registerInstance(config.mInstrumentation, Bundle.EMPTY);
RavenwoodSystemServer.init(config);
@@ -284,13 +281,13 @@ public class RavenwoodRuntimeEnvironmentController {
InstrumentationRegistry.registerInstance(null, Bundle.EMPTY);
config.mInstrumentation = null;
- if (config.mTestContext != null) {
- ((RavenwoodContext) config.mTestContext).cleanUp();
+ if (config.mInstContext != null) {
+ ((RavenwoodContext) config.mInstContext).cleanUp();
}
if (config.mTargetContext != null) {
((RavenwoodContext) config.mTargetContext).cleanUp();
}
- config.mTestContext = null;
+ config.mInstContext = null;
config.mTargetContext = null;
if (config.mProvideMainThread) {
diff --git a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodSystemServer.java b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodSystemServer.java
index d4090e26223a..3946dd8471b0 100644
--- a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodSystemServer.java
+++ b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodSystemServer.java
@@ -67,7 +67,7 @@ public class RavenwoodSystemServer {
sStartedServices = new ArraySet<>();
sTimings = new TimingsTraceAndSlog();
- sServiceManager = new SystemServiceManager(config.mTestContext);
+ sServiceManager = new SystemServiceManager(config.mInstContext);
sServiceManager.setStartInfo(false,
SystemClock.elapsedRealtime(),
SystemClock.uptimeMillis());
diff --git a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodConfig.java b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodConfig.java
index ea33aa690173..446f819ad41b 100644
--- a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodConfig.java
+++ b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodConfig.java
@@ -74,7 +74,7 @@ public final class RavenwoodConfig {
final List<Class<?>> mServicesRequired = new ArrayList<>();
- volatile Context mTestContext;
+ volatile Context mInstContext;
volatile Context mTargetContext;
volatile Instrumentation mInstrumentation;
diff --git a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java
index 984106b21e9a..4196d8e22610 100644
--- a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java
+++ b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java
@@ -216,7 +216,7 @@ public final class RavenwoodRule implements TestRule {
*/
@Deprecated
public Context getContext() {
- return Objects.requireNonNull(mConfiguration.mTestContext,
+ return Objects.requireNonNull(mConfiguration.mInstContext,
"Context is only available during @Test execution");
}
diff --git a/ravenwood/runtime-common-src/com/android/ravenwood/common/RavenwoodCommonUtils.java b/ravenwood/runtime-common-src/com/android/ravenwood/common/RavenwoodCommonUtils.java
index 96746c679020..989bb6be1782 100644
--- a/ravenwood/runtime-common-src/com/android/ravenwood/common/RavenwoodCommonUtils.java
+++ b/ravenwood/runtime-common-src/com/android/ravenwood/common/RavenwoodCommonUtils.java
@@ -63,6 +63,8 @@ public class RavenwoodCommonUtils {
public static final String RAVENWOOD_SYSPROP = "ro.is_on_ravenwood";
public static final String RAVENWOOD_RESOURCE_APK = "ravenwood-res-apks/ravenwood-res.apk";
+ public static final String RAVENWOOD_INST_RESOURCE_APK =
+ "ravenwood-res-apks/ravenwood-inst-res.apk";
public static final String RAVENWOOD_EMPTY_RESOURCES_APK =
RAVENWOOD_RUNTIME_PATH + "ravenwood-data/ravenwood-empty-res.apk";
diff --git a/ravenwood/tests/bivalentinst/Android.bp b/ravenwood/tests/bivalentinst/Android.bp
index 38d1b299b002..41e45e5a6d95 100644
--- a/ravenwood/tests/bivalentinst/Android.bp
+++ b/ravenwood/tests/bivalentinst/Android.bp
@@ -27,8 +27,7 @@ android_ravenwood_test {
"junit",
"truth",
],
- // TODO(b/366246777) uncomment it and the test.
- // resource_apk: "RavenwoodBivalentInstTest_self_inst_device",
+ resource_apk: "RavenwoodBivalentInstTest_self_inst_device",
auto_gen_config: true,
}
@@ -53,8 +52,8 @@ android_ravenwood_test {
"junit",
"truth",
],
- // TODO(b/366246777) uncomment it and the test.
- // resource_apk: "RavenwoodBivalentInstTestTarget",
+ resource_apk: "RavenwoodBivalentInstTestTarget",
+ inst_resource_apk: "RavenwoodBivalentInstTest_nonself_inst_device",
auto_gen_config: true,
}
diff --git a/ravenwood/tests/bivalentinst/test/com/android/ravenwoodtest/bivalentinst/RavenwoodInstrumentationTest_nonself.java b/ravenwood/tests/bivalentinst/test/com/android/ravenwoodtest/bivalentinst/RavenwoodInstrumentationTest_nonself.java
index 9f3ca6ffcd26..92d43d714e14 100644
--- a/ravenwood/tests/bivalentinst/test/com/android/ravenwoodtest/bivalentinst/RavenwoodInstrumentationTest_nonself.java
+++ b/ravenwood/tests/bivalentinst/test/com/android/ravenwoodtest/bivalentinst/RavenwoodInstrumentationTest_nonself.java
@@ -19,7 +19,6 @@ import static com.google.common.truth.Truth.assertThat;
import android.app.Instrumentation;
import android.content.Context;
-import android.platform.test.annotations.DisabledOnRavenwood;
import android.platform.test.ravenwood.RavenwoodConfig;
import android.platform.test.ravenwood.RavenwoodConfig.Config;
@@ -97,7 +96,6 @@ public class RavenwoodInstrumentationTest_nonself {
}
@Test
- @DisabledOnRavenwood(reason = "b/366246777")
public void testTargetAppResource() {
assertThat(sTargetContext.getString(
com.android.ravenwood.bivalentinst_target_app.R.string.test_string_in_target))
@@ -105,8 +103,6 @@ public class RavenwoodInstrumentationTest_nonself {
}
@Test
- @DisabledOnRavenwood(
- reason = "Loading resources from non-self-instrumenting test APK isn't supported yet")
public void testTestAppResource() {
assertThat(sTestContext.getString(
com.android.ravenwood.bivalentinsttest_nonself_inst.R.string.test_string_in_test))
diff --git a/ravenwood/tests/bivalentinst/test/com/android/ravenwoodtest/bivalentinst/RavenwoodInstrumentationTest_self.java b/ravenwood/tests/bivalentinst/test/com/android/ravenwoodtest/bivalentinst/RavenwoodInstrumentationTest_self.java
index fdff22210c16..2f35923dead2 100644
--- a/ravenwood/tests/bivalentinst/test/com/android/ravenwoodtest/bivalentinst/RavenwoodInstrumentationTest_self.java
+++ b/ravenwood/tests/bivalentinst/test/com/android/ravenwoodtest/bivalentinst/RavenwoodInstrumentationTest_self.java
@@ -19,7 +19,6 @@ import static com.google.common.truth.Truth.assertThat;
import android.app.Instrumentation;
import android.content.Context;
-import android.platform.test.annotations.DisabledOnRavenwood;
import android.platform.test.ravenwood.RavenwoodConfig;
import android.platform.test.ravenwood.RavenwoodConfig.Config;
@@ -109,7 +108,6 @@ public class RavenwoodInstrumentationTest_self {
}
@Test
- @DisabledOnRavenwood(reason = "b/366246777")
public void testTargetAppResource() {
assertThat(sTargetContext.getString(
com.android.ravenwood.bivalentinsttest_self_inst.R.string.test_string_in_test))
@@ -117,7 +115,6 @@ public class RavenwoodInstrumentationTest_self {
}
@Test
- @DisabledOnRavenwood(reason = "b/366246777")
public void testTestAppResource() {
assertThat(sTestContext.getString(
com.android.ravenwood.bivalentinsttest_self_inst.R.string.test_string_in_test))