diff options
author | 2024-11-21 23:26:02 +0000 | |
---|---|---|
committer | 2024-11-21 23:26:02 +0000 | |
commit | b870b936ca774ef624939cc06c4113421d065032 (patch) | |
tree | 118d2f330638d2fdc8b94c140427fbeec0159695 /ravenwood/junit-src | |
parent | bf99335670cabe787dacb208c79b583ae509c6ca (diff) |
[Ravenwood] Decouple environment setup from RavenwoodConfig
- Also deprecate RavenwoodRule.setServicesRequired so that RavenwoodRule
is only used for setting system properties.
Flag: EXEMPT host test change only
Bug: 377765941
Test: $ANDROID_BUILD_TOP/frameworks/base/ravenwood/scripts/run-ravenwood-tests.sh
Change-Id: Id7ca551bd797e786f2d71777eb9f972fb5fb6c88
Diffstat (limited to 'ravenwood/junit-src')
-rw-r--r-- | ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodConfig.java | 62 | ||||
-rw-r--r-- | ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java | 38 |
2 files changed, 13 insertions, 87 deletions
diff --git a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodConfig.java b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodConfig.java index 7ca9239d2062..3ed0f50434fb 100644 --- a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodConfig.java +++ b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodConfig.java @@ -15,21 +15,13 @@ */ package android.platform.test.ravenwood; -import static android.os.Process.FIRST_APPLICATION_UID; -import static android.os.UserHandle.SYSTEM; - import android.annotation.NonNull; import android.annotation.Nullable; -import android.app.Instrumentation; -import android.content.Context; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; /** * @deprecated This class will be removed. Reach out to g/ravenwood if you need any features in it. @@ -45,37 +37,10 @@ public final class RavenwoodConfig { public @interface Config { } - private static final int NOBODY_UID = 9999; - - private static final AtomicInteger sNextPid = new AtomicInteger(100); - - int mCurrentUser = SYSTEM.getIdentifier(); - - /** - * Unless the test author requests differently, run as "nobody", and give each collection of - * tests its own unique PID. - */ - int mUid = FIRST_APPLICATION_UID; - int mPid = sNextPid.getAndIncrement(); - - String mTestPackageName; - String mTargetPackageName; - - int mTargetSdkLevel; - - final RavenwoodSystemProperties mSystemProperties = new RavenwoodSystemProperties(); - - final List<Class<?>> mServicesRequired = new ArrayList<>(); - - volatile Context mInstContext; - volatile Context mTargetContext; - volatile Instrumentation mInstrumentation; - /** * Stores internal states / methods associated with this config that's only needed in * junit-impl. */ - final RavenwoodConfigState mState = new RavenwoodConfigState(this); private RavenwoodConfig() { } @@ -159,34 +124,11 @@ public final class RavenwoodConfig { return this; } - Builder setSystemPropertyImmutableReal(@NonNull String key, - @Nullable Object value) { - mConfig.mSystemProperties.setValue(key, value); - mConfig.mSystemProperties.setAccessReadOnly(key); - return this; - } - - Builder setSystemPropertyMutableReal(@NonNull String key, - @Nullable Object value) { - mConfig.mSystemProperties.setValue(key, value); - mConfig.mSystemProperties.setAccessReadWrite(key); - return this; - } - /** - * Configure the set of system services that are required for this test to operate. - * - * For example, passing {@code android.hardware.SerialManager.class} as an argument will - * ensure that the underlying service is created, initialized, and ready to use for the - * duration of the test. The {@code SerialManager} instance can be obtained via - * {@code RavenwoodRule.getContext()} and {@code Context.getSystemService()}, and - * {@code SerialManagerInternal} can be obtained via {@code LocalServices.getService()}. + * @deprecated no longer used. All supported services are available. */ + @Deprecated public Builder setServicesRequired(@NonNull Class<?>... services) { - mConfig.mServicesRequired.clear(); - for (Class<?> service : services) { - mConfig.mServicesRequired.add(service); - } return this; } diff --git a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java index 5681a9040f63..6262ad160c0f 100644 --- a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java +++ b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java @@ -92,19 +92,11 @@ public final class RavenwoodRule implements TestRule { } } - private final RavenwoodConfig mConfiguration; - - public RavenwoodRule() { - mConfiguration = new RavenwoodConfig.Builder().build(); - } - - private RavenwoodRule(RavenwoodConfig config) { - mConfiguration = config; - } + final RavenwoodSystemProperties mSystemProperties = new RavenwoodSystemProperties(); public static class Builder { - private final RavenwoodConfig.Builder mBuilder = - new RavenwoodConfig.Builder(); + + private final RavenwoodRule mRule = new RavenwoodRule(); public Builder() { } @@ -152,7 +144,8 @@ public final class RavenwoodRule implements TestRule { * Has no effect on non-Ravenwood environments. */ public Builder setSystemPropertyImmutable(@NonNull String key, @Nullable Object value) { - mBuilder.setSystemPropertyImmutableReal(key, value); + mRule.mSystemProperties.setValue(key, value); + mRule.mSystemProperties.setAccessReadOnly(key); return this; } @@ -167,26 +160,21 @@ public final class RavenwoodRule implements TestRule { * Has no effect on non-Ravenwood environments. */ public Builder setSystemPropertyMutable(@NonNull String key, @Nullable Object value) { - mBuilder.setSystemPropertyMutableReal(key, value); + mRule.mSystemProperties.setValue(key, value); + mRule.mSystemProperties.setAccessReadWrite(key); return this; } /** - * Configure the set of system services that are required for this test to operate. - * - * For example, passing {@code android.hardware.SerialManager.class} as an argument will - * ensure that the underlying service is created, initialized, and ready to use for the - * duration of the test. The {@code SerialManager} instance can be obtained via - * {@code RavenwoodRule.getContext()} and {@code Context.getSystemService()}, and - * {@code SerialManagerInternal} can be obtained via {@code LocalServices.getService()}. + * @deprecated no longer used. All supported services are available. */ + @Deprecated public Builder setServicesRequired(@NonNull Class<?>... services) { - mBuilder.setServicesRequired(services); return this; } public RavenwoodRule build() { - return new RavenwoodRule(mBuilder.build()); + return mRule; } } @@ -227,7 +215,7 @@ public final class RavenwoodRule implements TestRule { @Override public Statement apply(Statement base, Description description) { - if (!RavenwoodConfig.isOnRavenwood()) { + if (!IS_ON_RAVENWOOD) { return base; } return new Statement() { @@ -296,8 +284,4 @@ public final class RavenwoodRule implements TestRule { public static RavenwoodPrivate private$ravenwood() { return sRavenwoodPrivate; } - - RavenwoodConfig getConfiguration() { - return mConfiguration; - } } |