summaryrefslogtreecommitdiff
path: root/libartservice/service/javatests/com/android/server/art/ArtManagerLocalTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'libartservice/service/javatests/com/android/server/art/ArtManagerLocalTest.java')
-rw-r--r--libartservice/service/javatests/com/android/server/art/ArtManagerLocalTest.java125
1 files changed, 68 insertions, 57 deletions
diff --git a/libartservice/service/javatests/com/android/server/art/ArtManagerLocalTest.java b/libartservice/service/javatests/com/android/server/art/ArtManagerLocalTest.java
index b7d67eccc3..fa217ab89d 100644
--- a/libartservice/service/javatests/com/android/server/art/ArtManagerLocalTest.java
+++ b/libartservice/service/javatests/com/android/server/art/ArtManagerLocalTest.java
@@ -284,17 +284,17 @@ public class ArtManagerLocalTest {
assertThat(result.getFreedBytes())
.isEqualTo(6 * DEXOPT_ARTIFACTS_FREED + 4 * RUNTIME_ARTIFACTS_FREED);
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/base.apk", "arm64", mIsInDalvikCache)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/base.apk", "arm", mIsInDalvikCache)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/split_0.apk", "arm64", mIsInDalvikCache)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/split_0.apk", "arm", mIsInDalvikCache)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/data/user/0/foo/1.apk", "arm64", false /* isInDalvikCache */)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/data/user/0/foo/not_found.apk", "arm64", false /* isInDalvikCache */)));
verify(mArtd).deleteRuntimeArtifacts(deepEq(AidlUtils.buildRuntimeArtifactsPath(
@@ -331,13 +331,13 @@ public class ArtManagerLocalTest {
assertThat(result.getFreedBytes())
.isEqualTo(6 * DEXOPT_ARTIFACTS_FREED + 4 * RUNTIME_ARTIFACTS_FREED);
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/base.apk", "x86_64", mIsInDalvikCache)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/base.apk", "x86", mIsInDalvikCache)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/split_0.apk", "x86_64", mIsInDalvikCache)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/split_0.apk", "x86", mIsInDalvikCache)));
verify(mArtd).deleteRuntimeArtifacts(deepEq(AidlUtils.buildRuntimeArtifactsPath(
@@ -350,9 +350,9 @@ public class ArtManagerLocalTest {
PKG_NAME_1, "/somewhere/app/foo/split_0.apk", "x86")));
// We assume that the ISA got from `DexUseManagerLocal` is already the translated one.
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/data/user/0/foo/1.apk", "x86_64", false /* isInDalvikCache */)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/data/user/0/foo/not_found.apk", "x86_64", false /* isInDalvikCache */)));
// Verify that there are no more calls than the ones above.
@@ -462,19 +462,19 @@ public class ArtManagerLocalTest {
mArtManagerLocal.clearAppProfiles(mSnapshot, PKG_NAME_1);
verify(mArtd).deleteProfile(
- deepEq(AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "primary")));
+ deepEq(AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "primary")));
verify(mArtd).deleteProfile(deepEq(
AidlUtils.buildProfilePathForPrimaryCur(0 /* userId */, PKG_NAME_1, "primary")));
verify(mArtd).deleteProfile(deepEq(
AidlUtils.buildProfilePathForPrimaryCur(1 /* userId */, PKG_NAME_1, "primary")));
verify(mArtd).deleteProfile(
- deepEq(AidlUtils.buildProfilePathForSecondaryRef("/data/user/0/foo/1.apk")));
+ deepEq(AidlUtils.buildProfilePathForSecondaryRefAsInput("/data/user/0/foo/1.apk")));
verify(mArtd).deleteProfile(
deepEq(AidlUtils.buildProfilePathForSecondaryCur("/data/user/0/foo/1.apk")));
- verify(mArtd).deleteProfile(deepEq(
- AidlUtils.buildProfilePathForSecondaryRef("/data/user/0/foo/not_found.apk")));
+ verify(mArtd).deleteProfile(deepEq(AidlUtils.buildProfilePathForSecondaryRefAsInput(
+ "/data/user/0/foo/not_found.apk")));
verify(mArtd).deleteProfile(deepEq(
AidlUtils.buildProfilePathForSecondaryCur("/data/user/0/foo/not_found.apk")));
}
@@ -521,19 +521,19 @@ public class ArtManagerLocalTest {
.isSameInstanceAs(result);
verify(mArtd).deleteProfile(
- deepEq(AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "primary")));
+ deepEq(AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "primary")));
verify(mArtd).deleteProfile(deepEq(
AidlUtils.buildProfilePathForPrimaryCur(0 /* userId */, PKG_NAME_1, "primary")));
verify(mArtd).deleteProfile(deepEq(
AidlUtils.buildProfilePathForPrimaryCur(1 /* userId */, PKG_NAME_1, "primary")));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/base.apk", "arm64", mIsInDalvikCache)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/base.apk", "arm", mIsInDalvikCache)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/split_0.apk", "arm64", mIsInDalvikCache)));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/split_0.apk", "arm", mIsInDalvikCache)));
verify(mArtd).deleteRuntimeArtifacts(deepEq(AidlUtils.buildRuntimeArtifactsPath(
@@ -546,11 +546,11 @@ public class ArtManagerLocalTest {
PKG_NAME_1, "/somewhere/app/foo/split_0.apk", "arm")));
verify(mArtd).deleteProfile(
- deepEq(AidlUtils.buildProfilePathForSecondaryRef("/data/user/0/foo/1.apk")));
+ deepEq(AidlUtils.buildProfilePathForSecondaryRefAsInput("/data/user/0/foo/1.apk")));
verify(mArtd).deleteProfile(
deepEq(AidlUtils.buildProfilePathForSecondaryCur("/data/user/0/foo/1.apk")));
- verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPath(
+ verify(mArtd).deleteArtifacts(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/data/user/0/foo/1.apk", "arm64", false /* isInDalvikCache */)));
}
@@ -836,7 +836,8 @@ public class ArtManagerLocalTest {
File tempFile = File.createTempFile("primary", ".prof");
tempFile.deleteOnExit();
- ProfilePath refProfile = AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "primary");
+ ProfilePath refProfile =
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "primary");
String dexPath = "/somewhere/app/foo/base.apk";
when(mArtd.isProfileUsable(deepEq(refProfile), eq(dexPath))).thenReturn(true);
@@ -848,7 +849,8 @@ public class ArtManagerLocalTest {
1 /* userId */, PKG_NAME_1, "primary"))),
isNull(),
deepEq(AidlUtils.buildOutputProfileForPrimary(PKG_NAME_1, "primary",
- Process.SYSTEM_UID, Process.SYSTEM_UID, false /* isPublic */)),
+ Process.SYSTEM_UID, Process.SYSTEM_UID, false /* isPublic */,
+ false /* isPreReboot */)),
deepEq(List.of(dexPath)), deepEq(options)))
.thenAnswer(invocation -> {
try (var writer = new FileWriter(tempFile)) {
@@ -880,7 +882,8 @@ public class ArtManagerLocalTest {
File tempFileForSnapshot = File.createTempFile("primary", ".prof");
tempFileForSnapshot.deleteOnExit();
- ProfilePath refProfile = AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "primary");
+ ProfilePath refProfile =
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "primary");
String dexPath = "/somewhere/app/foo/base.apk";
// Simulate that the reference profile doesn't exist.
@@ -920,7 +923,8 @@ public class ArtManagerLocalTest {
@Test
public void testSnapshotAppProfileFromEmbeddedProfile() throws Exception {
- ProfilePath refProfile = AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "primary");
+ ProfilePath refProfile =
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "primary");
String dexPath = "/somewhere/app/foo/base.apk";
// Simulate that the reference profile doesn't exist.
@@ -937,7 +941,8 @@ public class ArtManagerLocalTest {
@Test
public void testSnapshotAppProfileDisableEmbeddedProfile() throws Exception {
- ProfilePath refProfile = AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "primary");
+ ProfilePath refProfile =
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "primary");
String dexPath = "/somewhere/app/foo/base.apk";
// Simulate that the reference profile doesn't exist.
@@ -959,7 +964,7 @@ public class ArtManagerLocalTest {
@Test
public void testSnapshotAppProfileSplit() throws Exception {
ProfilePath refProfile =
- AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "split_0.split");
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "split_0.split");
String dexPath = "/somewhere/app/foo/split_0.apk";
when(mArtd.isProfileUsable(deepEq(refProfile), eq(dexPath))).thenReturn(true);
@@ -971,7 +976,8 @@ public class ArtManagerLocalTest {
1 /* userId */, PKG_NAME_1, "split_0.split"))),
isNull(),
deepEq(AidlUtils.buildOutputProfileForPrimary(PKG_NAME_1, "split_0.split",
- Process.SYSTEM_UID, Process.SYSTEM_UID, false /* isPublic */)),
+ Process.SYSTEM_UID, Process.SYSTEM_UID, false /* isPublic */,
+ false /* isPreReboot */)),
deepEq(List.of(dexPath)), any()))
.thenReturn(false);
@@ -1049,27 +1055,28 @@ public class ArtManagerLocalTest {
when(mArtd.mergeProfiles(
inAnyOrderDeepEquals(
- AidlUtils.buildProfilePathForPrimaryRef("android", "primary"),
+ AidlUtils.buildProfilePathForPrimaryRefAsInput("android", "primary"),
AidlUtils.buildProfilePathForPrimaryCur(
0 /* userId */, "android", "primary"),
AidlUtils.buildProfilePathForPrimaryCur(
1 /* userId */, "android", "primary"),
- AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "primary"),
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "primary"),
AidlUtils.buildProfilePathForPrimaryCur(
0 /* userId */, PKG_NAME_1, "primary"),
AidlUtils.buildProfilePathForPrimaryCur(
1 /* userId */, PKG_NAME_1, "primary"),
- AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "split_0.split"),
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(
+ PKG_NAME_1, "split_0.split"),
AidlUtils.buildProfilePathForPrimaryCur(
0 /* userId */, PKG_NAME_1, "split_0.split"),
AidlUtils.buildProfilePathForPrimaryCur(
1 /* userId */, PKG_NAME_1, "split_0.split"),
- AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_2, "primary"),
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_2, "primary"),
AidlUtils.buildProfilePathForPrimaryCur(
0 /* userId */, PKG_NAME_2, "primary"),
AidlUtils.buildProfilePathForPrimaryCur(
1 /* userId */, PKG_NAME_2, "primary"),
- AidlUtils.buildProfilePathForPrimaryRef(
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(
PKG_NAME_HIBERNATING, "primary"),
AidlUtils.buildProfilePathForPrimaryCur(
0 /* userId */, PKG_NAME_HIBERNATING, "primary"),
@@ -1077,7 +1084,8 @@ public class ArtManagerLocalTest {
1 /* userId */, PKG_NAME_HIBERNATING, "primary")),
isNull(),
deepEq(AidlUtils.buildOutputProfileForPrimary("android", "primary",
- Process.SYSTEM_UID, Process.SYSTEM_UID, false /* isPublic */)),
+ Process.SYSTEM_UID, Process.SYSTEM_UID, false /* isPublic */,
+ false /* isPreReboot */)),
deepEq(List.of("bcp0", "bcp1", "sscp0", "sscp1", "sssj0", "sssj1")),
deepEq(options)))
.thenReturn(false); // A non-empty merge is tested in `testSnapshotAppProfile`.
@@ -1144,25 +1152,27 @@ public class ArtManagerLocalTest {
mArtManagerLocal.cleanup(mSnapshot);
verify(mArtd).cleanup(
- inAnyOrderDeepEquals(AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "primary"),
+ inAnyOrderDeepEquals(
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "primary"),
AidlUtils.buildProfilePathForPrimaryCur(
0 /* userId */, PKG_NAME_1, "primary"),
AidlUtils.buildProfilePathForPrimaryCur(
1 /* userId */, PKG_NAME_1, "primary"),
- AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "split_0.split"),
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "split_0.split"),
AidlUtils.buildProfilePathForPrimaryCur(
0 /* userId */, PKG_NAME_1, "split_0.split"),
AidlUtils.buildProfilePathForPrimaryCur(
1 /* userId */, PKG_NAME_1, "split_0.split"),
- AidlUtils.buildProfilePathForSecondaryRef("/data/user/0/foo/1.apk"),
+ AidlUtils.buildProfilePathForSecondaryRefAsInput("/data/user/0/foo/1.apk"),
AidlUtils.buildProfilePathForSecondaryCur("/data/user/0/foo/1.apk")),
- inAnyOrderDeepEquals(AidlUtils.buildArtifactsPath("/somewhere/app/foo/base.apk",
- "arm64", false /* isInDalvikCache */),
- AidlUtils.buildArtifactsPath(
+ inAnyOrderDeepEquals(
+ AidlUtils.buildArtifactsPathAsInput("/somewhere/app/foo/base.apk", "arm64",
+ false /* isInDalvikCache */),
+ AidlUtils.buildArtifactsPathAsInput(
"/data/user/0/foo/1.apk", "arm64", false /* isInDalvikCache */),
- AidlUtils.buildArtifactsPath("/somewhere/app/foo/split_0.apk", "arm64",
- true /* isInDalvikCache */)),
- inAnyOrderDeepEquals(VdexPath.artifactsPath(AidlUtils.buildArtifactsPath(
+ AidlUtils.buildArtifactsPathAsInput("/somewhere/app/foo/split_0.apk",
+ "arm64", true /* isInDalvikCache */)),
+ inAnyOrderDeepEquals(VdexPath.artifactsPath(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/split_0.apk", "arm", false /* isInDalvikCache */))),
inAnyOrderDeepEquals(AidlUtils.buildRuntimeArtifactsPath(
PKG_NAME_1, "/somewhere/app/foo/split_0.apk", "arm64"),
@@ -1227,14 +1237,14 @@ public class ArtManagerLocalTest {
.getDexoptStatus(eq("/somewhere/app/foo/base.apk"), eq("arm"), any());
// These are counted as TYPE_DEXOPT_ARTIFACT.
- doReturn(1l << 0).when(mArtd).getArtifactsSize(deepEq(AidlUtils.buildArtifactsPath(
+ doReturn(1l << 0).when(mArtd).getArtifactsSize(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/base.apk", "arm64", false /* isInDalvikCache */)));
- doReturn(1l << 1).when(mArtd).getArtifactsSize(deepEq(AidlUtils.buildArtifactsPath(
+ doReturn(1l << 1).when(mArtd).getArtifactsSize(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/data/user/0/foo/1.apk", "arm64", false /* isInDalvikCache */)));
- doReturn(1l << 2).when(mArtd).getArtifactsSize(deepEq(AidlUtils.buildArtifactsPath(
+ doReturn(1l << 2).when(mArtd).getArtifactsSize(deepEq(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/split_0.apk", "arm64", true /* isInDalvikCache */)));
doReturn(1l << 3).when(mArtd).getVdexFileSize(
- deepEq(VdexPath.artifactsPath(AidlUtils.buildArtifactsPath(
+ deepEq(VdexPath.artifactsPath(AidlUtils.buildArtifactsPathAsInput(
"/somewhere/app/foo/split_0.apk", "arm", false /* isInDalvikCache */))));
doReturn(1l << 4).when(mArtd).getRuntimeArtifactsSize(
deepEq(AidlUtils.buildRuntimeArtifactsPath(
@@ -1250,11 +1260,11 @@ public class ArtManagerLocalTest {
// These are counted as TYPE_REF_PROFILE.
doReturn(1l << 6).when(mArtd).getProfileSize(
- deepEq(AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "primary")));
- doReturn(1l << 7).when(mArtd).getProfileSize(
- deepEq(AidlUtils.buildProfilePathForPrimaryRef(PKG_NAME_1, "split_0.split")));
+ deepEq(AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "primary")));
+ doReturn(1l << 7).when(mArtd).getProfileSize(deepEq(
+ AidlUtils.buildProfilePathForPrimaryRefAsInput(PKG_NAME_1, "split_0.split")));
doReturn(1l << 8).when(mArtd).getProfileSize(
- deepEq(AidlUtils.buildProfilePathForSecondaryRef("/data/user/0/foo/1.apk")));
+ deepEq(AidlUtils.buildProfilePathForSecondaryRefAsInput("/data/user/0/foo/1.apk")));
long expectedRefProfileSize = (1l << 6) + (1l << 7) + (1l << 8);
int expectedGetProfileSizeCalls = 3;
@@ -1278,15 +1288,16 @@ public class ArtManagerLocalTest {
// These are counted as TYPE_DEXOPT_ARTIFACT.
// Dexopt artifacts of secondary dex files.
- doReturn(1l << 12).when(mArtd).getArtifactsSize(deepEq(AidlUtils.buildArtifactsPath(
- "/data/user/1/foo/1.apk", "arm64", false /* isInDalvikCache */)));
+ doReturn(1l << 12).when(mArtd).getArtifactsSize(
+ deepEq(AidlUtils.buildArtifactsPathAsInput(
+ "/data/user/1/foo/1.apk", "arm64", false /* isInDalvikCache */)));
expectedDexoptArtifactSize += (1l << 12);
expectedGetArtifactsSizeCalls += 1;
// These are counted as TYPE_REF_PROFILE.
// Reference profiles of secondary dex files.
- doReturn(1l << 13).when(mArtd).getProfileSize(
- deepEq(AidlUtils.buildProfilePathForSecondaryRef("/data/user/1/foo/1.apk")));
+ doReturn(1l << 13).when(mArtd).getProfileSize(deepEq(
+ AidlUtils.buildProfilePathForSecondaryRefAsInput("/data/user/1/foo/1.apk")));
expectedRefProfileSize += (1l << 13);
expectedGetProfileSizeCalls += 1;