Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f6e7d24 authored by Mina Granic's avatar Mina Granic
Browse files

Fix tests by adding test activity process to processMap.

Processes with pid=0 are not added to process map. Use a different process, so that camera compat can query them.

Flag: com.android.window.flags.enable_camera_compat_track_task_and_app_bugfix
Test: atest WmTests:CameraCompatFreeformPolicyTests
Test: atest WmTests:DisplayRotationCompatPolicyTests
Fixes: 380840084
Change-Id: Ia223d72dcd7da52274c01f912ebd246a7ea6ff9a
parent 8ef9a364
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -97,6 +97,8 @@ class AppCompatActivityRobot {
    @Nullable
    private Consumer<DisplayContent> mOnPostDisplayContentCreation;

    private int mNextPid = 1;

    AppCompatActivityRobot(@NonNull WindowTestsBase windowTestBase,
            int displayWidth, int displayHeight,
            @Nullable Consumer<ActivityRecord> onPostActivityCreation,
@@ -598,11 +600,17 @@ class AppCompatActivityRobot {
        if (inNewTask) {
            createNewTask();
        }
        final ComponentName componentName = ComponentName.createRelative(mAtm.mContext,
                TEST_COMPONENT_NAME);
        final WindowTestsBase.ActivityBuilder activityBuilder =
                new WindowTestsBase.ActivityBuilder(mAtm).setOnTop(true)
                        // Set the component to be that of the test class in order
                        // to enable compat changes
                .setComponent(ComponentName.createRelative(mAtm.mContext, TEST_COMPONENT_NAME));
                        .setComponent(componentName)
                        .setUseProcess(SystemServicesTestRule.addProcess(mAtm,
                                componentName.getPackageName(),
                                componentName.getPackageName() + "Proc",
                                getNextPid(), /* uid= */ 0));
        if (!mTaskStack.isEmpty()) {
            // We put the Activity in the current task if any.
            activityBuilder.setTask(mTaskStack.top());
@@ -660,4 +668,8 @@ class AppCompatActivityRobot {
        mActivityStack.push(activity);
        onPostActivityCreation(activity);
    }

    private int getNextPid() {
        return mNextPid++;
    }
}
+0 −13
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.server.wm;

import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;

import static com.android.window.flags.Flags.FLAG_ENABLE_CAMERA_COMPAT_TRACK_TASK_AND_APP_BUGFIX;

import static org.junit.Assert.assertEquals;
@@ -172,7 +170,6 @@ public class AppCompatCameraStateStrategyForTaskTests extends WindowTestsBase {
    }

    private static class AppCompatCameraStateStrategyForTaskRobotTest extends AppCompatRobotBase {
        private final WindowTestsBase mWindowTestsBase;
        private FakeAppCompatCameraStatePolicy mFakePolicyCannotCloseOnce;
        private FakeAppCompatCameraStatePolicy mFakePolicyCanClose;

@@ -180,7 +177,6 @@ public class AppCompatCameraStateStrategyForTaskTests extends WindowTestsBase {

        AppCompatCameraStateStrategyForTaskRobotTest(@NonNull WindowTestsBase windowTestsBase) {
            super(windowTestsBase);
            mWindowTestsBase = windowTestsBase;
            setupAppCompatConfiguration();
            configureActivityAndDisplay();
        }
@@ -193,15 +189,6 @@ public class AppCompatCameraStateStrategyForTaskTests extends WindowTestsBase {
            mFakePolicyCanClose = new FakeAppCompatCameraStatePolicy(false);
        }

        @Override
        void onPostActivityCreation(@NonNull ActivityRecord activity) {
            super.onPostActivityCreation(activity);

            // Adds activity to process map.
            final WindowState win = mWindowTestsBase.newWindowBuilder("app1",
                    TYPE_APPLICATION).setWindowToken(activity).build();
        }

        private void configureActivityAndDisplay() {
            applyOnActivity(a -> {
                a.createActivityWithComponentInNewTaskAndDisplay();
+0 −6
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.server.wm;

import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;

import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
@@ -171,10 +169,6 @@ public final class CameraStateMonitorTests extends WindowTestsBase {
        @Override
        void onPostActivityCreation(@NonNull ActivityRecord activity) {
            super.onPostActivityCreation(activity);

            final WindowState win = mWindowTestsBase.newWindowBuilder("app1",
                    TYPE_APPLICATION).setWindowToken(activity).build();

            setupCameraManager();
            setupHandler();
            setupMockApplicationThread();