Merge "Fix ActivityManagerServiceTest and OomAdjustTests." into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
470e4ac962
@@ -45,6 +45,8 @@ import static org.junit.Assert.assertNotNull;
|
|||||||
import static org.junit.Assert.assertNull;
|
import static org.junit.Assert.assertNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
|
import static org.mockito.Mockito.doReturn;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||||
import static org.mockito.Mockito.verifyZeroInteractions;
|
import static org.mockito.Mockito.verifyZeroInteractions;
|
||||||
@@ -54,9 +56,11 @@ import android.app.ActivityManager;
|
|||||||
import android.app.AppOpsManager;
|
import android.app.AppOpsManager;
|
||||||
import android.app.IApplicationThread;
|
import android.app.IApplicationThread;
|
||||||
import android.app.IUidObserver;
|
import android.app.IUidObserver;
|
||||||
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.pm.PackageManagerInternal;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.HandlerThread;
|
import android.os.HandlerThread;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
@@ -70,6 +74,7 @@ import androidx.test.filters.FlakyTest;
|
|||||||
import androidx.test.filters.MediumTest;
|
import androidx.test.filters.MediumTest;
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.server.LocalServices;
|
||||||
import com.android.server.am.ProcessList.IsolatedUidRange;
|
import com.android.server.am.ProcessList.IsolatedUidRange;
|
||||||
import com.android.server.am.ProcessList.IsolatedUidRangeAllocator;
|
import com.android.server.am.ProcessList.IsolatedUidRangeAllocator;
|
||||||
import com.android.server.appop.AppOpsService;
|
import com.android.server.appop.AppOpsService;
|
||||||
@@ -77,6 +82,7 @@ import com.android.server.wm.ActivityTaskManagerService;
|
|||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
@@ -115,6 +121,18 @@ public class ActivityManagerServiceTest {
|
|||||||
UidRecord.CHANGE_ACTIVE
|
UidRecord.CHANGE_ACTIVE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private static PackageManagerInternal sPackageManagerInternal;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void setUpOnce() {
|
||||||
|
sPackageManagerInternal = mock(PackageManagerInternal.class);
|
||||||
|
doReturn(new ComponentName("", "")).when(sPackageManagerInternal)
|
||||||
|
.getSystemUiServiceComponent();
|
||||||
|
// Remove stale instance of PackageManagerInternal if there is any
|
||||||
|
LocalServices.removeServiceForTest(PackageManagerInternal.class);
|
||||||
|
LocalServices.addService(PackageManagerInternal.class, sPackageManagerInternal);
|
||||||
|
}
|
||||||
|
|
||||||
@Rule public ServiceThreadRule mServiceThreadRule = new ServiceThreadRule();
|
@Rule public ServiceThreadRule mServiceThreadRule = new ServiceThreadRule();
|
||||||
|
|
||||||
private Context mContext = getInstrumentation().getTargetContext();
|
private Context mContext = getInstrumentation().getTargetContext();
|
||||||
@@ -258,8 +276,11 @@ public class ActivityManagerServiceTest {
|
|||||||
uidRec.hasInternetPermission = true;
|
uidRec.hasInternetPermission = true;
|
||||||
mAms.mProcessList.mActiveUids.put(uid, uidRec);
|
mAms.mProcessList.mActiveUids.put(uid, uidRec);
|
||||||
|
|
||||||
final ProcessRecord appRec = new ProcessRecord(mAms, new ApplicationInfo(), TAG, uid);
|
ApplicationInfo info = new ApplicationInfo();
|
||||||
appRec.thread = Mockito.mock(IApplicationThread.class);
|
info.packageName = "";
|
||||||
|
|
||||||
|
final ProcessRecord appRec = new ProcessRecord(mAms, info, TAG, uid);
|
||||||
|
appRec.thread = mock(IApplicationThread.class);
|
||||||
mAms.mProcessList.mLruProcesses.add(appRec);
|
mAms.mProcessList.mLruProcesses.add(appRec);
|
||||||
|
|
||||||
return uidRec;
|
return uidRec;
|
||||||
@@ -497,7 +518,7 @@ public class ActivityManagerServiceTest {
|
|||||||
};
|
};
|
||||||
final IUidObserver[] observers = new IUidObserver.Stub[changesToObserve.length];
|
final IUidObserver[] observers = new IUidObserver.Stub[changesToObserve.length];
|
||||||
for (int i = 0; i < observers.length; ++i) {
|
for (int i = 0; i < observers.length; ++i) {
|
||||||
observers[i] = Mockito.mock(IUidObserver.Stub.class);
|
observers[i] = mock(IUidObserver.Stub.class);
|
||||||
when(observers[i].asBinder()).thenReturn((IBinder) observers[i]);
|
when(observers[i].asBinder()).thenReturn((IBinder) observers[i]);
|
||||||
mAms.registerUidObserver(observers[i], changesToObserve[i] /* which */,
|
mAms.registerUidObserver(observers[i], changesToObserve[i] /* which */,
|
||||||
ActivityManager.PROCESS_STATE_UNKNOWN /* cutpoint */, null /* caller */);
|
ActivityManager.PROCESS_STATE_UNKNOWN /* cutpoint */, null /* caller */);
|
||||||
@@ -610,7 +631,7 @@ public class ActivityManagerServiceTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testDispatchUidChanges_procStateCutpoint() throws RemoteException {
|
public void testDispatchUidChanges_procStateCutpoint() throws RemoteException {
|
||||||
final IUidObserver observer = Mockito.mock(IUidObserver.Stub.class);
|
final IUidObserver observer = mock(IUidObserver.Stub.class);
|
||||||
|
|
||||||
when(observer.asBinder()).thenReturn((IBinder) observer);
|
when(observer.asBinder()).thenReturn((IBinder) observer);
|
||||||
mAms.registerUidObserver(observer, ActivityManager.UID_OBSERVER_PROCSTATE /* which */,
|
mAms.registerUidObserver(observer, ActivityManager.UID_OBSERVER_PROCSTATE /* which */,
|
||||||
@@ -704,7 +725,7 @@ public class ActivityManagerServiceTest {
|
|||||||
assertEquals("No observers registered, so validateUids should be empty",
|
assertEquals("No observers registered, so validateUids should be empty",
|
||||||
0, mAms.mValidateUids.size());
|
0, mAms.mValidateUids.size());
|
||||||
|
|
||||||
final IUidObserver observer = Mockito.mock(IUidObserver.Stub.class);
|
final IUidObserver observer = mock(IUidObserver.Stub.class);
|
||||||
when(observer.asBinder()).thenReturn((IBinder) observer);
|
when(observer.asBinder()).thenReturn((IBinder) observer);
|
||||||
mAms.registerUidObserver(observer, 0, 0, null);
|
mAms.registerUidObserver(observer, 0, 0, null);
|
||||||
// Verify that when observers are registered, then validateUids is correctly updated.
|
// Verify that when observers are registered, then validateUids is correctly updated.
|
||||||
|
|||||||
@@ -22,12 +22,15 @@ import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentat
|
|||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
|
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.usage.UsageStatsManagerInternal;
|
import android.app.usage.UsageStatsManagerInternal;
|
||||||
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.pm.PackageManagerInternal;
|
||||||
|
|
||||||
import com.android.server.LocalServices;
|
import com.android.server.LocalServices;
|
||||||
import com.android.server.wm.ActivityTaskManagerService;
|
import com.android.server.wm.ActivityTaskManagerService;
|
||||||
@@ -45,6 +48,7 @@ import org.junit.Test;
|
|||||||
public class OomAdjusterTests {
|
public class OomAdjusterTests {
|
||||||
private static Context sContext;
|
private static Context sContext;
|
||||||
private static ActivityManagerService sService;
|
private static ActivityManagerService sService;
|
||||||
|
private static PackageManagerInternal sPackageManagerInternal;
|
||||||
|
|
||||||
private ProcessRecord mProcessRecord;
|
private ProcessRecord mProcessRecord;
|
||||||
|
|
||||||
@@ -56,6 +60,13 @@ public class OomAdjusterTests {
|
|||||||
public static void setUpOnce() {
|
public static void setUpOnce() {
|
||||||
sContext = getInstrumentation().getTargetContext();
|
sContext = getInstrumentation().getTargetContext();
|
||||||
|
|
||||||
|
sPackageManagerInternal = mock(PackageManagerInternal.class);
|
||||||
|
doReturn(new ComponentName("", "")).when(sPackageManagerInternal)
|
||||||
|
.getSystemUiServiceComponent();
|
||||||
|
// Remove stale instance of PackageManagerInternal if there is any
|
||||||
|
LocalServices.removeServiceForTest(PackageManagerInternal.class);
|
||||||
|
LocalServices.addService(PackageManagerInternal.class, sPackageManagerInternal);
|
||||||
|
|
||||||
// We need to run with dexmaker share class loader to make use of
|
// We need to run with dexmaker share class loader to make use of
|
||||||
// ActivityTaskManagerService from wm package.
|
// ActivityTaskManagerService from wm package.
|
||||||
runWithDexmakerShareClassLoader(() -> {
|
runWithDexmakerShareClassLoader(() -> {
|
||||||
|
|||||||
Reference in New Issue
Block a user