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

Commit 7d570885 authored by Felipe Leme's avatar Felipe Leme Committed by Automerger Merge Worker
Browse files

Merge "Integrated CachedAppOptimizerTest with ExtendedMockitoTestCase" into udc-dev am: 6874ae9c

parents af466350 6874ae9c
Loading
Loading
Loading
Loading
+25 −16
Original line number Original line Diff line number Diff line
@@ -17,9 +17,12 @@
package com.android.server.am;
package com.android.server.am;


import static android.app.ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE;
import static android.app.ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE;

import static com.android.server.am.ActivityManagerService.Injector;
import static com.android.server.am.ActivityManagerService.Injector;
import static com.android.server.am.CachedAppOptimizer.compactActionIntToAction;
import static com.android.server.am.CachedAppOptimizer.compactActionIntToAction;

import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.spy;


@@ -34,27 +37,30 @@ import android.os.Process;
import android.platform.test.annotations.Presubmit;
import android.platform.test.annotations.Presubmit;
import android.provider.DeviceConfig;
import android.provider.DeviceConfig;
import android.text.TextUtils;
import android.text.TextUtils;

import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.platform.app.InstrumentationRegistry;

import com.android.dx.mockito.inline.extended.StaticMockitoSessionBuilder;
import com.android.modules.utils.testing.TestableDeviceConfig;
import com.android.modules.utils.testing.TestableDeviceConfig;
import com.android.server.ExtendedMockitoTestCase;
import com.android.server.LocalServices;
import com.android.server.LocalServices;
import com.android.server.ServiceThread;
import com.android.server.ServiceThread;
import com.android.server.appop.AppOpsService;
import com.android.server.appop.AppOpsService;
import com.android.server.wm.ActivityTaskManagerService;
import com.android.server.wm.ActivityTaskManagerService;
import java.io.File;

import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.After;
import org.junit.Assume;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;

import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;


/**
/**
 * Tests for {@link CachedAppOptimizer}.
 * Tests for {@link CachedAppOptimizer}.
@@ -63,10 +69,7 @@ import org.mockito.junit.MockitoJUnitRunner;
 * atest FrameworksMockingServicesTests:CachedAppOptimizerTest
 * atest FrameworksMockingServicesTests:CachedAppOptimizerTest
 */
 */
@Presubmit
@Presubmit
@RunWith(MockitoJUnitRunner.class)
public final class CachedAppOptimizerTest extends ExtendedMockitoTestCase {
@Ignore("TODO(b/226641572): this test is broken and it cannot use ExtendedMockitoTestCase as it "
        + "uses TestableDeviceConfigRule, which creates its own mockito session")
public final class CachedAppOptimizerTest {


    private ServiceThread mThread;
    private ServiceThread mThread;


@@ -84,16 +87,21 @@ public final class CachedAppOptimizerTest {
    @Mock
    @Mock
    private PackageManagerInternal mPackageManagerInt;
    private PackageManagerInternal mPackageManagerInt;


    @Rule
    private final TestableDeviceConfig mDeviceConfig = new TestableDeviceConfig();
    public final TestableDeviceConfig.TestableDeviceConfigRule

            mDeviceConfigRule = new TestableDeviceConfig.TestableDeviceConfigRule();
    @Rule
    @Rule
    public final ApplicationExitInfoTest.ServiceThreadRule
    public final ApplicationExitInfoTest.ServiceThreadRule
            mServiceThreadRule = new ApplicationExitInfoTest.ServiceThreadRule();
            mServiceThreadRule = new ApplicationExitInfoTest.ServiceThreadRule();


    @Override
    protected void initializeSession(StaticMockitoSessionBuilder builder) {
        mDeviceConfig.setUpMockedClasses(builder);
    }

    @Before
    @Before
    public void setUp() {
    public void setUp() {
        System.loadLibrary("mockingservicestestjni");
        System.loadLibrary("mockingservicestestjni");
        mDeviceConfig.setUpMockBehaviors();
        mHandlerThread = new HandlerThread("");
        mHandlerThread = new HandlerThread("");
        mHandlerThread.start();
        mHandlerThread.start();
        mHandler = new Handler(mHandlerThread.getLooper());
        mHandler = new Handler(mHandlerThread.getLooper());
@@ -124,6 +132,7 @@ public final class CachedAppOptimizerTest {
        mHandlerThread.quit();
        mHandlerThread.quit();
        mThread.quit();
        mThread.quit();
        mCountDown = null;
        mCountDown = null;
        mDeviceConfig.tearDown();
    }
    }


    private ProcessRecord makeProcessRecord(int pid, int uid, int packageUid, String processName,
    private ProcessRecord makeProcessRecord(int pid, int uid, int packageUid, String processName,