Loading core/java/android/net/UidRange.java +2 −2 Original line number Diff line number Diff line Loading @@ -52,12 +52,12 @@ public final class UidRange implements Parcelable { /** Returns the smallest user Id which is contained in this UidRange */ public int getStartUser() { return start / PER_USER_RANGE; return UserHandle.getUserHandleForUid(start).getIdentifier(); } /** Returns the largest user Id which is contained in this UidRange */ public int getEndUser() { return stop / PER_USER_RANGE; return UserHandle.getUserHandleForUid(stop).getIdentifier(); } public boolean contains(int uid) { Loading tests/net/java/android/net/UidRangeTest.java→tests/net/common/java/android/net/UidRangeTest.java +113 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,25 @@ package android.net; import static android.os.UserHandle.MIN_SECONDARY_USER_ID; import static android.os.UserHandle.SYSTEM; import static android.os.UserHandle.USER_SYSTEM; import static android.os.UserHandle.getUid; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import android.os.Build; import android.os.UserHandle; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.testutils.DevSdkIgnoreRule; import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -33,6 +47,9 @@ public class UidRangeTest { * UidRangeParcel objects. */ @Rule public final DevSdkIgnoreRule mIgnoreRule = new DevSdkIgnoreRule(); @Test public void testSingleItemUidRangeAllowed() { new UidRange(123, 123); Loading Loading @@ -64,4 +81,33 @@ public class UidRangeTest { } catch (IllegalArgumentException expected) { } } @Test public void testGetStartAndEndUser() throws Exception { final UidRange uidRangeOfPrimaryUser = new UidRange( getUid(USER_SYSTEM, 10000), getUid(USER_SYSTEM, 10100)); final UidRange uidRangeOfSecondaryUser = new UidRange( getUid(MIN_SECONDARY_USER_ID, 10000), getUid(MIN_SECONDARY_USER_ID, 10100)); assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getStartUser()); assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getEndUser()); assertEquals(MIN_SECONDARY_USER_ID, uidRangeOfSecondaryUser.getStartUser()); assertEquals(MIN_SECONDARY_USER_ID, uidRangeOfSecondaryUser.getEndUser()); final UidRange uidRangeForDifferentUsers = new UidRange( getUid(USER_SYSTEM, 10000), getUid(MIN_SECONDARY_USER_ID, 10100)); assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getStartUser()); assertEquals(MIN_SECONDARY_USER_ID, uidRangeOfSecondaryUser.getEndUser()); } @Test @IgnoreUpTo(Build.VERSION_CODES.R) public void testCreateForUser() throws Exception { final UidRange uidRangeOfPrimaryUser = UidRange.createForUser(SYSTEM); final UidRange uidRangeOfSecondaryUser = UidRange.createForUser( UserHandle.of(USER_SYSTEM + 1)); assertTrue(uidRangeOfPrimaryUser.stop < uidRangeOfSecondaryUser.start); assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getStartUser()); assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getEndUser()); assertEquals(USER_SYSTEM + 1, uidRangeOfSecondaryUser.getStartUser()); assertEquals(USER_SYSTEM + 1, uidRangeOfSecondaryUser.getEndUser()); } } Loading
core/java/android/net/UidRange.java +2 −2 Original line number Diff line number Diff line Loading @@ -52,12 +52,12 @@ public final class UidRange implements Parcelable { /** Returns the smallest user Id which is contained in this UidRange */ public int getStartUser() { return start / PER_USER_RANGE; return UserHandle.getUserHandleForUid(start).getIdentifier(); } /** Returns the largest user Id which is contained in this UidRange */ public int getEndUser() { return stop / PER_USER_RANGE; return UserHandle.getUserHandleForUid(stop).getIdentifier(); } public boolean contains(int uid) { Loading
tests/net/java/android/net/UidRangeTest.java→tests/net/common/java/android/net/UidRangeTest.java +113 −0 Original line number Diff line number Diff line Loading @@ -16,11 +16,25 @@ package android.net; import static android.os.UserHandle.MIN_SECONDARY_USER_ID; import static android.os.UserHandle.SYSTEM; import static android.os.UserHandle.USER_SYSTEM; import static android.os.UserHandle.getUid; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import android.os.Build; import android.os.UserHandle; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.testutils.DevSdkIgnoreRule; import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -33,6 +47,9 @@ public class UidRangeTest { * UidRangeParcel objects. */ @Rule public final DevSdkIgnoreRule mIgnoreRule = new DevSdkIgnoreRule(); @Test public void testSingleItemUidRangeAllowed() { new UidRange(123, 123); Loading Loading @@ -64,4 +81,33 @@ public class UidRangeTest { } catch (IllegalArgumentException expected) { } } @Test public void testGetStartAndEndUser() throws Exception { final UidRange uidRangeOfPrimaryUser = new UidRange( getUid(USER_SYSTEM, 10000), getUid(USER_SYSTEM, 10100)); final UidRange uidRangeOfSecondaryUser = new UidRange( getUid(MIN_SECONDARY_USER_ID, 10000), getUid(MIN_SECONDARY_USER_ID, 10100)); assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getStartUser()); assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getEndUser()); assertEquals(MIN_SECONDARY_USER_ID, uidRangeOfSecondaryUser.getStartUser()); assertEquals(MIN_SECONDARY_USER_ID, uidRangeOfSecondaryUser.getEndUser()); final UidRange uidRangeForDifferentUsers = new UidRange( getUid(USER_SYSTEM, 10000), getUid(MIN_SECONDARY_USER_ID, 10100)); assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getStartUser()); assertEquals(MIN_SECONDARY_USER_ID, uidRangeOfSecondaryUser.getEndUser()); } @Test @IgnoreUpTo(Build.VERSION_CODES.R) public void testCreateForUser() throws Exception { final UidRange uidRangeOfPrimaryUser = UidRange.createForUser(SYSTEM); final UidRange uidRangeOfSecondaryUser = UidRange.createForUser( UserHandle.of(USER_SYSTEM + 1)); assertTrue(uidRangeOfPrimaryUser.stop < uidRangeOfSecondaryUser.start); assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getStartUser()); assertEquals(USER_SYSTEM, uidRangeOfPrimaryUser.getEndUser()); assertEquals(USER_SYSTEM + 1, uidRangeOfSecondaryUser.getStartUser()); assertEquals(USER_SYSTEM + 1, uidRangeOfSecondaryUser.getEndUser()); } }