From ae6c5b976911a7a25de8e15fb75a4fdb61797010 Mon Sep 17 00:00:00 2001 From: Priyanka Advani Date: Thu, 4 Apr 2024 18:31:50 +0000 Subject: Revert "Ravenwood/HostStubGen refactor and bug fixe" This reverts commit ec5e313efbb08adb3dcb3ce044610338eaf4c29e. Reason for revert: Probable culprit for b/332911993. Will be verifying through ABTD for confirmation and before submitting the revert. Change-Id: I030e2d27d6b897013106b9d73b57b50823ea87c9 --- .../test/annotations/DisabledOnNonRavenwood.java | 6 +---- .../test/ravenwood/RavenwoodClassRule.java | 26 +++++++++++++++------- .../platform/test/ravenwood/RavenwoodRule.java | 13 +++++------ 3 files changed, 25 insertions(+), 20 deletions(-) (limited to 'ravenwood/junit-src') diff --git a/ravenwood/junit-src/android/platform/test/annotations/DisabledOnNonRavenwood.java b/ravenwood/junit-src/android/platform/test/annotations/DisabledOnNonRavenwood.java index 9d47f3a6bc5d..8ca34bafc2c6 100644 --- a/ravenwood/junit-src/android/platform/test/annotations/DisabledOnNonRavenwood.java +++ b/ravenwood/junit-src/android/platform/test/annotations/DisabledOnNonRavenwood.java @@ -31,17 +31,13 @@ import java.lang.annotation.Target; * which means if a test class has this annotation, you can't negate it in subclasses or * on a per-method basis. * - * THIS ANNOTATION CANNOT BE ADDED TO CLASSES AT THIS PONINT. - * See {@link com.android.platform.test.ravenwood.bivalenttest.RavenwoodClassRuleRavenwoodOnlyTest} - * for the reason. - * * The {@code RAVENWOOD_RUN_DISABLED_TESTS} environmental variable won't work because it won't be * propagated to the device. (We may support it in the future, possibly using a debug. sysprop.) * * @hide */ @Inherited -@Target({ElementType.METHOD}) +@Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface DisabledOnNonRavenwood { /** diff --git a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodClassRule.java b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodClassRule.java index f4b7ec360dbf..9a4d4886d6f0 100644 --- a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodClassRule.java +++ b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodClassRule.java @@ -25,7 +25,6 @@ import static android.platform.test.ravenwood.RavenwoodRule.shouldStillIgnoreInP import android.platform.test.annotations.DisabledOnRavenwood; import android.platform.test.annotations.EnabledOnRavenwood; -import org.junit.Assert; import org.junit.Assume; import org.junit.rules.TestRule; import org.junit.runner.Description; @@ -42,16 +41,27 @@ import org.junit.runners.model.Statement; public class RavenwoodClassRule implements TestRule { @Override public Statement apply(Statement base, Description description) { + // No special treatment when running outside Ravenwood; run tests as-is if (!IS_ON_RAVENWOOD) { - // This should be "Assume", not Assert, but if we use assume here, the device side - // test runner would complain. - // See the TODO comment in RavenwoodClassRuleRavenwoodOnlyTest. - Assert.assertTrue(shouldEnableOnDevice(description)); - } else if (ENABLE_PROBE_IGNORED) { + Assume.assumeTrue(shouldEnableOnDevice(description)); + return base; + } + + if (ENABLE_PROBE_IGNORED) { Assume.assumeFalse(shouldStillIgnoreInProbeIgnoreMode(description)); + // Pass through to possible underlying RavenwoodRule for both environment + // configuration and handling method-level annotations + return base; } else { - Assume.assumeTrue(shouldEnableOnRavenwood(description)); + return new Statement() { + @Override + public void evaluate() throws Throwable { + Assume.assumeTrue(shouldEnableOnRavenwood(description)); + // Pass through to possible underlying RavenwoodRule for both environment + // configuration and handling method-level annotations + base.evaluate(); + } + }; } - return base; } } diff --git a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java index a2e8ec17bbf7..52ea3402fa62 100644 --- a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java +++ b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java @@ -28,6 +28,7 @@ import android.platform.test.annotations.DisabledOnNonRavenwood; import android.platform.test.annotations.DisabledOnRavenwood; import android.platform.test.annotations.EnabledOnRavenwood; import android.platform.test.annotations.IgnoreUnderRavenwood; +import android.util.ArraySet; import org.junit.Assume; import org.junit.rules.TestRule; @@ -277,9 +278,6 @@ public class RavenwoodRule implements TestRule { return false; } } - if (description.getTestClass().getAnnotation(DisabledOnNonRavenwood.class) != null) { - return false; - } return true; } @@ -415,9 +413,10 @@ public class RavenwoodRule implements TestRule { }; } - public static class _$RavenwoodPrivate { - public static boolean isOptionalValidationEnabled() { - return ENABLE_OPTIONAL_VALIDATION; - } + /** + * Do not use it outside ravenwood core classes. + */ + public boolean _ravenwood_private$isOptionalValidationEnabled() { + return ENABLE_OPTIONAL_VALIDATION; } } -- cgit v1.2.3-59-g8ed1b