blob: 6f3aa2be8c71d58ed1352306f442bf0076bb8b85 [file] [log] [blame]
Paul Duffin8eb45732022-10-04 19:03:31 +01001// Copyright 2022 Google Inc. All rights reserved.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Testing support for dexpreopt config.
16//
17// The bootImageConfig/bootImageVariant structs returned by genBootImageConfigs are used in many
18// places in the build and are currently mutated in a number of those locations. This provides
19// comprehensive tests of the fields in those structs to ensure that they have been initialized
20// correctly and where relevant, mutated correctly.
21//
22// This is used in TestBootImageConfig to verify that the
23
24package java
25
26import (
27 "fmt"
28 "strings"
29 "testing"
30
31 "android/soong/android"
32)
33
34// PrepareForBootImageConfigTest is the minimal set of preparers that are needed to be able to use
35// the Check*BootImageConfig methods define here.
36var PrepareForBootImageConfigTest = android.GroupFixturePreparers(
37 android.PrepareForTestWithArchMutator,
38 android.PrepareForTestAccessingMakeVars,
39 FixtureConfigureBootJars("com.android.art:core1", "com.android.art:core2", "platform:framework"),
40)
41
Jiakai Zhangb8796202023-03-06 19:16:48 +000042var PrepareApexBootJarConfigs = FixtureConfigureApexBootJars(
43 "com.android.foo:framework-foo", "com.android.bar:framework-bar")
44
45var PrepareApexBootJarConfigsAndModules = android.GroupFixturePreparers(
46 PrepareApexBootJarConfigs,
47 prepareApexBootJarModule("com.android.foo", "framework-foo"),
48 prepareApexBootJarModule("com.android.bar", "framework-bar"),
49)
50
51var ApexBootJarFragmentsForPlatformBootclasspath = fmt.Sprintf(`
52 {
53 apex: "%[1]s",
54 module: "%[1]s-bootclasspathfragment",
55 },
56 {
57 apex: "%[2]s",
58 module: "%[2]s-bootclasspathfragment",
59 },
60`, "com.android.foo", "com.android.bar")
61
62var ApexBootJarDexJarPaths = []string{
63 "out/soong/.intermediates/packages/modules/com.android.bar/framework-bar/android_common_apex10000/aligned/framework-bar.jar",
64 "out/soong/.intermediates/packages/modules/com.android.foo/framework-foo/android_common_apex10000/aligned/framework-foo.jar",
65}
66
67func prepareApexBootJarModule(apexName string, moduleName string) android.FixturePreparer {
68 moduleSourceDir := fmt.Sprintf("packages/modules/%s", apexName)
69 return android.GroupFixturePreparers(
70 android.FixtureAddTextFile(moduleSourceDir+"/Android.bp", fmt.Sprintf(`
71 apex {
72 name: "%[1]s",
73 key: "%[1]s.key",
74 bootclasspath_fragments: [
75 "%[1]s-bootclasspathfragment",
76 ],
77 updatable: false,
78 }
79
80 apex_key {
81 name: "%[1]s.key",
82 public_key: "%[1]s.avbpubkey",
83 private_key: "%[1]s.pem",
84 }
85
86 bootclasspath_fragment {
87 name: "%[1]s-bootclasspathfragment",
88 contents: ["%[2]s"],
89 apex_available: ["%[1]s"],
90 hidden_api: {
91 split_packages: ["*"],
92 },
93 }
94
95 java_library {
96 name: "%[2]s",
97 srcs: ["%[2]s.java"],
98 system_modules: "none",
99 sdk_version: "none",
100 compile_dex: true,
101 apex_available: ["%[1]s"],
102 }
103 `, apexName, moduleName)),
104 android.FixtureMergeMockFs(android.MockFS{
105 fmt.Sprintf("%s/apex_manifest.json", moduleSourceDir): nil,
106 fmt.Sprintf("%s/%s.avbpubkey", moduleSourceDir, apexName): nil,
107 fmt.Sprintf("%s/%s.pem", moduleSourceDir, apexName): nil,
108 fmt.Sprintf("system/sepolicy/apex/%s-file_contexts", apexName): nil,
109 fmt.Sprintf("%s/%s.java", moduleSourceDir, moduleName): nil,
110 }),
111 )
112}
113
Paul Duffin8eb45732022-10-04 19:03:31 +0100114// normalizedInstall represents a android.RuleBuilderInstall that has been normalized to remove
115// test specific parts of the From path.
116type normalizedInstall struct {
117 from string
118 to string
119}
120
121// normalizeInstalls converts a slice of android.RuleBuilderInstall into a slice of
122// normalizedInstall to allow them to be compared using android.AssertDeepEquals.
123func normalizeInstalls(installs android.RuleBuilderInstalls) []normalizedInstall {
124 var normalized []normalizedInstall
125 for _, install := range installs {
126 normalized = append(normalized, normalizedInstall{
127 from: install.From.RelativeToTop().String(),
128 to: install.To,
129 })
130 }
131 return normalized
132}
133
134// assertInstallsEqual normalized the android.RuleBuilderInstalls and compares against the expected
135// normalizedInstalls.
136func assertInstallsEqual(t *testing.T, message string, expected []normalizedInstall, actual android.RuleBuilderInstalls) {
137 t.Helper()
138 normalizedActual := normalizeInstalls(actual)
139 android.AssertDeepEquals(t, message, expected, normalizedActual)
140}
141
142// expectedConfig encapsulates the expected properties that will be set in a bootImageConfig
143//
144// Each field <x> in here is compared against the corresponding field <x> in bootImageConfig.
145type expectedConfig struct {
146 name string
147 stem string
148 dir string
149 symbolsDir string
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100150 installDir string
Paul Duffin8eb45732022-10-04 19:03:31 +0100151 profileInstallPathInApex string
152 modules android.ConfiguredJarList
153 dexPaths []string
154 dexPathsDeps []string
155 zip string
156 variants []*expectedVariant
157
158 // Mutated fields
159 profileInstalls []normalizedInstall
160 profileLicenseMetadataFile string
161}
162
163// expectedVariant encapsulates the expected properties that will be set in a bootImageVariant
164//
165// Each field <x> in here is compared against the corresponding field <x> in bootImageVariant
166// except for archType which is compared against the target.Arch.ArchType field in bootImageVariant.
167type expectedVariant struct {
168 archType android.ArchType
169 dexLocations []string
170 dexLocationsDeps []string
171 imagePathOnHost string
172 imagePathOnDevice string
173 imagesDeps []string
Jiakai Zhang8fe3a412023-02-23 17:37:16 +0000174 baseImages []string
175 baseImagesDeps []string
Paul Duffin8eb45732022-10-04 19:03:31 +0100176
177 // Mutated fields
178 installs []normalizedInstall
179 vdexInstalls []normalizedInstall
180 unstrippedInstalls []normalizedInstall
181 licenseMetadataFile string
182}
183
184// CheckArtBootImageConfig checks the status of the fields of the bootImageConfig and
185// bootImageVariant structures that are returned from artBootImageConfig.
186//
187// This is before any fields are mutated.
188func CheckArtBootImageConfig(t *testing.T, result *android.TestResult) {
189 checkArtBootImageConfig(t, result, false, "")
190}
191
192// getArtImageConfig gets the ART bootImageConfig that was created during the test.
193func getArtImageConfig(result *android.TestResult) *bootImageConfig {
194 pathCtx := &android.TestPathContext{TestResult: result}
195 imageConfig := artBootImageConfig(pathCtx)
196 return imageConfig
197}
198
199// checkArtBootImageConfig checks the ART boot image.
200//
201// mutated is true if this is called after fields in the image have been mutated by the ART
202// bootclasspath_fragment and false otherwise.
203func checkArtBootImageConfig(t *testing.T, result *android.TestResult, mutated bool, expectedLicenseMetadataFile string) {
204 imageConfig := getArtImageConfig(result)
205
206 expected := &expectedConfig{
207 name: "art",
208 stem: "boot",
Jeongik Cha4753b392023-04-19 23:25:41 +0900209 dir: "out/soong/dexpreopt_arm64/dex_artjars",
210 symbolsDir: "out/soong/dexpreopt_arm64/dex_artjars_unstripped",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100211 installDir: "apex/art_boot_images/javalib",
Paul Duffin8eb45732022-10-04 19:03:31 +0100212 profileInstallPathInApex: "etc/boot-image.prof",
213 modules: android.CreateTestConfiguredJarList([]string{"com.android.art:core1", "com.android.art:core2"}),
Jeongik Cha4753b392023-04-19 23:25:41 +0900214 dexPaths: []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar"},
215 dexPathsDeps: []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar"},
216 zip: "out/soong/dexpreopt_arm64/dex_artjars/art.zip",
Paul Duffin8eb45732022-10-04 19:03:31 +0100217 variants: []*expectedVariant{
218 {
219 archType: android.Arm64,
220 dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
221 dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
Jeongik Cha4753b392023-04-19 23:25:41 +0900222 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100223 imagePathOnDevice: "/apex/art_boot_images/javalib/arm64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100224 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900225 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
226 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
227 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
228 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
229 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
230 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100231 },
232 installs: []normalizedInstall{
233 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900234 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100235 to: "/apex/art_boot_images/javalib/arm64/boot.art",
236 },
237 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900238 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100239 to: "/apex/art_boot_images/javalib/arm64/boot.oat",
240 },
241 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900242 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100243 to: "/apex/art_boot_images/javalib/arm64/boot-core2.art",
244 },
245 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900246 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100247 to: "/apex/art_boot_images/javalib/arm64/boot-core2.oat",
248 },
249 },
250 vdexInstalls: []normalizedInstall{
251 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900252 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100253 to: "/apex/art_boot_images/javalib/arm64/boot.vdex",
254 },
255 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900256 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100257 to: "/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
258 },
259 },
260 unstrippedInstalls: []normalizedInstall{
261 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900262 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100263 to: "/apex/art_boot_images/javalib/arm64/boot.oat",
264 },
265 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900266 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100267 to: "/apex/art_boot_images/javalib/arm64/boot-core2.oat",
268 },
269 },
270 licenseMetadataFile: expectedLicenseMetadataFile,
271 },
272 {
273 archType: android.Arm,
274 dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
275 dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
Jeongik Cha4753b392023-04-19 23:25:41 +0900276 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100277 imagePathOnDevice: "/apex/art_boot_images/javalib/arm/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100278 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900279 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
280 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
281 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
282 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
283 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
284 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100285 },
286 installs: []normalizedInstall{
287 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900288 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100289 to: "/apex/art_boot_images/javalib/arm/boot.art",
290 },
291 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900292 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100293 to: "/apex/art_boot_images/javalib/arm/boot.oat",
294 },
295 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900296 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100297 to: "/apex/art_boot_images/javalib/arm/boot-core2.art",
298 },
299 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900300 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100301 to: "/apex/art_boot_images/javalib/arm/boot-core2.oat",
302 },
303 },
304 vdexInstalls: []normalizedInstall{
305 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900306 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100307 to: "/apex/art_boot_images/javalib/arm/boot.vdex",
308 },
309 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900310 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100311 to: "/apex/art_boot_images/javalib/arm/boot-core2.vdex",
312 },
313 },
314 unstrippedInstalls: []normalizedInstall{
315 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900316 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100317 to: "/apex/art_boot_images/javalib/arm/boot.oat",
318 },
319 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900320 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100321 to: "/apex/art_boot_images/javalib/arm/boot-core2.oat",
322 },
323 },
324 licenseMetadataFile: expectedLicenseMetadataFile,
325 },
326 {
327 archType: android.X86_64,
328 dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
329 dexLocationsDeps: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
Jeongik Cha4753b392023-04-19 23:25:41 +0900330 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100331 imagePathOnDevice: "/apex/art_boot_images/javalib/x86_64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100332 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900333 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
334 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
335 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
336 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
337 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
338 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100339 },
340 installs: []normalizedInstall{
341 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900342 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100343 to: "/apex/art_boot_images/javalib/x86_64/boot.art",
344 }, {
Jeongik Cha4753b392023-04-19 23:25:41 +0900345 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100346 to: "/apex/art_boot_images/javalib/x86_64/boot.oat",
347 },
348 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900349 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100350 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.art",
351 }, {
Jeongik Cha4753b392023-04-19 23:25:41 +0900352 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100353 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
354 },
355 },
356 vdexInstalls: []normalizedInstall{
357 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900358 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100359 to: "/apex/art_boot_images/javalib/x86_64/boot.vdex",
360 },
361 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900362 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100363 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
364 },
365 },
366 unstrippedInstalls: []normalizedInstall{
367 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900368 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100369 to: "/apex/art_boot_images/javalib/x86_64/boot.oat",
370 },
371 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900372 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100373 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
374 },
375 },
376 licenseMetadataFile: expectedLicenseMetadataFile,
377 },
378 {
379 archType: android.X86,
380 dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
381 dexLocationsDeps: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
Jeongik Cha4753b392023-04-19 23:25:41 +0900382 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100383 imagePathOnDevice: "/apex/art_boot_images/javalib/x86/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100384 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900385 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
386 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
387 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
388 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
389 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
390 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100391 },
392 installs: []normalizedInstall{
393 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900394 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100395 to: "/apex/art_boot_images/javalib/x86/boot.art",
396 }, {
Jeongik Cha4753b392023-04-19 23:25:41 +0900397 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100398 to: "/apex/art_boot_images/javalib/x86/boot.oat",
399 },
400 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900401 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100402 to: "/apex/art_boot_images/javalib/x86/boot-core2.art",
403 }, {
Jeongik Cha4753b392023-04-19 23:25:41 +0900404 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100405 to: "/apex/art_boot_images/javalib/x86/boot-core2.oat",
406 },
407 },
408 vdexInstalls: []normalizedInstall{
409 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900410 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100411 to: "/apex/art_boot_images/javalib/x86/boot.vdex",
412 },
413 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900414 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100415 to: "/apex/art_boot_images/javalib/x86/boot-core2.vdex",
416 },
417 },
418 unstrippedInstalls: []normalizedInstall{
419 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900420 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100421 to: "/apex/art_boot_images/javalib/x86/boot.oat",
422 },
423 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900424 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100425 to: "/apex/art_boot_images/javalib/x86/boot-core2.oat",
426 },
427 },
428 licenseMetadataFile: expectedLicenseMetadataFile,
429 },
430 },
431 }
432
433 checkBootImageConfig(t, imageConfig, mutated, expected)
434}
435
436// getFrameworkImageConfig gets the framework bootImageConfig that was created during the test.
437func getFrameworkImageConfig(result *android.TestResult) *bootImageConfig {
438 pathCtx := &android.TestPathContext{TestResult: result}
439 imageConfig := defaultBootImageConfig(pathCtx)
440 return imageConfig
441}
442
443// CheckFrameworkBootImageConfig checks the status of the fields of the bootImageConfig and
444// bootImageVariant structures that are returned from defaultBootImageConfig.
445//
446// This is before any fields are mutated.
447func CheckFrameworkBootImageConfig(t *testing.T, result *android.TestResult) {
448 checkFrameworkBootImageConfig(t, result, false, "")
449}
450
451// checkFrameworkBootImageConfig checks the framework boot image.
452//
453// mutated is true if this is called after fields in the image have been mutated by the
454// platform_bootclasspath and false otherwise.
455func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mutated bool, expectedLicenseMetadataFile string) {
456 imageConfig := getFrameworkImageConfig(result)
457
458 expected := &expectedConfig{
459 name: "boot",
460 stem: "boot",
Jeongik Cha4753b392023-04-19 23:25:41 +0900461 dir: "out/soong/dexpreopt_arm64/dex_bootjars",
462 symbolsDir: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100463 installDir: "system/framework",
Paul Duffin8eb45732022-10-04 19:03:31 +0100464 profileInstallPathInApex: "",
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100465 modules: android.CreateTestConfiguredJarList([]string{
466 "com.android.art:core1",
467 "com.android.art:core2",
468 "platform:framework",
469 }),
470 dexPaths: []string{
471 "out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
472 "out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
473 "out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
474 },
475 dexPathsDeps: []string{
476 "out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
477 "out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
478 "out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
479 },
480 zip: "out/soong/dexpreopt_arm64/dex_bootjars/boot.zip",
Paul Duffin8eb45732022-10-04 19:03:31 +0100481 variants: []*expectedVariant{
482 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100483 archType: android.Arm64,
484 dexLocations: []string{
485 "/apex/com.android.art/javalib/core1.jar",
486 "/apex/com.android.art/javalib/core2.jar",
487 "/system/framework/framework.jar",
488 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100489 dexLocationsDeps: []string{
490 "/apex/com.android.art/javalib/core1.jar",
491 "/apex/com.android.art/javalib/core2.jar",
492 "/system/framework/framework.jar",
493 },
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100494 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
495 imagePathOnDevice: "/system/framework/arm64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100496 imagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100497 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
498 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
499 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
500 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
501 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
502 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900503 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
504 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
505 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100506 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100507 installs: []normalizedInstall{
508 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100509 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
510 to: "/system/framework/arm64/boot.art",
511 },
512 {
513 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
514 to: "/system/framework/arm64/boot.oat",
515 },
516 {
517 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
518 to: "/system/framework/arm64/boot-core2.art",
519 },
520 {
521 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
522 to: "/system/framework/arm64/boot-core2.oat",
523 },
524 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900525 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100526 to: "/system/framework/arm64/boot-framework.art",
527 },
528 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900529 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100530 to: "/system/framework/arm64/boot-framework.oat",
531 },
532 },
533 vdexInstalls: []normalizedInstall{
534 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100535 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
536 to: "/system/framework/arm64/boot.vdex",
537 },
538 {
539 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
540 to: "/system/framework/arm64/boot-core2.vdex",
541 },
542 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900543 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100544 to: "/system/framework/arm64/boot-framework.vdex",
545 },
546 },
547 unstrippedInstalls: []normalizedInstall{
548 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100549 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot.oat",
550 to: "/system/framework/arm64/boot.oat",
551 },
552 {
553 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-core2.oat",
554 to: "/system/framework/arm64/boot-core2.oat",
555 },
556 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900557 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100558 to: "/system/framework/arm64/boot-framework.oat",
559 },
560 },
561 licenseMetadataFile: expectedLicenseMetadataFile,
562 },
563 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100564 archType: android.Arm,
565 dexLocations: []string{
566 "/apex/com.android.art/javalib/core1.jar",
567 "/apex/com.android.art/javalib/core2.jar",
568 "/system/framework/framework.jar",
569 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100570 dexLocationsDeps: []string{
571 "/apex/com.android.art/javalib/core1.jar",
572 "/apex/com.android.art/javalib/core2.jar",
573 "/system/framework/framework.jar",
574 },
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100575 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
576 imagePathOnDevice: "/system/framework/arm/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100577 imagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100578 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
579 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
580 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
581 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
582 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
583 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900584 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
585 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
586 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100587 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100588 installs: []normalizedInstall{
589 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100590 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
591 to: "/system/framework/arm/boot.art",
592 },
593 {
594 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
595 to: "/system/framework/arm/boot.oat",
596 },
597 {
598 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
599 to: "/system/framework/arm/boot-core2.art",
600 },
601 {
602 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
603 to: "/system/framework/arm/boot-core2.oat",
604 },
605 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900606 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100607 to: "/system/framework/arm/boot-framework.art",
608 },
609 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900610 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100611 to: "/system/framework/arm/boot-framework.oat",
612 },
613 },
614 vdexInstalls: []normalizedInstall{
615 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100616 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
617 to: "/system/framework/arm/boot.vdex",
618 },
619 {
620 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
621 to: "/system/framework/arm/boot-core2.vdex",
622 },
623 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900624 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100625 to: "/system/framework/arm/boot-framework.vdex",
626 },
627 },
628 unstrippedInstalls: []normalizedInstall{
629 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100630 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot.oat",
631 to: "/system/framework/arm/boot.oat",
632 },
633 {
634 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-core2.oat",
635 to: "/system/framework/arm/boot-core2.oat",
636 },
637 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900638 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100639 to: "/system/framework/arm/boot-framework.oat",
640 },
641 },
642 licenseMetadataFile: expectedLicenseMetadataFile,
643 },
644 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100645 archType: android.X86_64,
646 dexLocations: []string{
647 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
648 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
649 "host/linux-x86/system/framework/framework.jar",
650 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100651 dexLocationsDeps: []string{
652 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
653 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
654 "host/linux-x86/system/framework/framework.jar",
655 },
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100656 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
657 imagePathOnDevice: "/system/framework/x86_64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100658 imagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100659 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
660 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
661 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
662 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
663 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
664 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900665 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
666 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
667 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100668 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100669 installs: []normalizedInstall{
670 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100671 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
672 to: "/system/framework/x86_64/boot.art",
673 },
674 {
675 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
676 to: "/system/framework/x86_64/boot.oat",
677 },
678 {
679 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
680 to: "/system/framework/x86_64/boot-core2.art",
681 },
682 {
683 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
684 to: "/system/framework/x86_64/boot-core2.oat",
685 },
686 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900687 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100688 to: "/system/framework/x86_64/boot-framework.art",
689 },
690 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900691 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100692 to: "/system/framework/x86_64/boot-framework.oat",
693 },
694 },
695 vdexInstalls: []normalizedInstall{
696 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100697 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
698 to: "/system/framework/x86_64/boot.vdex",
699 },
700 {
701 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
702 to: "/system/framework/x86_64/boot-core2.vdex",
703 },
704 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900705 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100706 to: "/system/framework/x86_64/boot-framework.vdex",
707 },
708 },
709 unstrippedInstalls: []normalizedInstall{
710 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100711 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot.oat",
712 to: "/system/framework/x86_64/boot.oat",
713 },
714 {
715 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-core2.oat",
716 to: "/system/framework/x86_64/boot-core2.oat",
717 },
718 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900719 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100720 to: "/system/framework/x86_64/boot-framework.oat",
721 },
722 },
723 licenseMetadataFile: expectedLicenseMetadataFile,
724 },
725 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100726 archType: android.X86,
727 dexLocations: []string{
728 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
729 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
730 "host/linux-x86/system/framework/framework.jar",
731 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100732 dexLocationsDeps: []string{
733 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
734 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
735 "host/linux-x86/system/framework/framework.jar",
736 },
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100737 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
738 imagePathOnDevice: "/system/framework/x86/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100739 imagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100740 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
741 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
742 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
743 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
744 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
745 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900746 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
747 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
748 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100749 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100750 installs: []normalizedInstall{
751 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100752 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
753 to: "/system/framework/x86/boot.art",
754 },
755 {
756 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
757 to: "/system/framework/x86/boot.oat",
758 },
759 {
760 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
761 to: "/system/framework/x86/boot-core2.art",
762 },
763 {
764 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
765 to: "/system/framework/x86/boot-core2.oat",
766 },
767 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900768 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100769 to: "/system/framework/x86/boot-framework.art",
770 },
771 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900772 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100773 to: "/system/framework/x86/boot-framework.oat",
774 },
775 },
776 vdexInstalls: []normalizedInstall{
777 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100778 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
779 to: "/system/framework/x86/boot.vdex",
780 },
781 {
782 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
783 to: "/system/framework/x86/boot-core2.vdex",
784 },
785 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900786 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100787 to: "/system/framework/x86/boot-framework.vdex",
788 },
789 },
790 unstrippedInstalls: []normalizedInstall{
791 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100792 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot.oat",
793 to: "/system/framework/x86/boot.oat",
794 },
795 {
796 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-core2.oat",
797 to: "/system/framework/x86/boot-core2.oat",
798 },
799 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900800 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100801 to: "/system/framework/x86/boot-framework.oat",
802 },
803 },
804 licenseMetadataFile: expectedLicenseMetadataFile,
805 },
806 },
807 profileInstalls: []normalizedInstall{
Jeongik Cha4753b392023-04-19 23:25:41 +0900808 {from: "out/soong/dexpreopt_arm64/dex_bootjars/boot.bprof", to: "/system/etc/boot-image.bprof"},
809 {from: "out/soong/dexpreopt_arm64/dex_bootjars/boot.prof", to: "/system/etc/boot-image.prof"},
Paul Duffin8eb45732022-10-04 19:03:31 +0100810 },
811 profileLicenseMetadataFile: expectedLicenseMetadataFile,
812 }
813
814 checkBootImageConfig(t, imageConfig, mutated, expected)
815}
816
Jiakai Zhangb8796202023-03-06 19:16:48 +0000817// getMainlineImageConfig gets the framework bootImageConfig that was created during the test.
818func getMainlineImageConfig(result *android.TestResult) *bootImageConfig {
819 pathCtx := &android.TestPathContext{TestResult: result}
820 imageConfig := mainlineBootImageConfig(pathCtx)
821 return imageConfig
822}
823
824// CheckMainlineBootImageConfig checks the status of the fields of the bootImageConfig and
825// bootImageVariant structures that are returned from mainlineBootImageConfig.
826//
827// This is before any fields are mutated.
828func CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
829 expectedLicenseMetadataFile := ""
830 imageConfig := getMainlineImageConfig(result)
831
832 expected := &expectedConfig{
833 name: "mainline",
834 stem: "boot",
Jeongik Cha4753b392023-04-19 23:25:41 +0900835 dir: "out/soong/dexpreopt_arm64/dex_mainlinejars",
836 symbolsDir: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100837 installDir: "system/framework",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000838 profileInstallPathInApex: "",
839 modules: android.CreateTestConfiguredJarList([]string{
840 "com.android.foo:framework-foo",
841 "com.android.bar:framework-bar",
842 }),
843 dexPaths: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900844 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
845 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000846 },
847 dexPathsDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100848 "out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
849 "out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
Jeongik Cha4753b392023-04-19 23:25:41 +0900850 "out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
851 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
852 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000853 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900854 zip: "out/soong/dexpreopt_arm64/dex_mainlinejars/mainline.zip",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000855 variants: []*expectedVariant{
856 {
857 archType: android.Arm64,
858 dexLocations: []string{
859 "/apex/com.android.foo/javalib/framework-foo.jar",
860 "/apex/com.android.bar/javalib/framework-bar.jar",
861 },
862 dexLocationsDeps: []string{
863 "/apex/com.android.art/javalib/core1.jar",
864 "/apex/com.android.art/javalib/core2.jar",
865 "/system/framework/framework.jar",
866 "/apex/com.android.foo/javalib/framework-foo.jar",
867 "/apex/com.android.bar/javalib/framework-bar.jar",
868 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900869 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000870 imagePathOnDevice: "/system/framework/arm64/boot-framework-foo.art",
871 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900872 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
873 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat",
874 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000875 },
876 baseImages: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100877 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000878 },
879 baseImagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100880 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
881 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
882 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
883 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
884 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
885 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900886 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
887 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
888 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000889 },
890 installs: []normalizedInstall{
891 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900892 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000893 to: "/system/framework/arm64/boot-framework-foo.art",
894 },
895 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900896 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000897 to: "/system/framework/arm64/boot-framework-foo.oat",
898 },
899 },
900 vdexInstalls: []normalizedInstall{
901 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900902 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000903 to: "/system/framework/arm64/boot-framework-foo.vdex",
904 },
905 },
906 unstrippedInstalls: []normalizedInstall{
907 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900908 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000909 to: "/system/framework/arm64/boot-framework-foo.oat",
910 },
911 },
912 licenseMetadataFile: expectedLicenseMetadataFile,
913 },
914 {
915 archType: android.Arm,
916 dexLocations: []string{
917 "/apex/com.android.foo/javalib/framework-foo.jar",
918 "/apex/com.android.bar/javalib/framework-bar.jar",
919 },
920 dexLocationsDeps: []string{
921 "/apex/com.android.art/javalib/core1.jar",
922 "/apex/com.android.art/javalib/core2.jar",
923 "/system/framework/framework.jar",
924 "/apex/com.android.foo/javalib/framework-foo.jar",
925 "/apex/com.android.bar/javalib/framework-bar.jar",
926 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900927 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000928 imagePathOnDevice: "/system/framework/arm/boot-framework-foo.art",
929 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900930 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
931 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat",
932 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000933 },
934 baseImages: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100935 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000936 },
937 baseImagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100938 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
939 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
940 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
941 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
942 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
943 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900944 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
945 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
946 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000947 },
948 installs: []normalizedInstall{
949 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900950 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000951 to: "/system/framework/arm/boot-framework-foo.art",
952 },
953 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900954 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000955 to: "/system/framework/arm/boot-framework-foo.oat",
956 },
957 },
958 vdexInstalls: []normalizedInstall{
959 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900960 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000961 to: "/system/framework/arm/boot-framework-foo.vdex",
962 },
963 },
964 unstrippedInstalls: []normalizedInstall{
965 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900966 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000967 to: "/system/framework/arm/boot-framework-foo.oat",
968 },
969 },
970 licenseMetadataFile: expectedLicenseMetadataFile,
971 },
972 {
973 archType: android.X86_64,
974 dexLocations: []string{
975 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
976 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
977 },
978 dexLocationsDeps: []string{
979 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
980 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
981 "host/linux-x86/system/framework/framework.jar",
982 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
983 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
984 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900985 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000986 imagePathOnDevice: "/system/framework/x86_64/boot-framework-foo.art",
987 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900988 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
989 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
990 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000991 },
992 baseImages: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100993 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000994 },
995 baseImagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100996 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
997 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
998 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
999 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
1000 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
1001 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +09001002 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
1003 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
1004 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001005 },
1006 installs: []normalizedInstall{
1007 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001008 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001009 to: "/system/framework/x86_64/boot-framework-foo.art",
1010 },
1011 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001012 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001013 to: "/system/framework/x86_64/boot-framework-foo.oat",
1014 },
1015 },
1016 vdexInstalls: []normalizedInstall{
1017 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001018 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001019 to: "/system/framework/x86_64/boot-framework-foo.vdex",
1020 },
1021 },
1022 unstrippedInstalls: []normalizedInstall{
1023 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001024 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001025 to: "/system/framework/x86_64/boot-framework-foo.oat",
1026 },
1027 },
1028 licenseMetadataFile: expectedLicenseMetadataFile,
1029 },
1030 {
1031 archType: android.X86,
1032 dexLocations: []string{
1033 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
1034 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
1035 },
1036 dexLocationsDeps: []string{
1037 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
1038 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
1039 "host/linux-x86/system/framework/framework.jar",
1040 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
1041 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
1042 },
Jeongik Cha4753b392023-04-19 23:25:41 +09001043 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001044 imagePathOnDevice: "/system/framework/x86/boot-framework-foo.art",
1045 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +09001046 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
1047 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat",
1048 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001049 },
1050 baseImages: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001051 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001052 },
1053 baseImagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001054 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
1055 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
1056 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
1057 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
1058 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
1059 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +09001060 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
1061 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
1062 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001063 },
1064 installs: []normalizedInstall{
1065 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001066 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001067 to: "/system/framework/x86/boot-framework-foo.art",
1068 },
1069 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001070 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001071 to: "/system/framework/x86/boot-framework-foo.oat",
1072 },
1073 },
1074 vdexInstalls: []normalizedInstall{
1075 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001076 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001077 to: "/system/framework/x86/boot-framework-foo.vdex",
1078 },
1079 },
1080 unstrippedInstalls: []normalizedInstall{
1081 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001082 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001083 to: "/system/framework/x86/boot-framework-foo.oat",
1084 },
1085 },
1086 licenseMetadataFile: expectedLicenseMetadataFile,
1087 },
1088 },
1089 profileInstalls: []normalizedInstall{},
1090 profileLicenseMetadataFile: expectedLicenseMetadataFile,
1091 }
1092
1093 checkBootImageConfig(t, imageConfig, false, expected)
1094}
1095
Paul Duffin8eb45732022-10-04 19:03:31 +01001096// clearMutatedFields clears fields in the expectedConfig that correspond to fields in the
1097// bootImageConfig/bootImageVariant structs which are mutated outside the call to
1098// genBootImageConfigs.
1099//
1100// This allows the resulting expectedConfig struct to be compared against the values of those boot
1101// image structs immediately the call to genBootImageConfigs. If this is not called then the
1102// expectedConfig struct will expect the boot image structs to have been mutated by the ART
1103// bootclasspath_fragment and the platform_bootclasspath.
1104func clearMutatedFields(expected *expectedConfig) {
1105 expected.profileInstalls = nil
1106 expected.profileLicenseMetadataFile = ""
1107 for _, variant := range expected.variants {
1108 variant.installs = nil
1109 variant.vdexInstalls = nil
1110 variant.unstrippedInstalls = nil
1111 variant.licenseMetadataFile = ""
1112 }
1113}
1114
1115// checkBootImageConfig checks a boot image against the expected contents.
1116//
1117// If mutated is false then this will clear any mutated fields in the expected contents back to the
1118// zero value so that they will match the unmodified values in the boot image.
1119//
1120// It runs the checks in an image specific subtest of the current test.
1121func checkBootImageConfig(t *testing.T, imageConfig *bootImageConfig, mutated bool, expected *expectedConfig) {
1122 if !mutated {
1123 clearMutatedFields(expected)
1124 }
1125
1126 t.Run(imageConfig.name, func(t *testing.T) {
1127 nestedCheckBootImageConfig(t, imageConfig, expected)
1128 })
1129}
1130
1131// nestedCheckBootImageConfig does the work of comparing the image against the expected values and
1132// is run in an image specific subtest.
1133func nestedCheckBootImageConfig(t *testing.T, imageConfig *bootImageConfig, expected *expectedConfig) {
1134 android.AssertStringEquals(t, "name", expected.name, imageConfig.name)
1135 android.AssertStringEquals(t, "stem", expected.stem, imageConfig.stem)
1136 android.AssertPathRelativeToTopEquals(t, "dir", expected.dir, imageConfig.dir)
1137 android.AssertPathRelativeToTopEquals(t, "symbolsDir", expected.symbolsDir, imageConfig.symbolsDir)
Jiakai Zhang09d88df2023-05-10 17:04:53 +01001138 android.AssertStringEquals(t, "installDir", expected.installDir, imageConfig.installDir)
Paul Duffin8eb45732022-10-04 19:03:31 +01001139 android.AssertStringEquals(t, "profileInstallPathInApex", expected.profileInstallPathInApex, imageConfig.profileInstallPathInApex)
1140 android.AssertDeepEquals(t, "modules", expected.modules, imageConfig.modules)
1141 android.AssertPathsRelativeToTopEquals(t, "dexPaths", expected.dexPaths, imageConfig.dexPaths.Paths())
1142 android.AssertPathsRelativeToTopEquals(t, "dexPathsDeps", expected.dexPathsDeps, imageConfig.dexPathsDeps.Paths())
1143 // dexPathsByModule is just a different representation of the other information in the config.
1144 android.AssertPathRelativeToTopEquals(t, "zip", expected.zip, imageConfig.zip)
1145 assertInstallsEqual(t, "profileInstalls", expected.profileInstalls, imageConfig.profileInstalls)
1146 android.AssertStringEquals(t, "profileLicenseMetadataFile", expected.profileLicenseMetadataFile, imageConfig.profileLicenseMetadataFile.RelativeToTop().String())
1147
1148 android.AssertIntEquals(t, "variant count", 4, len(imageConfig.variants))
1149 for i, variant := range imageConfig.variants {
1150 expectedVariant := expected.variants[i]
1151 t.Run(variant.target.Arch.ArchType.String(), func(t *testing.T) {
1152 android.AssertDeepEquals(t, "archType", expectedVariant.archType, variant.target.Arch.ArchType)
1153 android.AssertDeepEquals(t, "dexLocations", expectedVariant.dexLocations, variant.dexLocations)
1154 android.AssertDeepEquals(t, "dexLocationsDeps", expectedVariant.dexLocationsDeps, variant.dexLocationsDeps)
1155 android.AssertPathRelativeToTopEquals(t, "imagePathOnHost", expectedVariant.imagePathOnHost, variant.imagePathOnHost)
1156 android.AssertStringEquals(t, "imagePathOnDevice", expectedVariant.imagePathOnDevice, variant.imagePathOnDevice)
1157 android.AssertPathsRelativeToTopEquals(t, "imagesDeps", expectedVariant.imagesDeps, variant.imagesDeps.Paths())
Jiakai Zhang8fe3a412023-02-23 17:37:16 +00001158 android.AssertPathsRelativeToTopEquals(t, "baseImages", expectedVariant.baseImages, variant.baseImages.Paths())
1159 android.AssertPathsRelativeToTopEquals(t, "baseImagesDeps", expectedVariant.baseImagesDeps, variant.baseImagesDeps)
Paul Duffin8eb45732022-10-04 19:03:31 +01001160 assertInstallsEqual(t, "installs", expectedVariant.installs, variant.installs)
1161 assertInstallsEqual(t, "vdexInstalls", expectedVariant.vdexInstalls, variant.vdexInstalls)
1162 assertInstallsEqual(t, "unstrippedInstalls", expectedVariant.unstrippedInstalls, variant.unstrippedInstalls)
1163 android.AssertStringEquals(t, "licenseMetadataFile", expectedVariant.licenseMetadataFile, variant.licenseMetadataFile.RelativeToTop().String())
1164 })
1165 }
1166}
1167
1168// CheckMutatedArtBootImageConfig checks the mutated fields in the bootImageConfig/Variant for ART.
1169func CheckMutatedArtBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1170 checkArtBootImageConfig(t, result, true, expectedLicenseMetadataFile)
1171
1172 // Check the dexpreopt make vars. Do it in here as it depends on the expected license metadata
1173 // file at the moment and it
1174 checkDexpreoptMakeVars(t, result, expectedLicenseMetadataFile)
1175}
1176
1177// CheckMutatedFrameworkBootImageConfig checks the mutated fields in the bootImageConfig/Variant for framework.
1178func CheckMutatedFrameworkBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1179 checkFrameworkBootImageConfig(t, result, true, expectedLicenseMetadataFile)
1180}
1181
1182// checkDexpreoptMakeVars checks the DEXPREOPT_ prefixed make vars produced by dexpreoptBootJars
1183// singleton.
1184func checkDexpreoptMakeVars(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1185 vars := result.MakeVarsForTesting(func(variable android.MakeVarVariable) bool {
1186 return strings.HasPrefix(variable.Name(), "DEXPREOPT_")
1187 })
1188
1189 out := &strings.Builder{}
1190 for _, v := range vars {
1191 fmt.Fprintf(out, "%s=%s\n", v.Name(), android.StringRelativeToTop(result.Config, v.Value()))
1192 }
1193 format := `
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001194DEXPREOPT_BOOTCLASSPATH_DEX_FILES=out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar
Paul Duffin8eb45732022-10-04 19:03:31 +01001195DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS=/apex/com.android.art/javalib/core1.jar /apex/com.android.art/javalib/core2.jar /system/framework/framework.jar
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001196DEXPREOPT_BOOT_JARS_MODULES=com.android.art:core1:com.android.art:core2:platform:framework
Paul Duffin8eb45732022-10-04 19:03:31 +01001197DEXPREOPT_GEN=out/host/linux-x86/bin/dexpreopt_gen
Jeongik Cha4753b392023-04-19 23:25:41 +09001198DEXPREOPT_IMAGE_BUILT_INSTALLED_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art:/apex/art_boot_images/javalib/arm/boot.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat:/apex/art_boot_images/javalib/arm/boot.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art:/apex/art_boot_images/javalib/arm/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat:/apex/art_boot_images/javalib/arm/boot-core2.oat
1199DEXPREOPT_IMAGE_BUILT_INSTALLED_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art:/apex/art_boot_images/javalib/arm64/boot.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat:/apex/art_boot_images/javalib/arm64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art:/apex/art_boot_images/javalib/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat:/apex/art_boot_images/javalib/arm64/boot-core2.oat
1200DEXPREOPT_IMAGE_BUILT_INSTALLED_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art:/apex/art_boot_images/javalib/x86/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat:/apex/art_boot_images/javalib/x86/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art:/apex/art_boot_images/javalib/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat:/apex/art_boot_images/javalib/x86/boot-core2.oat
1201DEXPREOPT_IMAGE_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art:/apex/art_boot_images/javalib/x86_64/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat:/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art:/apex/art_boot_images/javalib/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat:/apex/art_boot_images/javalib/x86_64/boot-core2.oat
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001202DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art:/system/framework/arm/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat:/system/framework/arm/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art:/system/framework/arm/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat:/system/framework/arm/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art:/system/framework/arm/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
1203DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art:/system/framework/arm64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat:/system/framework/arm64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art:/system/framework/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat:/system/framework/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art:/system/framework/arm64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
1204DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art:/system/framework/x86/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat:/system/framework/x86/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art:/system/framework/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat:/system/framework/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art:/system/framework/x86/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
1205DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art:/system/framework/x86_64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat:/system/framework/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art:/system/framework/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat:/system/framework/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art:/system/framework/x86_64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
Jeongik Cha4753b392023-04-19 23:25:41 +09001206DEXPREOPT_IMAGE_BUILT_INSTALLED_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art:/system/framework/arm/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat:/system/framework/arm/boot-framework-foo.oat
1207DEXPREOPT_IMAGE_BUILT_INSTALLED_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art:/system/framework/arm64/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat:/system/framework/arm64/boot-framework-foo.oat
1208DEXPREOPT_IMAGE_BUILT_INSTALLED_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art:/system/framework/x86/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat:/system/framework/x86/boot-framework-foo.oat
1209DEXPREOPT_IMAGE_BUILT_INSTALLED_mainline_host_x86_64=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art:/system/framework/x86_64/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat:/system/framework/x86_64/boot-framework-foo.oat
1210DEXPREOPT_IMAGE_DEPS_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex
1211DEXPREOPT_IMAGE_DEPS_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex
1212DEXPREOPT_IMAGE_DEPS_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex
1213DEXPREOPT_IMAGE_DEPS_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001214DEXPREOPT_IMAGE_DEPS_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex
1215DEXPREOPT_IMAGE_DEPS_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex
1216DEXPREOPT_IMAGE_DEPS_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex
1217DEXPREOPT_IMAGE_DEPS_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex
Jeongik Cha4753b392023-04-19 23:25:41 +09001218DEXPREOPT_IMAGE_DEPS_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex
1219DEXPREOPT_IMAGE_DEPS_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex
1220DEXPREOPT_IMAGE_DEPS_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex
1221DEXPREOPT_IMAGE_DEPS_mainline_host_x86_64=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex
Paul Duffin8eb45732022-10-04 19:03:31 +01001222DEXPREOPT_IMAGE_LICENSE_METADATA_art_arm=%[1]s
1223DEXPREOPT_IMAGE_LICENSE_METADATA_art_arm64=%[1]s
1224DEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86=%[1]s
1225DEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86_64=%[1]s
1226DEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1227DEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1228DEXPREOPT_IMAGE_LICENSE_METADATA_boot_host_x86=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1229DEXPREOPT_IMAGE_LICENSE_METADATA_boot_host_x86_64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
Jiakai Zhangb8796202023-03-06 19:16:48 +00001230DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1231DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1232DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1233DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86_64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
Jiakai Zhang09d88df2023-05-10 17:04:53 +01001234DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEart=/apex/art_boot_images/javalib/boot.art
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001235DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEboot=/system/framework/boot.art
1236DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEmainline=/system/framework/boot.art:/system/framework/boot-framework-foo.art
Jeongik Cha4753b392023-04-19 23:25:41 +09001237DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTart=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001238DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTboot=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot.art
1239DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTmainline=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot.art:out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/boot-framework-foo.art
Jiakai Zhangb8796202023-03-06 19:16:48 +00001240DEXPREOPT_IMAGE_NAMES=art boot mainline
Jeongik Cha4753b392023-04-19 23:25:41 +09001241DEXPREOPT_IMAGE_PROFILE_BUILT_INSTALLED=out/soong/dexpreopt_arm64/dex_bootjars/boot.bprof:/system/etc/boot-image.bprof out/soong/dexpreopt_arm64/dex_bootjars/boot.prof:/system/etc/boot-image.prof
Paul Duffin8eb45732022-10-04 19:03:31 +01001242DEXPREOPT_IMAGE_PROFILE_LICENSE_METADATA=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
Jeongik Cha4753b392023-04-19 23:25:41 +09001243DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_arm=out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot.oat:/apex/art_boot_images/javalib/arm/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot-core2.oat:/apex/art_boot_images/javalib/arm/boot-core2.oat
1244DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_arm64=out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot.oat:/apex/art_boot_images/javalib/arm64/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot-core2.oat:/apex/art_boot_images/javalib/arm64/boot-core2.oat
1245DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat:/apex/art_boot_images/javalib/x86/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat:/apex/art_boot_images/javalib/x86/boot-core2.oat
1246DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat:/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat:/apex/art_boot_images/javalib/x86_64/boot-core2.oat
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001247DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot.oat:/system/framework/arm/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-core2.oat:/system/framework/arm/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
1248DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot.oat:/system/framework/arm64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-core2.oat:/system/framework/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
1249DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot.oat:/system/framework/x86/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-core2.oat:/system/framework/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
1250DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot.oat:/system/framework/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-core2.oat:/system/framework/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
Jeongik Cha4753b392023-04-19 23:25:41 +09001251DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm/boot-framework-foo.oat:/system/framework/arm/boot-framework-foo.oat
1252DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm64/boot-framework-foo.oat:/system/framework/arm64/boot-framework-foo.oat
1253DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86/boot-framework-foo.oat:/system/framework/x86/boot-framework-foo.oat
1254DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_mainline_host_x86_64=out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86_64/boot-framework-foo.oat:/system/framework/x86_64/boot-framework-foo.oat
1255DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex:/apex/art_boot_images/javalib/arm/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex:/apex/art_boot_images/javalib/arm/boot-core2.vdex
1256DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex:/apex/art_boot_images/javalib/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex:/apex/art_boot_images/javalib/arm64/boot-core2.vdex
1257DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex:/apex/art_boot_images/javalib/x86/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex:/apex/art_boot_images/javalib/x86/boot-core2.vdex
1258DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex:/apex/art_boot_images/javalib/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex:/apex/art_boot_images/javalib/x86_64/boot-core2.vdex
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001259DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex:/system/framework/arm/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex:/system/framework/arm/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex:/system/framework/arm/boot-framework.vdex
1260DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex:/system/framework/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex:/system/framework/arm64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex:/system/framework/arm64/boot-framework.vdex
1261DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex:/system/framework/x86/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex:/system/framework/x86/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex:/system/framework/x86/boot-framework.vdex
1262DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex:/system/framework/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex:/system/framework/x86_64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex:/system/framework/x86_64/boot-framework.vdex
Jeongik Cha4753b392023-04-19 23:25:41 +09001263DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex:/system/framework/arm/boot-framework-foo.vdex
1264DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex:/system/framework/arm64/boot-framework-foo.vdex
1265DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex:/system/framework/x86/boot-framework-foo.vdex
1266DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_mainline_host_x86_64=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex:/system/framework/x86_64/boot-framework-foo.vdex
1267DEXPREOPT_IMAGE_ZIP_art=out/soong/dexpreopt_arm64/dex_artjars/art.zip
1268DEXPREOPT_IMAGE_ZIP_boot=out/soong/dexpreopt_arm64/dex_bootjars/boot.zip
1269DEXPREOPT_IMAGE_ZIP_mainline=out/soong/dexpreopt_arm64/dex_mainlinejars/mainline.zip
1270DEXPREOPT_IMAGE_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art
1271DEXPREOPT_IMAGE_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
1272DEXPREOPT_IMAGE_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art
1273DEXPREOPT_IMAGE_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001274DEXPREOPT_IMAGE_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art
1275DEXPREOPT_IMAGE_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art
1276DEXPREOPT_IMAGE_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art
1277DEXPREOPT_IMAGE_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art
Jeongik Cha4753b392023-04-19 23:25:41 +09001278DEXPREOPT_IMAGE_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art
1279DEXPREOPT_IMAGE_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art
1280DEXPREOPT_IMAGE_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art
1281DEXPREOPT_IMAGE_mainline_host_x86_64=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art
Paul Duffin8eb45732022-10-04 19:03:31 +01001282`
1283 expected := strings.TrimSpace(fmt.Sprintf(format, expectedLicenseMetadataFile))
1284 actual := strings.TrimSpace(out.String())
1285 android.AssertStringEquals(t, "vars", expected, actual)
1286}