DO NOT MERGE:Improve check for activity on top after launch.

BUG: 30875754
Fixes: 30868243

Change-Id: Iad3d6ce80fcf24281e98251799c23abc9b83b52d
Change-Id: I8b7624e35caef107743d6 1f312e220f8bc21b9b8
This commit is contained in:
Felipe Leme
2016-08-15 15:28:14 -07:00
committed by Feng Yu
parent 79fad1a209
commit 9d8c5ba97e

View File

@@ -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);
}
/**