From a871a99ebc7834209d029b67b6ea9b27f9d3e9c8 Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Mon, 15 Aug 2016 15:28:14 -0700 Subject: [PATCH] Improve check for activity on top after launch. BUG: 30875754 Fixes: 30868243 Change-Id: I8b7624e35caef107743d61f312e220f8bc21b9b8 --- .../AbstractRestrictBackgroundNetworkTestCase.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/cts/hostside/app/src/com/android/cts/net/hostside/AbstractRestrictBackgroundNetworkTestCase.java b/tests/cts/hostside/app/src/com/android/cts/net/hostside/AbstractRestrictBackgroundNetworkTestCase.java index 439fbbe0c9..9980327bbe 100644 --- a/tests/cts/hostside/app/src/com/android/cts/net/hostside/AbstractRestrictBackgroundNetworkTestCase.java +++ b/tests/cts/hostside/app/src/com/android/cts/net/hostside/AbstractRestrictBackgroundNetworkTestCase.java @@ -73,6 +73,7 @@ abstract class AbstractRestrictBackgroundNetworkTestCase extends Instrumentation private static final int SECOND_IN_MS = 1000; static final int NETWORK_TIMEOUT_MS = 15 * SECOND_IN_MS; private static final int PROCESS_STATE_FOREGROUND_SERVICE = 4; + private static final int PROCESS_STATE_TOP = 2; // Must be higher than NETWORK_TIMEOUT_MS @@ -723,7 +724,17 @@ abstract class AbstractRestrictBackgroundNetworkTestCase extends Instrumentation protected void launchActivity() throws Exception { turnScreenOn(); executeShellCommand("am start com.android.cts.net.hostside.app2/.MyActivity"); - assertForegroundState(); + final int maxTries = 30; + ProcessState state = null; + for (int i = 1; i <= maxTries; i++) { + state = getProcessStateByUid(mUid); + if (state.state == PROCESS_STATE_TOP) return; + Log.w(TAG, "launchActivity(): uid " + mUid + " not on TOP state on attempt #" + i + + "; turning screen on and sleeping 1s before checking again"); + turnScreenOn(); + SystemClock.sleep(SECOND_IN_MS); + } + fail("App2 is not on foreground state after " + maxTries + " attempts: " + state); } /**