summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Riddle Hsu <riddlehsu@google.com> 2019-10-03 00:08:03 +0800
committer Riddle Hsu <riddlehsu@google.com> 2019-10-03 00:29:32 +0800
commitc8ed2aee6b492e128aedc8d48fa60122174b7834 (patch)
tree516f21b49290732db19c98db09d2fdb953f30ad8
parentce81728f1c3204f615eda5164dace9479930ed3e (diff)
Stabilize and speedup RecentTasksTest
NPE happens due to race condition when setting new display. Move the creation of display to where the test needs it, that reduce 20% (~20s) test time. Bug: 140284973 Test: atest RecentTasksTest Change-Id: I84f9a1ec270395d8d7d03880ec8a5370b6ae2eb0
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java32
1 files changed, 12 insertions, 20 deletions
diff --git a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
index 94abd346a814..445a5cc50d51 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RecentTasksTest.java
@@ -63,7 +63,6 @@ import android.os.RemoteException;
import android.os.SystemClock;
import android.platform.test.annotations.Presubmit;
import android.util.ArraySet;
-import android.util.MutableLong;
import android.util.SparseBooleanArray;
import androidx.test.filters.MediumTest;
@@ -72,6 +71,7 @@ import com.android.server.wm.RecentTasks.Callbacks;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
import java.io.File;
import java.util.ArrayList;
@@ -86,6 +86,7 @@ import java.util.Set;
*/
@MediumTest
@Presubmit
+@RunWith(WindowTestRunner.class)
public class RecentTasksTest extends ActivityTestsBase {
private static final int TEST_USER_0_ID = 0;
private static final int TEST_USER_1_ID = 10;
@@ -95,10 +96,7 @@ public class RecentTasksTest extends ActivityTestsBase {
private static final int INVALID_STACK_ID = 999;
private ActivityDisplay mDisplay;
- private ActivityDisplay mOtherDisplay;
- private ActivityDisplay mSingleTaskDisplay;
private ActivityStack mStack;
- private ActivityStack mHomeStack;
private TestTaskPersister mTaskPersister;
private TestRecentTasks mRecentTasks;
private TestRunningTasks mRunningTasks;
@@ -111,15 +109,7 @@ public class RecentTasksTest extends ActivityTestsBase {
@Before
public void setUp() throws Exception {
mTaskPersister = new TestTaskPersister(mContext.getFilesDir());
-
- // Set testing displays
mDisplay = mRootActivityContainer.getActivityDisplay(DEFAULT_DISPLAY);
- mOtherDisplay = createNewActivityDisplay();
- mSingleTaskDisplay = createNewActivityDisplay();
- mSingleTaskDisplay.setDisplayToSingleTaskInstance();
- mRootActivityContainer.addChild(mOtherDisplay, ActivityDisplay.POSITION_TOP);
- mRootActivityContainer.addChild(mDisplay, ActivityDisplay.POSITION_TOP);
- mRootActivityContainer.addChild(mSingleTaskDisplay, ActivityDisplay.POSITION_TOP);
// Set the recent tasks we should use for testing in this class.
mRecentTasks = new TestRecentTasks(mService, mTaskPersister);
@@ -131,8 +121,6 @@ public class RecentTasksTest extends ActivityTestsBase {
mRunningTasks = new TestRunningTasks();
mService.mStackSupervisor.setRunningTasks(mRunningTasks);
- mHomeStack = mDisplay.getOrCreateStack(
- WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_HOME, true /* onTop */);
mStack = mDisplay.createStack(
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
mCallbacksRecorder = new CallbacksRecorder();
@@ -269,7 +257,7 @@ public class RecentTasksTest extends ActivityTestsBase {
// other task
TaskRecord task1 = createTaskBuilder(".Task1")
.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK)
- .setStack(mHomeStack).build();
+ .setStack(mDisplay.getHomeStack()).build();
TaskRecord task2 = createTaskBuilder(".Task1")
.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK)
.setStack(mStack).build();
@@ -446,12 +434,12 @@ public class RecentTasksTest extends ActivityTestsBase {
mRecentTasks.add(task3);
mRecentTasks.add(task4);
- MutableLong prevLastActiveTime = new MutableLong(0);
+ long prevLastActiveTime = 0;
final ArrayList<TaskRecord> tasks = mRecentTasks.getRawTasks();
for (int i = 0; i < tasks.size(); i++) {
final TaskRecord task = tasks.get(i);
- assertThat(prevLastActiveTime.value).isLessThan(task.lastActiveTime);
- prevLastActiveTime.value = task.lastActiveTime;
+ assertThat(prevLastActiveTime).isLessThan(task.lastActiveTime);
+ prevLastActiveTime = task.lastActiveTime;
}
}
@@ -618,7 +606,10 @@ public class RecentTasksTest extends ActivityTestsBase {
mRecentTasks.setOnlyTestVisibleRange();
mRecentTasks.setParameters(-1 /* min */, 3 /* max */, -1 /* ms */);
- ActivityStack singleTaskStack = mSingleTaskDisplay.createStack(
+ final ActivityDisplay singleTaskDisplay =
+ addNewActivityDisplayAt(ActivityDisplay.POSITION_TOP);
+ singleTaskDisplay.setDisplayToSingleTaskInstance();
+ ActivityStack singleTaskStack = singleTaskDisplay.createStack(
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
TaskRecord excludedTask1 = createTaskBuilder(".ExcludedTask1")
@@ -795,7 +786,8 @@ public class RecentTasksTest extends ActivityTestsBase {
mRecentTasks.setParameters(-1 /* min */, 1 /* max */, -1 /* ms */);
final ActivityStack homeStack = mDisplay.getHomeStack();
- final ActivityStack otherDisplayStack = mOtherDisplay.createStack(
+ final ActivityDisplay otherDisplay = addNewActivityDisplayAt(ActivityDisplay.POSITION_TOP);
+ final ActivityStack otherDisplayStack = otherDisplay.createStack(
WINDOWING_MODE_FULLSCREEN, ACTIVITY_TYPE_STANDARD, true /* onTop */);
// Add a number of tasks (beyond the max) on each display, ensure that the tasks are not