diff options
Diffstat (limited to 'tests/common/java/android/net/UidRangeTest.java')
| -rw-r--r-- | tests/common/java/android/net/UidRangeTest.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/common/java/android/net/UidRangeTest.java b/tests/common/java/android/net/UidRangeTest.java index 1b1c95431d..a43511994f 100644 --- a/tests/common/java/android/net/UidRangeTest.java +++ b/tests/common/java/android/net/UidRangeTest.java @@ -22,11 +22,15 @@ import static android.os.UserHandle.USER_SYSTEM; import static android.os.UserHandle.getUid; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.os.Build; import android.os.UserHandle; +import android.util.ArraySet; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; @@ -38,6 +42,8 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.Set; + @RunWith(AndroidJUnit4.class) @SmallTest public class UidRangeTest { @@ -110,4 +116,61 @@ public class UidRangeTest { assertEquals(USER_SYSTEM + 1, uidRangeOfSecondaryUser.getStartUser()); assertEquals(USER_SYSTEM + 1, uidRangeOfSecondaryUser.getEndUser()); } + + private static void assertSameUids(@NonNull final String msg, @Nullable final Set<UidRange> s1, + @Nullable final Set<UidRange> s2) { + assertTrue(msg + " : " + s1 + " unexpectedly different from " + s2, + UidRange.hasSameUids(s1, s2)); + } + + private static void assertDifferentUids(@NonNull final String msg, + @Nullable final Set<UidRange> s1, @Nullable final Set<UidRange> s2) { + assertFalse(msg + " : " + s1 + " unexpectedly equal to " + s2, + UidRange.hasSameUids(s1, s2)); + } + + // R doesn't have UidRange.hasSameUids, but since S has the module, it does have hasSameUids. + @Test @IgnoreUpTo(Build.VERSION_CODES.R) + public void testHasSameUids() { + final UidRange uids1 = new UidRange(1, 100); + final UidRange uids2 = new UidRange(3, 300); + final UidRange uids3 = new UidRange(1, 1000); + final UidRange uids4 = new UidRange(800, 1000); + + assertSameUids("null <=> null", null, null); + final Set<UidRange> set1 = new ArraySet<>(); + assertDifferentUids("empty <=> null", set1, null); + final Set<UidRange> set2 = new ArraySet<>(); + set1.add(uids1); + assertDifferentUids("uids1 <=> null", set1, null); + assertDifferentUids("null <=> uids1", null, set1); + assertDifferentUids("uids1 <=> empty", set1, set2); + set2.add(uids1); + assertSameUids("uids1 <=> uids1", set1, set2); + set1.add(uids2); + assertDifferentUids("uids1,2 <=> uids1", set1, set2); + set1.add(uids3); + assertDifferentUids("uids1,2,3 <=> uids1", set1, set2); + set2.add(uids3); + assertDifferentUids("uids1,2,3 <=> uids1,3", set1, set2); + set2.add(uids2); + assertSameUids("uids1,2,3 <=> uids1,2,3", set1, set2); + set1.remove(uids2); + assertDifferentUids("uids1,3 <=> uids1,2,3", set1, set2); + set1.add(uids4); + assertDifferentUids("uids1,3,4 <=> uids1,2,3", set1, set2); + set2.add(uids4); + assertDifferentUids("uids1,3,4 <=> uids1,2,3,4", set1, set2); + assertDifferentUids("uids1,3,4 <=> null", set1, null); + set2.remove(uids2); + assertSameUids("uids1,3,4 <=> uids1,3,4", set1, set2); + set2.remove(uids1); + assertDifferentUids("uids1,3,4 <=> uids3,4", set1, set2); + set2.remove(uids3); + assertDifferentUids("uids1,3,4 <=> uids4", set1, set2); + set2.remove(uids4); + assertDifferentUids("uids1,3,4 <=> empty", set1, set2); + assertDifferentUids("null <=> empty", null, set2); + assertSameUids("empty <=> empty", set2, new ArraySet<>()); + } } |
