diff options
6 files changed, 31 insertions, 4 deletions
diff --git a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuleImpl.java b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuleImpl.java index a797b1d61b2a..5588f4f811d5 100644 --- a/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuleImpl.java +++ b/ravenwood/junit-impl-src/android/platform/test/ravenwood/RavenwoodRuleImpl.java @@ -20,9 +20,12 @@ import android.app.Instrumentation; import android.os.Bundle; import android.os.HandlerThread; import android.os.Looper; +import android.util.Log; import androidx.test.platform.app.InstrumentationRegistry; +import org.junit.runner.Description; + import java.io.PrintStream; import java.util.Map; import java.util.concurrent.Executors; @@ -92,6 +95,13 @@ public class RavenwoodRuleImpl { android.os.Process.reset$ravenwood(); } + public static void logTestRunner(String label, Description description) { + // This message string carefully matches the exact format emitted by on-device tests, to + // aid developers in debugging raw text logs + Log.e("TestRunner", label + ": " + description.getMethodName() + + "(" + description.getTestClass().getName() + ")"); + } + private static void dumpStacks() { final PrintStream out = System.err; out.println("-----BEGIN ALL THREAD STACKS-----"); diff --git a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java index 1e7cbf6d802d..0285b386ed13 100644 --- a/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java +++ b/ravenwood/junit-src/android/platform/test/ravenwood/RavenwoodRule.java @@ -280,9 +280,14 @@ public class RavenwoodRule implements TestRule { public void evaluate() throws Throwable { Assume.assumeTrue(shouldEnableOnRavenwood(description)); + RavenwoodRuleImpl.logTestRunner("started", description); RavenwoodRuleImpl.init(RavenwoodRule.this); try { base.evaluate(); + RavenwoodRuleImpl.logTestRunner("finished", description); + } catch (Throwable t) { + RavenwoodRuleImpl.logTestRunner("failed", description); + throw t; } finally { RavenwoodRuleImpl.reset(RavenwoodRule.this); } @@ -300,6 +305,8 @@ public class RavenwoodRule implements TestRule { @Override public void evaluate() throws Throwable { Assume.assumeFalse(shouldStillIgnoreInProbeIgnoreMode(description)); + + RavenwoodRuleImpl.logTestRunner("started", description); RavenwoodRuleImpl.init(RavenwoodRule.this); try { base.evaluate(); @@ -309,6 +316,7 @@ public class RavenwoodRule implements TestRule { Assume.assumeTrue(shouldEnableOnRavenwood(description)); throw t; } finally { + RavenwoodRuleImpl.logTestRunner("finished", description); RavenwoodRuleImpl.reset(RavenwoodRule.this); } diff --git a/ravenwood/junit-stub-src/android/platform/test/ravenwood/RavenwoodRuleImpl.java b/ravenwood/junit-stub-src/android/platform/test/ravenwood/RavenwoodRuleImpl.java index d0c2e18be8df..7d172f2a83c0 100644 --- a/ravenwood/junit-stub-src/android/platform/test/ravenwood/RavenwoodRuleImpl.java +++ b/ravenwood/junit-stub-src/android/platform/test/ravenwood/RavenwoodRuleImpl.java @@ -16,6 +16,8 @@ package android.platform.test.ravenwood; +import org.junit.runner.Description; + public class RavenwoodRuleImpl { public static boolean isOnRavenwood() { return false; @@ -28,4 +30,8 @@ public class RavenwoodRuleImpl { public static void reset(RavenwoodRule rule) { // No-op when running on a real device } + + public static void logTestRunner(String label, Description description) { + // No-op when running on a real device + } } diff --git a/tools/hoststubgen/hoststubgen/helper-runtime-src/com/android/hoststubgen/hosthelper/HostTestUtils.java b/tools/hoststubgen/hoststubgen/helper-runtime-src/com/android/hoststubgen/hosthelper/HostTestUtils.java index 7c6aa25bf5ea..60eb47eea7c7 100644 --- a/tools/hoststubgen/hoststubgen/helper-runtime-src/com/android/hoststubgen/hosthelper/HostTestUtils.java +++ b/tools/hoststubgen/hoststubgen/helper-runtime-src/com/android/hoststubgen/hosthelper/HostTestUtils.java @@ -63,7 +63,10 @@ public class HostTestUtils { */ public static void onThrowMethodCalled() { // TODO: Maybe add call tracking? - throw new RuntimeException("This method is not supported on the host side"); + throw new RuntimeException( + "This method is not yet supported under the Ravenwood deviceless testing " + + "environment; consider requesting support from the API owner or " + + "consider using Mockito; more details at go/ravenwood-docs"); } /** diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassTest.java b/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassTest.java index fc6b862705f8..ba17c75132f2 100644 --- a/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassTest.java +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassTest.java @@ -68,7 +68,7 @@ public class TinyFrameworkClassTest { TinyFrameworkForTextPolicy tfc = new TinyFrameworkForTextPolicy(); thrown.expect(RuntimeException.class); - thrown.expectMessage("This method is not supported on the host side"); + thrown.expectMessage("not yet supported"); tfc.visibleButUsesUnsupportedMethod(); } @@ -182,7 +182,7 @@ public class TinyFrameworkClassTest { } catch (java.lang.reflect.InvocationTargetException e) { var inner = e.getCause(); - assertThat(inner.getMessage()).contains("not supported on the host side"); + assertThat(inner.getMessage()).contains("not yet supported"); } } diff --git a/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWithAnnotTest.java b/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWithAnnotTest.java index 20cc2ec9d50d..288c7162aa58 100644 --- a/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWithAnnotTest.java +++ b/tools/hoststubgen/hoststubgen/test-tiny-framework/tiny-test/src/com/android/hoststubgen/test/tinyframework/TinyFrameworkClassWithAnnotTest.java @@ -60,7 +60,7 @@ public class TinyFrameworkClassWithAnnotTest { TinyFrameworkClassAnnotations tfc = new TinyFrameworkClassAnnotations(); thrown.expect(RuntimeException.class); - thrown.expectMessage("This method is not supported on the host side"); + thrown.expectMessage("not yet supported"); tfc.visibleButUsesUnsupportedMethod(); } } |