diff options
| author | 2019-10-03 00:08:03 +0800 | |
|---|---|---|
| committer | 2019-10-03 00:29:32 +0800 | |
| commit | c8ed2aee6b492e128aedc8d48fa60122174b7834 (patch) | |
| tree | 516f21b49290732db19c98db09d2fdb953f30ad8 | |
| parent | ce81728f1c3204f615eda5164dace9479930ed3e (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.java | 32 |
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 |