From a11521db8c32eacc9533f3c18a02ef654a1b096f Mon Sep 17 00:00:00 2001 From: Martin Stjernholm Date: Tue, 21 Mar 2023 01:43:29 +0000 Subject: [PATCH] Skip legacy BackgroundDexOptService unit tests when ART Service is in use. Even just instantiating BackgroundDexOptService will result in a LegacyDexoptDisabledException then. Test: atest com.android.server.pm.BackgroundDexOptServiceUnitTest with dalvik.vm.useartservice=true Bug: 274098825 Change-Id: I7359ad2887ef2d179f12404de69298b90d9e6636 --- services/core/java/com/android/server/pm/Installer.java | 2 +- .../android/server/pm/BackgroundDexOptServiceUnitTest.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java index 0d417e4575091..c464253a6fa28 100644 --- a/services/core/java/com/android/server/pm/Installer.java +++ b/services/core/java/com/android/server/pm/Installer.java @@ -1177,7 +1177,7 @@ public class Installer extends SystemService { // TODO(b/260124949): Remove the legacy dexopt code paths, i.e. this exception and all code // that may throw it. public LegacyDexoptDisabledException() { - super("Invalid call to legacy dexopt installd method while ART Service is in use."); + super("Invalid call to legacy dexopt method while ART Service is in use."); } } diff --git a/services/tests/mockingservicestests/src/com/android/server/pm/BackgroundDexOptServiceUnitTest.java b/services/tests/mockingservicestests/src/com/android/server/pm/BackgroundDexOptServiceUnitTest.java index d5aa7fec996f5..9a7ee4d7887b7 100644 --- a/services/tests/mockingservicestests/src/com/android/server/pm/BackgroundDexOptServiceUnitTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/pm/BackgroundDexOptServiceUnitTest.java @@ -47,6 +47,7 @@ import android.content.IntentFilter; import android.os.HandlerThread; import android.os.PowerManager; import android.os.Process; +import android.os.SystemProperties; import android.util.Log; import com.android.internal.util.IndentingPrintWriter; @@ -56,6 +57,7 @@ import com.android.server.pm.dex.DexManager; import com.android.server.pm.dex.DexoptOptions; import org.junit.After; +import org.junit.Assume; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -126,6 +128,10 @@ public final class BackgroundDexOptServiceUnitTest { @Before public void setUp() throws Exception { + // These tests are only applicable to the legacy BackgroundDexOptService and cannot be run + // when ART Service is enabled. + Assume.assumeFalse(SystemProperties.getBoolean("dalvik.vm.useartservice", false)); + when(mInjector.getCallingUid()).thenReturn(Process.FIRST_APPLICATION_UID); when(mInjector.getContext()).thenReturn(mContext); when(mInjector.getDexOptHelper()).thenReturn(mDexOptHelper);