From 890f021f5abc279d24810ee0ee23dfeb9d22931c Mon Sep 17 00:00:00 2001 From: Automerger Merge Worker Date: Mon, 9 Mar 2020 05:22:31 +0000 Subject: [PATCH] Skip LinkAddress tests that are R-specific on Q Address lifetime was added in R so tests for it should not be run on Q. Test: CtsNetTestCasesLatestSdk:android.net.LinkAddressTest on both devices Bug: 150918852 Merged-In: I98b14727eabcf569829eee8df34afc057eba6f93 (cherry picked from commit 4e00259d220590acf781382de0542cbae75ec16f) Change-Id: I9599afa8ae64bb13c93d5f26ebedf3f8dedff6d9 --- .../java/android/net/LinkAddressTest.java | 46 +++++++++++++++---- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/tests/net/common/java/android/net/LinkAddressTest.java b/tests/net/common/java/android/net/LinkAddressTest.java index 06c6301d66..99dac1439b 100644 --- a/tests/net/common/java/android/net/LinkAddressTest.java +++ b/tests/net/common/java/android/net/LinkAddressTest.java @@ -28,8 +28,8 @@ import static android.system.OsConstants.RT_SCOPE_SITE; import static android.system.OsConstants.RT_SCOPE_UNIVERSE; import static com.android.testutils.MiscAssertsKt.assertEqualBothWays; +import static com.android.testutils.MiscAssertsKt.assertFieldCountEquals; import static com.android.testutils.MiscAssertsKt.assertNotEqualEitherWay; -import static com.android.testutils.ParcelUtilsKt.assertParcelSane; import static com.android.testutils.ParcelUtilsKt.assertParcelingIsLossless; import static org.junit.Assert.assertEquals; @@ -38,11 +38,17 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import android.os.Build; import android.os.SystemClock; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; +import com.android.testutils.DevSdkIgnoreRule; +import com.android.testutils.DevSdkIgnoreRule.IgnoreAfter; +import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo; + +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -57,6 +63,8 @@ import java.util.List; @RunWith(AndroidJUnit4.class) @SmallTest public class LinkAddressTest { + @Rule + public final DevSdkIgnoreRule ignoreRule = new DevSdkIgnoreRule(); private static final String V4 = "192.0.2.1"; private static final String V6 = "2001:db8::1"; @@ -318,15 +326,29 @@ public class LinkAddressTest { l = new LinkAddress(V6_ADDRESS, 64, 123, 456); assertParcelingIsLossless(l); - l = new LinkAddress(V6_ADDRESS, 64, 123, 456, - 1L, 3600000L); - assertParcelingIsLossless(l); l = new LinkAddress(V4 + "/28", IFA_F_PERMANENT, RT_SCOPE_LINK); - assertParcelSane(l, 6); + assertParcelingIsLossless(l); } - @Test + @Test @IgnoreUpTo(Build.VERSION_CODES.Q) + public void testLifetimeParceling() { + final LinkAddress l = new LinkAddress(V6_ADDRESS, 64, 123, 456, 1L, 3600000L); + assertParcelingIsLossless(l); + } + + @Test @IgnoreAfter(Build.VERSION_CODES.Q) + public void testFieldCount_Q() { + assertFieldCountEquals(4, LinkAddress.class); + } + + @Test @IgnoreUpTo(Build.VERSION_CODES.Q) + public void testFieldCount() { + // Make sure any new field is covered by the above parceling tests when changing this number + assertFieldCountEquals(6, LinkAddress.class); + } + + @Test @IgnoreUpTo(Build.VERSION_CODES.Q) public void testDeprecationTime() { try { new LinkAddress(V6_ADDRESS, 64, 0, 456, @@ -347,7 +369,7 @@ public class LinkAddressTest { } catch (IllegalArgumentException expected) { } } - @Test + @Test @IgnoreUpTo(Build.VERSION_CODES.Q) public void testExpirationTime() { try { new LinkAddress(V6_ADDRESS, 64, 0, 456, @@ -366,10 +388,13 @@ public class LinkAddressTest { public void testGetFlags() { LinkAddress l = new LinkAddress(V6_ADDRESS, 64, 123, RT_SCOPE_HOST); assertEquals(123, l.getFlags()); + } + @Test @IgnoreUpTo(Build.VERSION_CODES.Q) + public void testGetFlags_Deprecation() { // Test if deprecated bit was added/remove automatically based on the provided deprecation // time - l = new LinkAddress(V6_ADDRESS, 64, 0, RT_SCOPE_HOST, + LinkAddress l = new LinkAddress(V6_ADDRESS, 64, 0, RT_SCOPE_HOST, 1L, LinkAddress.LIFETIME_PERMANENT); // Check if the flag is added automatically. assertTrue((l.getFlags() & IFA_F_DEPRECATED) != 0); @@ -458,8 +483,11 @@ public class LinkAddressTest { (IFA_F_TEMPORARY|IFA_F_TENTATIVE|IFA_F_OPTIMISTIC), RT_SCOPE_UNIVERSE); assertGlobalPreferred(l, "v6,global,tempaddr+optimistic"); + } - l = new LinkAddress(V6_ADDRESS, 64, IFA_F_DEPRECATED, + @Test @IgnoreUpTo(Build.VERSION_CODES.Q) + public void testIsGlobalPreferred_DeprecatedInFuture() { + final LinkAddress l = new LinkAddress(V6_ADDRESS, 64, IFA_F_DEPRECATED, RT_SCOPE_UNIVERSE, SystemClock.elapsedRealtime() + 100000, SystemClock.elapsedRealtime() + 200000); // Although the deprecated bit is set, but the deprecation time is in the future, test