Merge "Fix flaky tests."

This commit is contained in:
Peiyong Lin
2021-09-27 23:52:07 +00:00
committed by Android (Google) Code Review
3 changed files with 62 additions and 31 deletions

View File

@@ -852,7 +852,7 @@ public final class GameManagerService extends IGameManagerService.Stub {
* @hide
*/
@VisibleForTesting
public void updateConfigsForUser(int userId, String ...packageNames) {
void updateConfigsForUser(int userId, String ...packageNames) {
try {
synchronized (mDeviceConfigLock) {
for (final String packageName : packageNames) {

View File

@@ -37,6 +37,7 @@ android_test {
],
static_libs: [
"frameworks-base-testutils",
"services.core",
"services.devicepolicy",
"services.net",

View File

@@ -34,6 +34,7 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.test.TestLooper;
import android.platform.test.annotations.Presubmit;
import android.provider.DeviceConfig;
import android.util.ArraySet;
@@ -67,6 +68,7 @@ public class GameManagerServiceTests {
private MockitoSession mMockingSession;
private String mPackageName;
private TestLooper mTestLooper;
@Mock
private PackageManager mMockPackageManager;
@@ -132,6 +134,7 @@ public class GameManagerServiceTests {
@Before
public void setUp() throws Exception {
mTestLooper = new TestLooper();
mMockingSession = mockitoSession()
.initMocks(this)
.mockStatic(DeviceConfig.class)
@@ -161,6 +164,11 @@ public class GameManagerServiceTests {
}
}
private void startUser(GameManagerService gameManagerService, int userId) {
gameManagerService.onUserStarting(userId);
mTestLooper.dispatchAll();
}
private void mockModifyGameModeGranted() {
mMockContext.setPermission(Manifest.permission.MANAGE_GAME_MODE,
PackageManager.PERMISSION_GRANTED);
@@ -301,9 +309,10 @@ public class GameManagerServiceTests {
*/
@Test
public void testGameModeDefaultValue() {
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
mockModifyGameModeGranted();
assertEquals(GameManager.GAME_MODE_UNSUPPORTED,
@@ -315,9 +324,10 @@ public class GameManagerServiceTests {
*/
@Test
public void testDefaultValueForNonexistentUser() {
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
mockModifyGameModeGranted();
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_STANDARD, USER_ID_2);
@@ -330,8 +340,11 @@ public class GameManagerServiceTests {
*/
@Test
public void testGameMode() {
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
mockModifyGameModeGranted();
assertEquals(GameManager.GAME_MODE_UNSUPPORTED,
@@ -353,8 +366,10 @@ public class GameManagerServiceTests {
*/
@Test
public void testGetGameModeInvalidPackageName() {
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
try {
assertEquals(GameManager.GAME_MODE_UNSUPPORTED,
gameManagerService.getGameMode(PACKAGE_NAME_INVALID,
@@ -375,8 +390,9 @@ public class GameManagerServiceTests {
public void testSetGameModePermissionDenied() {
mockModifyGameModeGranted();
mockDeviceConfigAll();
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
// Update the game mode so we can read back something valid.
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_STANDARD, USER_ID_1);
@@ -408,9 +424,11 @@ public class GameManagerServiceTests {
public void testGameModeMultipleUsers() {
mockModifyGameModeGranted();
mockDeviceConfigAll();
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
gameManagerService.onUserStarting(USER_ID_2);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
startUser(gameManagerService, USER_ID_2);
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
gameManagerService.updateConfigsForUser(USER_ID_2, mPackageName);
@@ -437,8 +455,10 @@ public class GameManagerServiceTests {
}
private void checkReportedModes(int ...requiredModes) {
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
ArraySet<Integer> reportedModes = new ArraySet<>();
int[] modes = gameManagerService.getAvailableGameModes(mPackageName);
@@ -453,8 +473,10 @@ public class GameManagerServiceTests {
}
private void checkDownscaling(int gameMode, String scaling) {
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
GameManagerService.GamePackageConfiguration config =
gameManagerService.getConfig(mPackageName);
@@ -643,8 +665,10 @@ public class GameManagerServiceTests {
*/
@Test
public void testInterventionAllowAngleDefault() throws Exception {
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService = new GameManagerService(
mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
mockDeviceConfigPerformance();
mockModifyGameModeGranted();
checkAngleEnabled(gameManagerService, GameManager.GAME_MODE_PERFORMANCE, false);
@@ -655,7 +679,8 @@ public class GameManagerServiceTests {
*/
@Test
public void testInterventionAllowAngleFalse() throws Exception {
GameManagerService gameManagerService = new GameManagerService(mMockContext);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
gameManagerService.onUserStarting(USER_ID_1);
mockDeviceConfigPerformanceEnableAngle();
mockInterventionAllowAngleFalse();
@@ -672,8 +697,9 @@ public class GameManagerServiceTests {
mockDeviceConfigPerformanceEnableAngle();
mockInterventionAllowAngleTrue();
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
mockModifyGameModeGranted();
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_PERFORMANCE, USER_ID_1);
assertEquals(GameManager.GAME_MODE_PERFORMANCE,
@@ -691,8 +717,9 @@ public class GameManagerServiceTests {
mockDeviceConfigPerformance();
mockGameModeOptInPerformance();
mockModifyGameModeGranted();
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
GameManagerService.GamePackageConfiguration config =
gameManagerService.getConfig(mPackageName);
@@ -707,8 +734,9 @@ public class GameManagerServiceTests {
public void testUnsetInvalidGameMode() throws Exception {
mockDeviceConfigNone();
mockModifyGameModeGranted();
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_PERFORMANCE, USER_ID_1);
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
assertEquals(GameManager.GAME_MODE_UNSUPPORTED,
@@ -723,8 +751,9 @@ public class GameManagerServiceTests {
public void testResetInvalidGameMode() throws Exception {
mockDeviceConfigPerformance();
mockModifyGameModeGranted();
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_BATTERY, USER_ID_1);
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
assertEquals(GameManager.GAME_MODE_STANDARD,
@@ -739,8 +768,9 @@ public class GameManagerServiceTests {
public void testSetValidGameMode() throws Exception {
mockDeviceConfigPerformance();
mockModifyGameModeGranted();
GameManagerService gameManagerService = new GameManagerService(mMockContext);
gameManagerService.onUserStarting(USER_ID_1);
GameManagerService gameManagerService =
new GameManagerService(mMockContext, mTestLooper.getLooper());
startUser(gameManagerService, USER_ID_1);
gameManagerService.setGameMode(mPackageName, GameManager.GAME_MODE_UNSUPPORTED, USER_ID_1);
gameManagerService.updateConfigsForUser(USER_ID_1, mPackageName);
assertEquals(GameManager.GAME_MODE_STANDARD,