Loading services/java/com/android/server/HsumBootUserInitializer.java +28 −20 Original line number Diff line number Diff line Loading @@ -157,30 +157,35 @@ final class HsumBootUserInitializer { } if (mShouldAlwaysHaveMainUser) { t.traceBegin("createMainUserIfNeeded"); createMainUserIfNeeded(); t.traceEnd(); createMainUserIfNeeded(t); return; } if (mShouldCreateInitialUser) { t.traceBegin("createAdminUserIfNeeded"); createAdminUserIfNeeded(); t.traceEnd(); createAdminUserIfNeeded(t); return; } Slogf.d(TAG, "Not checking if initial user exists (should be handled externally)"); } private void createMainUserIfNeeded() { final int mainUser = mUmi.getMainUserId(); if (mainUser != UserHandle.USER_NULL) { Slogf.d(TAG, "Found existing MainUser, userId=%d", mainUser); private void createMainUserIfNeeded(TimingsTraceAndSlog t) { // Always tracing as it used to be done by the caller t.traceBegin("createMainUserIfNeeded"); try { int mainUserId = mUmi.getMainUserId(); if (mainUserId != UserHandle.USER_NULL) { Slogf.d(TAG, "createMainUserIfNeeded(): found MainUser (userId=%d)", mainUserId); return; } createInitialUser(/* isMainUser= */ true); } finally { t.traceEnd(); } } private void createAdminUserIfNeeded() { private void createAdminUserIfNeeded(TimingsTraceAndSlog t) { t.traceBegin("createAdminUserIfNeeded"); try { int[] userIds = mUmi.getUserIds(); if (userIds != null && userIds.length > 1) { if (DEBUG) { Loading @@ -190,6 +195,9 @@ final class HsumBootUserInitializer { return; } createInitialUser(/* isMainUser= */ false); } finally { t.traceEnd(); } } private void createInitialUser(boolean isMainUser) { Loading services/tests/mockingservicestests/src/com/android/server/HsumBootUserInitializerTest.java +14 −17 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import static android.os.UserHandle.USER_SYSTEM; import static com.android.server.HsumBootUserInitializerTest.ExpectedResult.ADMIN_USER_CREATED; import static com.android.server.HsumBootUserInitializerTest.ExpectedResult.MAIN_USER_CREATED; import static com.android.server.HsumBootUserInitializerTest.ExpectedResult.NO_USER_CREATED; import static com.android.server.HsumBootUserInitializerTest.InitialUsers.SYSTEM_AND_MAIN; import static com.android.server.HsumBootUserInitializerTest.InitialUsers.SYSTEM_AND_NON_MAIN; import static com.android.server.HsumBootUserInitializerTest.InitialUsers.SYSTEM_ONLY; Loading Loading @@ -106,8 +105,9 @@ public final class HsumBootUserInitializerTest { private final InitialUsers mInitialUsers; private final ExpectedResult mExpectedResult; /** Useless javadoc to make checkstyle happy... */ @Parameters(name = "{index}: hasMain={0},createInitial={1},initial={2},result={3}") public static Collection<Object[]> data() { public static Collection<Object[]> junitParametersPassedToConstructor() { return Arrays.asList(new Object[][] { // shouldAlwaysHaveMainUser false, shouldCreateInitialUser false { false, false, SYSTEM_ONLY, NO_USER_CREATED }, Loading Loading @@ -184,17 +184,19 @@ public final class HsumBootUserInitializerTest { @Test @EnableFlags(FLAG_CREATE_INITIAL_USER) public void testFlagEnabled() { var initializer = createHsumBootUserInitializer(mShouldAlwaysHaveMainUser, mShouldCreateInitialUser); var initializer = createHsumBootUserInitializer(mShouldAlwaysHaveMainUser, mShouldCreateInitialUser); initializer.init(mTracer); switch (mExpectedResult) { case ADMIN_USER_CREATED: expectAdminUserCreated(); expectSetBootUserId(NON_SYSTEM_USER_ID); break; case MAIN_USER_CREATED: expectMainUserCreated(); expectSetBootUserId(MAIN_USER_ID); break; case NO_USER_CREATED: expectNoUserCreated(); Loading @@ -219,15 +221,10 @@ public final class HsumBootUserInitializerTest { break; case MAIN_USER_CREATED: expectMainUserCreated(); break; } } private HsumBootUserInitializer createHsumBootUserInitializer( boolean shouldAlwaysHaveMainUser) { return createHsumBootUserInitializer(shouldAlwaysHaveMainUser, /* shouldCreateInitialUser= */ false); } private HsumBootUserInitializer createHsumBootUserInitializer( boolean shouldAlwaysHaveMainUser, boolean shouldCreateInitialUser) { mTracer = new TimingsTraceAndSlog(TAG); Loading Loading @@ -310,13 +307,13 @@ public final class HsumBootUserInitializerTest { // NOTE: enums below must be public to be static imported public static enum InitialUsers { public enum InitialUsers { SYSTEM_ONLY, SYSTEM_AND_MAIN, SYSTEM_AND_NON_MAIN } public static enum ExpectedResult { public enum ExpectedResult { NO_USER_CREATED, MAIN_USER_CREATED, ADMIN_USER_CREATED Loading Loading
services/java/com/android/server/HsumBootUserInitializer.java +28 −20 Original line number Diff line number Diff line Loading @@ -157,30 +157,35 @@ final class HsumBootUserInitializer { } if (mShouldAlwaysHaveMainUser) { t.traceBegin("createMainUserIfNeeded"); createMainUserIfNeeded(); t.traceEnd(); createMainUserIfNeeded(t); return; } if (mShouldCreateInitialUser) { t.traceBegin("createAdminUserIfNeeded"); createAdminUserIfNeeded(); t.traceEnd(); createAdminUserIfNeeded(t); return; } Slogf.d(TAG, "Not checking if initial user exists (should be handled externally)"); } private void createMainUserIfNeeded() { final int mainUser = mUmi.getMainUserId(); if (mainUser != UserHandle.USER_NULL) { Slogf.d(TAG, "Found existing MainUser, userId=%d", mainUser); private void createMainUserIfNeeded(TimingsTraceAndSlog t) { // Always tracing as it used to be done by the caller t.traceBegin("createMainUserIfNeeded"); try { int mainUserId = mUmi.getMainUserId(); if (mainUserId != UserHandle.USER_NULL) { Slogf.d(TAG, "createMainUserIfNeeded(): found MainUser (userId=%d)", mainUserId); return; } createInitialUser(/* isMainUser= */ true); } finally { t.traceEnd(); } } private void createAdminUserIfNeeded() { private void createAdminUserIfNeeded(TimingsTraceAndSlog t) { t.traceBegin("createAdminUserIfNeeded"); try { int[] userIds = mUmi.getUserIds(); if (userIds != null && userIds.length > 1) { if (DEBUG) { Loading @@ -190,6 +195,9 @@ final class HsumBootUserInitializer { return; } createInitialUser(/* isMainUser= */ false); } finally { t.traceEnd(); } } private void createInitialUser(boolean isMainUser) { Loading
services/tests/mockingservicestests/src/com/android/server/HsumBootUserInitializerTest.java +14 −17 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import static android.os.UserHandle.USER_SYSTEM; import static com.android.server.HsumBootUserInitializerTest.ExpectedResult.ADMIN_USER_CREATED; import static com.android.server.HsumBootUserInitializerTest.ExpectedResult.MAIN_USER_CREATED; import static com.android.server.HsumBootUserInitializerTest.ExpectedResult.NO_USER_CREATED; import static com.android.server.HsumBootUserInitializerTest.InitialUsers.SYSTEM_AND_MAIN; import static com.android.server.HsumBootUserInitializerTest.InitialUsers.SYSTEM_AND_NON_MAIN; import static com.android.server.HsumBootUserInitializerTest.InitialUsers.SYSTEM_ONLY; Loading Loading @@ -106,8 +105,9 @@ public final class HsumBootUserInitializerTest { private final InitialUsers mInitialUsers; private final ExpectedResult mExpectedResult; /** Useless javadoc to make checkstyle happy... */ @Parameters(name = "{index}: hasMain={0},createInitial={1},initial={2},result={3}") public static Collection<Object[]> data() { public static Collection<Object[]> junitParametersPassedToConstructor() { return Arrays.asList(new Object[][] { // shouldAlwaysHaveMainUser false, shouldCreateInitialUser false { false, false, SYSTEM_ONLY, NO_USER_CREATED }, Loading Loading @@ -184,17 +184,19 @@ public final class HsumBootUserInitializerTest { @Test @EnableFlags(FLAG_CREATE_INITIAL_USER) public void testFlagEnabled() { var initializer = createHsumBootUserInitializer(mShouldAlwaysHaveMainUser, mShouldCreateInitialUser); var initializer = createHsumBootUserInitializer(mShouldAlwaysHaveMainUser, mShouldCreateInitialUser); initializer.init(mTracer); switch (mExpectedResult) { case ADMIN_USER_CREATED: expectAdminUserCreated(); expectSetBootUserId(NON_SYSTEM_USER_ID); break; case MAIN_USER_CREATED: expectMainUserCreated(); expectSetBootUserId(MAIN_USER_ID); break; case NO_USER_CREATED: expectNoUserCreated(); Loading @@ -219,15 +221,10 @@ public final class HsumBootUserInitializerTest { break; case MAIN_USER_CREATED: expectMainUserCreated(); break; } } private HsumBootUserInitializer createHsumBootUserInitializer( boolean shouldAlwaysHaveMainUser) { return createHsumBootUserInitializer(shouldAlwaysHaveMainUser, /* shouldCreateInitialUser= */ false); } private HsumBootUserInitializer createHsumBootUserInitializer( boolean shouldAlwaysHaveMainUser, boolean shouldCreateInitialUser) { mTracer = new TimingsTraceAndSlog(TAG); Loading Loading @@ -310,13 +307,13 @@ public final class HsumBootUserInitializerTest { // NOTE: enums below must be public to be static imported public static enum InitialUsers { public enum InitialUsers { SYSTEM_ONLY, SYSTEM_AND_MAIN, SYSTEM_AND_NON_MAIN } public static enum ExpectedResult { public enum ExpectedResult { NO_USER_CREATED, MAIN_USER_CREATED, ADMIN_USER_CREATED Loading