diff --git a/runner/android_junit_runner/CHANGELOG.md b/runner/android_junit_runner/CHANGELOG.md index e92dee41c..43ae3fda7 100644 --- a/runner/android_junit_runner/CHANGELOG.md +++ b/runner/android_junit_runner/CHANGELOG.md @@ -10,6 +10,8 @@ * Make perfetto trace sections for tests more identifiable by prefixing with "test:" and using fully qualified class name. (b/204992764) +* Add logs at the start and end of RunBefore and RunAfters sections to help bug understanding. (b/445754263) + **Breaking Changes** **API Changes** diff --git a/runner/android_junit_runner/java/androidx/test/internal/runner/junit4/statement/RunAfters.java b/runner/android_junit_runner/java/androidx/test/internal/runner/junit4/statement/RunAfters.java index 25b7afc66..3a3468681 100644 --- a/runner/android_junit_runner/java/androidx/test/internal/runner/junit4/statement/RunAfters.java +++ b/runner/android_junit_runner/java/androidx/test/internal/runner/junit4/statement/RunAfters.java @@ -18,6 +18,7 @@ package androidx.test.internal.runner.junit4.statement; +import android.util.Log; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import org.junit.runners.model.FrameworkMethod; @@ -32,6 +33,8 @@ public class RunAfters extends UiThreadStatement { private final List afters; + private static final String TAG = "RunAfters"; + /** * Run all non-overridden {@code @After} methods on this class and superclasses before running * {@code next}; all After methods are always executed: exceptions thrown by previous steps are @@ -62,6 +65,7 @@ public void evaluate() throws Throwable { } catch (Throwable e) { errors.add(e); } finally { + Log.d(TAG, "start"); for (final FrameworkMethod each : afters) { if (shouldRunOnUiThread(each)) { runOnUiThread( @@ -83,6 +87,7 @@ public void run() { } } } + Log.d(TAG, "end"); } MultipleFailureException.assertEmpty(errors); } diff --git a/runner/android_junit_runner/java/androidx/test/internal/runner/junit4/statement/RunBefores.java b/runner/android_junit_runner/java/androidx/test/internal/runner/junit4/statement/RunBefores.java index ddb7949e2..3993cb64d 100644 --- a/runner/android_junit_runner/java/androidx/test/internal/runner/junit4/statement/RunBefores.java +++ b/runner/android_junit_runner/java/androidx/test/internal/runner/junit4/statement/RunBefores.java @@ -18,6 +18,7 @@ package androidx.test.internal.runner.junit4.statement; +import android.util.Log; import java.util.List; import java.util.concurrent.atomic.AtomicReference; import org.junit.runners.model.FrameworkMethod; @@ -31,6 +32,8 @@ public class RunBefores extends UiThreadStatement { private final List befores; + private static final String TAG = "RunBefores"; + /** * Run all non-overridden {@code @Before} methods on this class and superclasses before running * {@code next}; if any throws an Exception, stop execution and pass the exception on. @@ -52,6 +55,7 @@ public RunBefores( @Override public void evaluate() throws Throwable { + Log.d(TAG, "start"); final AtomicReference exceptionRef = new AtomicReference<>(); for (final FrameworkMethod before : befores) { if (shouldRunOnUiThread(before)) { @@ -77,6 +81,7 @@ public void run() { } } + Log.d(TAG, "end"); next.evaluate(); } }