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

Commit 45315bc3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Attempt to reduce flakiness of ActivityThreadTest"

parents 1edcf172 9b773c7a
Loading
Loading
Loading
Loading
+36 −6
Original line number Diff line number Diff line
@@ -51,6 +51,8 @@ import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Rect;
import android.hardware.display.DisplayManager;
import android.hardware.display.VirtualDisplay;
import android.os.Bundle;
import android.os.IBinder;
import android.platform.test.annotations.Presubmit;
import android.util.DisplayMetrics;
@@ -66,6 +68,7 @@ import androidx.test.runner.AndroidJUnit4;

import com.android.internal.content.ReferrerIntent;

import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;

@@ -95,6 +98,16 @@ public class ActivityThreadTest {
            new ActivityTestRule<>(TestActivity.class, true /* initialTouchMode */,
                    false /* launchActivity */);

    private ArrayList<VirtualDisplay> mCreatedVirtualDisplays;

    @After
    public void tearDown() {
        if (mCreatedVirtualDisplays != null) {
            mCreatedVirtualDisplays.forEach(VirtualDisplay::release);
            mCreatedVirtualDisplays = null;
        }
    }

    @Test
    public void testDoubleRelaunch() throws Exception {
        final Activity activity = mActivityTestRule.launchActivity(new Intent());
@@ -410,7 +423,6 @@ public class ActivityThreadTest {
            Context appContext = activity.getApplication();
            Configuration originalAppConfig =
                    new Configuration(appContext.getResources().getConfiguration());
            DisplayManager dm = appContext.getSystemService(DisplayManager.class);

            int virtualDisplayWidth;
            int virtualDisplayHeight;
@@ -421,8 +433,8 @@ public class ActivityThreadTest {
                virtualDisplayWidth = 200;
                virtualDisplayHeight = 100;
            }
            Display virtualDisplay = dm.createVirtualDisplay("virtual-display",
                    virtualDisplayWidth, virtualDisplayHeight, 200, null, 0).getDisplay();
            final Display virtualDisplay = createVirtualDisplay(appContext,
                    virtualDisplayWidth, virtualDisplayHeight);
            Context virtualDisplayContext = appContext.createDisplayContext(virtualDisplay);
            int originalVirtualDisplayOrientation = virtualDisplayContext.getResources()
                    .getConfiguration().orientation;
@@ -467,7 +479,6 @@ public class ActivityThreadTest {
        InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
            Configuration originalActivityConfig =
                    new Configuration(activity.getResources().getConfiguration());
            DisplayManager dm = activity.getSystemService(DisplayManager.class);

            int virtualDisplayWidth;
            int virtualDisplayHeight;
@@ -478,8 +489,8 @@ public class ActivityThreadTest {
                virtualDisplayWidth = 200;
                virtualDisplayHeight = 100;
            }
            Display virtualDisplay = dm.createVirtualDisplay("virtual-display",
                    virtualDisplayWidth, virtualDisplayHeight, 200, null, 0).getDisplay();
            final Display virtualDisplay = createVirtualDisplay(activity,
                    virtualDisplayWidth, virtualDisplayHeight);
            Context virtualDisplayContext = activity.createDisplayContext(virtualDisplay);
            int originalVirtualDisplayOrientation = virtualDisplayContext.getResources()
                    .getConfiguration().orientation;
@@ -704,6 +715,17 @@ public class ActivityThreadTest {
        return config.seq;
    }

    private Display createVirtualDisplay(Context context, int w, int h) {
        final DisplayManager dm = context.getSystemService(DisplayManager.class);
        final VirtualDisplay virtualDisplay = dm.createVirtualDisplay("virtual-display", w, h,
                200 /* densityDpi */, null /* surface */, 0 /* flags */);
        if (mCreatedVirtualDisplays == null) {
            mCreatedVirtualDisplays = new ArrayList<>();
        }
        mCreatedVirtualDisplays.add(virtualDisplay);
        return virtualDisplay.getDisplay();
    }

    private static ActivityClientRecord getActivityClientRecord(Activity activity) {
        final ActivityThread thread = activity.getActivityThread();
        final IBinder token = activity.getActivityToken();
@@ -795,6 +817,14 @@ public class ActivityThreadTest {
         */
        volatile CountDownLatch mConfigLatch;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            getWindow().getDecorView().setKeepScreenOn(true);
            setShowWhenLocked(true);
            setTurnScreenOn(true);
        }

        @Override
        public void onConfigurationChanged(Configuration config) {
            super.onConfigurationChanged(config);