Loading core/java/com/android/internal/ravenwood/RavenwoodEnvironment.java +10 −3 Original line number Diff line number Diff line Loading @@ -94,14 +94,21 @@ public final class RavenwoodEnvironment { /** Used for testing */ @Disabled @ChangeId public static final long TEST_COMPAT_ID_2 = 368131701L; @ChangeId public static final long TEST_COMPAT_ID_2 = 368131701L; /** Used for testing */ @EnabledAfter(targetSdkVersion = S) @ChangeId public static final long TEST_COMPAT_ID_3 = 368131659L; @ChangeId public static final long TEST_COMPAT_ID_3 = 368131659L; /** Used for testing */ @EnabledAfter(targetSdkVersion = UPSIDE_DOWN_CAKE) @ChangeId public static final long TEST_COMPAT_ID_4 = 368132057L; @ChangeId public static final long TEST_COMPAT_ID_4 = 368132057L; /** Used for testing */ @ChangeId public static final long TEST_COMPAT_ID_5 = 387558811L; } } ravenwood/tests/bivalenttest/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ java_defaults { "junit-params", "platform-parametric-runner-lib", "platform-compat-test-rules", // To make sure it won't cause VerifyError (b/324063814) "platformprotosnano", Loading ravenwood/tests/bivalenttest/test/com/android/ravenwoodtest/bivalenttest/compat/RavenwoodCompatFrameworkTest.kt +26 −5 Original line number Diff line number Diff line Loading @@ -16,31 +16,52 @@ package com.android.ravenwoodtest.bivalenttest.compat import android.app.compat.CompatChanges import android.compat.testing.PlatformCompatChangeRule import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.internal.ravenwood.RavenwoodEnvironment.CompatIdsForTest import org.junit.Assert import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class RavenwoodCompatFrameworkTest { @get:Rule val compatRule = PlatformCompatChangeRule() @Test fun testEnabled() { Assert.assertTrue(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_1)) assertTrue(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_1)) } @Test fun testDisabled() { Assert.assertFalse(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_2)) assertFalse(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_2)) } @Test fun testEnabledAfterSForUApps() { Assert.assertTrue(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_3)) assertTrue(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_3)) } @Test fun testEnabledAfterUForUApps() { Assert.assertFalse(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_4)) assertFalse(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_4)) } @Test @EnableCompatChanges(CompatIdsForTest.TEST_COMPAT_ID_5) fun testEnableCompatChanges() { assertTrue(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_5)) } @Test @DisableCompatChanges(CompatIdsForTest.TEST_COMPAT_ID_5) fun testDisableCompatChanges() { assertFalse(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_5)) } } services/core/java/com/android/server/compat/CompatConfig.java +21 −0 Original line number Diff line number Diff line Loading @@ -876,7 +876,28 @@ final class CompatConfig { } @Nullable @android.ravenwood.annotation.RavenwoodReplace( blockedBy = PackageManager.class, reason = "PackageManager.getApplicationInfo() isn't supported yet") private Long getVersionCodeOrNull(String packageName) { return getVersionCodeOrNullImpl(packageName); } @SuppressWarnings("unused") @Nullable private Long getVersionCodeOrNull$ravenwood(String packageName) { try { // It's possible that the context is mocked, try the real method first return getVersionCodeOrNullImpl(packageName); } catch (Throwable e) { // For now, Ravenwood doesn't support the concept of "app updates", so let's // just use a fixed version code for all packages. return 1L; } } @Nullable private Long getVersionCodeOrNullImpl(String packageName) { try { ApplicationInfo applicationInfo = mContext.getPackageManager().getApplicationInfo( packageName, MATCH_ANY_USER); Loading Loading
core/java/com/android/internal/ravenwood/RavenwoodEnvironment.java +10 −3 Original line number Diff line number Diff line Loading @@ -94,14 +94,21 @@ public final class RavenwoodEnvironment { /** Used for testing */ @Disabled @ChangeId public static final long TEST_COMPAT_ID_2 = 368131701L; @ChangeId public static final long TEST_COMPAT_ID_2 = 368131701L; /** Used for testing */ @EnabledAfter(targetSdkVersion = S) @ChangeId public static final long TEST_COMPAT_ID_3 = 368131659L; @ChangeId public static final long TEST_COMPAT_ID_3 = 368131659L; /** Used for testing */ @EnabledAfter(targetSdkVersion = UPSIDE_DOWN_CAKE) @ChangeId public static final long TEST_COMPAT_ID_4 = 368132057L; @ChangeId public static final long TEST_COMPAT_ID_4 = 368132057L; /** Used for testing */ @ChangeId public static final long TEST_COMPAT_ID_5 = 387558811L; } }
ravenwood/tests/bivalenttest/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ java_defaults { "junit-params", "platform-parametric-runner-lib", "platform-compat-test-rules", // To make sure it won't cause VerifyError (b/324063814) "platformprotosnano", Loading
ravenwood/tests/bivalenttest/test/com/android/ravenwoodtest/bivalenttest/compat/RavenwoodCompatFrameworkTest.kt +26 −5 Original line number Diff line number Diff line Loading @@ -16,31 +16,52 @@ package com.android.ravenwoodtest.bivalenttest.compat import android.app.compat.CompatChanges import android.compat.testing.PlatformCompatChangeRule import androidx.test.ext.junit.runners.AndroidJUnit4 import com.android.internal.ravenwood.RavenwoodEnvironment.CompatIdsForTest import org.junit.Assert import libcore.junit.util.compat.CoreCompatChangeRule.DisableCompatChanges import libcore.junit.util.compat.CoreCompatChangeRule.EnableCompatChanges import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) class RavenwoodCompatFrameworkTest { @get:Rule val compatRule = PlatformCompatChangeRule() @Test fun testEnabled() { Assert.assertTrue(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_1)) assertTrue(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_1)) } @Test fun testDisabled() { Assert.assertFalse(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_2)) assertFalse(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_2)) } @Test fun testEnabledAfterSForUApps() { Assert.assertTrue(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_3)) assertTrue(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_3)) } @Test fun testEnabledAfterUForUApps() { Assert.assertFalse(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_4)) assertFalse(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_4)) } @Test @EnableCompatChanges(CompatIdsForTest.TEST_COMPAT_ID_5) fun testEnableCompatChanges() { assertTrue(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_5)) } @Test @DisableCompatChanges(CompatIdsForTest.TEST_COMPAT_ID_5) fun testDisableCompatChanges() { assertFalse(CompatChanges.isChangeEnabled(CompatIdsForTest.TEST_COMPAT_ID_5)) } }
services/core/java/com/android/server/compat/CompatConfig.java +21 −0 Original line number Diff line number Diff line Loading @@ -876,7 +876,28 @@ final class CompatConfig { } @Nullable @android.ravenwood.annotation.RavenwoodReplace( blockedBy = PackageManager.class, reason = "PackageManager.getApplicationInfo() isn't supported yet") private Long getVersionCodeOrNull(String packageName) { return getVersionCodeOrNullImpl(packageName); } @SuppressWarnings("unused") @Nullable private Long getVersionCodeOrNull$ravenwood(String packageName) { try { // It's possible that the context is mocked, try the real method first return getVersionCodeOrNullImpl(packageName); } catch (Throwable e) { // For now, Ravenwood doesn't support the concept of "app updates", so let's // just use a fixed version code for all packages. return 1L; } } @Nullable private Long getVersionCodeOrNullImpl(String packageName) { try { ApplicationInfo applicationInfo = mContext.getPackageManager().getApplicationInfo( packageName, MATCH_ANY_USER); Loading