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

Commit 99357744 authored by lucaslin's avatar lucaslin
Browse files

Add test for getStartUser(), getEndUser() and createForUser()

- Follow-up commit will modify getStartUser() and getEndUser(),
to make sure the result is consistent, add test before changing
getStartUser() and getEndUser().
- Add a test for createForUser() to ensure the last uid of
the previous user is smaller than the first uid of the next user.
- Move this test file to tests/net/common, so that it can be run
in CTS.

Bug: 170598012
Test: atest FrameworksNetTests:UidRangeTest
      CtsNetTestCasesLatestSdk:UidRangeTest
      Also run above tests on Q and R devices.
Change-Id: I8b146aa14b50911e50a39f266e8d8dc17df853b2
parent fcfec6bf
Loading
Loading
Loading
Loading
+113 −0
Original line number Diff line number Diff line
@@ -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;

@@ -33,6 +47,9 @@ public class UidRangeTest {
     * UidRangeParcel objects.
     */

    @Rule
    public final DevSdkIgnoreRule mIgnoreRule = new DevSdkIgnoreRule();

    @Test
    public void testSingleItemUidRangeAllowed() {
        new UidRange(123, 123);
@@ -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());
    }
}