diff options
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)) |