blob: 3ee3bd5538f3a8484e65b954b05d3789eb7b9ff6 [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: "",
465 modules: android.CreateTestConfiguredJarList([]string{"platform:framework"}),
Jeongik Cha4753b392023-04-19 23:25:41 +0900466 dexPaths: []string{"out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar"},
467 dexPathsDeps: []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar", "out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar"},
468 zip: "out/soong/dexpreopt_arm64/dex_bootjars/boot.zip",
Paul Duffin8eb45732022-10-04 19:03:31 +0100469 variants: []*expectedVariant{
470 {
471 archType: android.Arm64,
472 dexLocations: []string{"/system/framework/framework.jar"},
473 dexLocationsDeps: []string{
474 "/apex/com.android.art/javalib/core1.jar",
475 "/apex/com.android.art/javalib/core2.jar",
476 "/system/framework/framework.jar",
477 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900478 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100479 imagePathOnDevice: "/system/framework/arm64/boot-framework.art",
480 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900481 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
482 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
483 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100484 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900485 baseImages: []string{"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art"},
Jiakai Zhang8fe3a412023-02-23 17:37:16 +0000486 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900487 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
488 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
489 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
490 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
491 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
492 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100493 },
494 installs: []normalizedInstall{
495 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900496 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100497 to: "/system/framework/arm64/boot-framework.art",
498 },
499 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900500 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100501 to: "/system/framework/arm64/boot-framework.oat",
502 },
503 },
504 vdexInstalls: []normalizedInstall{
505 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900506 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100507 to: "/system/framework/arm64/boot-framework.vdex",
508 },
509 },
510 unstrippedInstalls: []normalizedInstall{
511 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900512 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100513 to: "/system/framework/arm64/boot-framework.oat",
514 },
515 },
516 licenseMetadataFile: expectedLicenseMetadataFile,
517 },
518 {
519 archType: android.Arm,
520 dexLocations: []string{"/system/framework/framework.jar"},
521 dexLocationsDeps: []string{
522 "/apex/com.android.art/javalib/core1.jar",
523 "/apex/com.android.art/javalib/core2.jar",
524 "/system/framework/framework.jar",
525 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900526 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100527 imagePathOnDevice: "/system/framework/arm/boot-framework.art",
528 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900529 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
530 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
531 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100532 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900533 baseImages: []string{"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art"},
Jiakai Zhang8fe3a412023-02-23 17:37:16 +0000534 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900535 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
536 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
537 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
538 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
539 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
540 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100541 },
542 installs: []normalizedInstall{
543 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900544 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100545 to: "/system/framework/arm/boot-framework.art",
546 },
547 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900548 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100549 to: "/system/framework/arm/boot-framework.oat",
550 },
551 },
552 vdexInstalls: []normalizedInstall{
553 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900554 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100555 to: "/system/framework/arm/boot-framework.vdex",
556 },
557 },
558 unstrippedInstalls: []normalizedInstall{
559 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900560 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100561 to: "/system/framework/arm/boot-framework.oat",
562 },
563 },
564 licenseMetadataFile: expectedLicenseMetadataFile,
565 },
566 {
567 archType: android.X86_64,
568 dexLocations: []string{"host/linux-x86/system/framework/framework.jar"},
569 dexLocationsDeps: []string{
570 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
571 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
572 "host/linux-x86/system/framework/framework.jar",
573 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900574 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100575 imagePathOnDevice: "/system/framework/x86_64/boot-framework.art",
576 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900577 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
578 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
579 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100580 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900581 baseImages: []string{"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art"},
Jiakai Zhang8fe3a412023-02-23 17:37:16 +0000582 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900583 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
584 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
585 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
586 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
587 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
588 "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 +0100589 },
590 installs: []normalizedInstall{
591 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900592 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100593 to: "/system/framework/x86_64/boot-framework.art",
594 },
595 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900596 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100597 to: "/system/framework/x86_64/boot-framework.oat",
598 },
599 },
600 vdexInstalls: []normalizedInstall{
601 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900602 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100603 to: "/system/framework/x86_64/boot-framework.vdex",
604 },
605 },
606 unstrippedInstalls: []normalizedInstall{
607 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900608 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100609 to: "/system/framework/x86_64/boot-framework.oat",
610 },
611 },
612 licenseMetadataFile: expectedLicenseMetadataFile,
613 },
614 {
615 archType: android.X86,
616 dexLocations: []string{"host/linux-x86/system/framework/framework.jar"},
617 dexLocationsDeps: []string{
618 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
619 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
620 "host/linux-x86/system/framework/framework.jar",
621 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900622 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100623 imagePathOnDevice: "/system/framework/x86/boot-framework.art",
624 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900625 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
626 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
627 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100628 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900629 baseImages: []string{"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art"},
Jiakai Zhang8fe3a412023-02-23 17:37:16 +0000630 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900631 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
632 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
633 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
634 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
635 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
636 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100637 },
638 installs: []normalizedInstall{
639 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900640 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100641 to: "/system/framework/x86/boot-framework.art",
642 },
643 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900644 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100645 to: "/system/framework/x86/boot-framework.oat",
646 },
647 },
648 vdexInstalls: []normalizedInstall{
649 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900650 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100651 to: "/system/framework/x86/boot-framework.vdex",
652 },
653 },
654 unstrippedInstalls: []normalizedInstall{
655 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900656 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100657 to: "/system/framework/x86/boot-framework.oat",
658 },
659 },
660 licenseMetadataFile: expectedLicenseMetadataFile,
661 },
662 },
663 profileInstalls: []normalizedInstall{
Jeongik Cha4753b392023-04-19 23:25:41 +0900664 {from: "out/soong/dexpreopt_arm64/dex_bootjars/boot.bprof", to: "/system/etc/boot-image.bprof"},
665 {from: "out/soong/dexpreopt_arm64/dex_bootjars/boot.prof", to: "/system/etc/boot-image.prof"},
Paul Duffin8eb45732022-10-04 19:03:31 +0100666 },
667 profileLicenseMetadataFile: expectedLicenseMetadataFile,
668 }
669
670 checkBootImageConfig(t, imageConfig, mutated, expected)
671}
672
Jiakai Zhangb8796202023-03-06 19:16:48 +0000673// getMainlineImageConfig gets the framework bootImageConfig that was created during the test.
674func getMainlineImageConfig(result *android.TestResult) *bootImageConfig {
675 pathCtx := &android.TestPathContext{TestResult: result}
676 imageConfig := mainlineBootImageConfig(pathCtx)
677 return imageConfig
678}
679
680// CheckMainlineBootImageConfig checks the status of the fields of the bootImageConfig and
681// bootImageVariant structures that are returned from mainlineBootImageConfig.
682//
683// This is before any fields are mutated.
684func CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
685 expectedLicenseMetadataFile := ""
686 imageConfig := getMainlineImageConfig(result)
687
688 expected := &expectedConfig{
689 name: "mainline",
690 stem: "boot",
Jeongik Cha4753b392023-04-19 23:25:41 +0900691 dir: "out/soong/dexpreopt_arm64/dex_mainlinejars",
692 symbolsDir: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100693 installDir: "system/framework",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000694 profileInstallPathInApex: "",
695 modules: android.CreateTestConfiguredJarList([]string{
696 "com.android.foo:framework-foo",
697 "com.android.bar:framework-bar",
698 }),
699 dexPaths: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900700 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
701 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000702 },
703 dexPathsDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900704 "out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar",
705 "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar",
706 "out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
707 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
708 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000709 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900710 zip: "out/soong/dexpreopt_arm64/dex_mainlinejars/mainline.zip",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000711 variants: []*expectedVariant{
712 {
713 archType: android.Arm64,
714 dexLocations: []string{
715 "/apex/com.android.foo/javalib/framework-foo.jar",
716 "/apex/com.android.bar/javalib/framework-bar.jar",
717 },
718 dexLocationsDeps: []string{
719 "/apex/com.android.art/javalib/core1.jar",
720 "/apex/com.android.art/javalib/core2.jar",
721 "/system/framework/framework.jar",
722 "/apex/com.android.foo/javalib/framework-foo.jar",
723 "/apex/com.android.bar/javalib/framework-bar.jar",
724 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900725 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000726 imagePathOnDevice: "/system/framework/arm64/boot-framework-foo.art",
727 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900728 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
729 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat",
730 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000731 },
732 baseImages: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900733 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
734 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000735 },
736 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900737 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
738 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
739 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
740 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
741 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
742 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
743 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
744 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
745 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000746 },
747 installs: []normalizedInstall{
748 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900749 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000750 to: "/system/framework/arm64/boot-framework-foo.art",
751 },
752 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900753 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000754 to: "/system/framework/arm64/boot-framework-foo.oat",
755 },
756 },
757 vdexInstalls: []normalizedInstall{
758 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900759 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000760 to: "/system/framework/arm64/boot-framework-foo.vdex",
761 },
762 },
763 unstrippedInstalls: []normalizedInstall{
764 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900765 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000766 to: "/system/framework/arm64/boot-framework-foo.oat",
767 },
768 },
769 licenseMetadataFile: expectedLicenseMetadataFile,
770 },
771 {
772 archType: android.Arm,
773 dexLocations: []string{
774 "/apex/com.android.foo/javalib/framework-foo.jar",
775 "/apex/com.android.bar/javalib/framework-bar.jar",
776 },
777 dexLocationsDeps: []string{
778 "/apex/com.android.art/javalib/core1.jar",
779 "/apex/com.android.art/javalib/core2.jar",
780 "/system/framework/framework.jar",
781 "/apex/com.android.foo/javalib/framework-foo.jar",
782 "/apex/com.android.bar/javalib/framework-bar.jar",
783 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900784 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000785 imagePathOnDevice: "/system/framework/arm/boot-framework-foo.art",
786 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900787 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
788 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat",
789 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000790 },
791 baseImages: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900792 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
793 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000794 },
795 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900796 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
797 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
798 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
799 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
800 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
801 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
802 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
803 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
804 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000805 },
806 installs: []normalizedInstall{
807 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900808 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000809 to: "/system/framework/arm/boot-framework-foo.art",
810 },
811 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900812 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000813 to: "/system/framework/arm/boot-framework-foo.oat",
814 },
815 },
816 vdexInstalls: []normalizedInstall{
817 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900818 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000819 to: "/system/framework/arm/boot-framework-foo.vdex",
820 },
821 },
822 unstrippedInstalls: []normalizedInstall{
823 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900824 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000825 to: "/system/framework/arm/boot-framework-foo.oat",
826 },
827 },
828 licenseMetadataFile: expectedLicenseMetadataFile,
829 },
830 {
831 archType: android.X86_64,
832 dexLocations: []string{
833 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
834 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
835 },
836 dexLocationsDeps: []string{
837 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
838 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
839 "host/linux-x86/system/framework/framework.jar",
840 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
841 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
842 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900843 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000844 imagePathOnDevice: "/system/framework/x86_64/boot-framework-foo.art",
845 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900846 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
847 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
848 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000849 },
850 baseImages: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900851 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
852 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000853 },
854 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900855 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
856 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
857 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
858 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
859 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
860 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
861 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
862 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
863 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000864 },
865 installs: []normalizedInstall{
866 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900867 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000868 to: "/system/framework/x86_64/boot-framework-foo.art",
869 },
870 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900871 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000872 to: "/system/framework/x86_64/boot-framework-foo.oat",
873 },
874 },
875 vdexInstalls: []normalizedInstall{
876 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900877 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000878 to: "/system/framework/x86_64/boot-framework-foo.vdex",
879 },
880 },
881 unstrippedInstalls: []normalizedInstall{
882 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900883 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 +0000884 to: "/system/framework/x86_64/boot-framework-foo.oat",
885 },
886 },
887 licenseMetadataFile: expectedLicenseMetadataFile,
888 },
889 {
890 archType: android.X86,
891 dexLocations: []string{
892 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
893 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
894 },
895 dexLocationsDeps: []string{
896 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
897 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
898 "host/linux-x86/system/framework/framework.jar",
899 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
900 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
901 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900902 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000903 imagePathOnDevice: "/system/framework/x86/boot-framework-foo.art",
904 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900905 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
906 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat",
907 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000908 },
909 baseImages: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900910 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
911 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000912 },
913 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900914 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
915 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
916 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
917 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
918 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
919 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
920 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
921 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
922 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000923 },
924 installs: []normalizedInstall{
925 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900926 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000927 to: "/system/framework/x86/boot-framework-foo.art",
928 },
929 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900930 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000931 to: "/system/framework/x86/boot-framework-foo.oat",
932 },
933 },
934 vdexInstalls: []normalizedInstall{
935 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900936 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000937 to: "/system/framework/x86/boot-framework-foo.vdex",
938 },
939 },
940 unstrippedInstalls: []normalizedInstall{
941 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900942 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000943 to: "/system/framework/x86/boot-framework-foo.oat",
944 },
945 },
946 licenseMetadataFile: expectedLicenseMetadataFile,
947 },
948 },
949 profileInstalls: []normalizedInstall{},
950 profileLicenseMetadataFile: expectedLicenseMetadataFile,
951 }
952
953 checkBootImageConfig(t, imageConfig, false, expected)
954}
955
Paul Duffin8eb45732022-10-04 19:03:31 +0100956// clearMutatedFields clears fields in the expectedConfig that correspond to fields in the
957// bootImageConfig/bootImageVariant structs which are mutated outside the call to
958// genBootImageConfigs.
959//
960// This allows the resulting expectedConfig struct to be compared against the values of those boot
961// image structs immediately the call to genBootImageConfigs. If this is not called then the
962// expectedConfig struct will expect the boot image structs to have been mutated by the ART
963// bootclasspath_fragment and the platform_bootclasspath.
964func clearMutatedFields(expected *expectedConfig) {
965 expected.profileInstalls = nil
966 expected.profileLicenseMetadataFile = ""
967 for _, variant := range expected.variants {
968 variant.installs = nil
969 variant.vdexInstalls = nil
970 variant.unstrippedInstalls = nil
971 variant.licenseMetadataFile = ""
972 }
973}
974
975// checkBootImageConfig checks a boot image against the expected contents.
976//
977// If mutated is false then this will clear any mutated fields in the expected contents back to the
978// zero value so that they will match the unmodified values in the boot image.
979//
980// It runs the checks in an image specific subtest of the current test.
981func checkBootImageConfig(t *testing.T, imageConfig *bootImageConfig, mutated bool, expected *expectedConfig) {
982 if !mutated {
983 clearMutatedFields(expected)
984 }
985
986 t.Run(imageConfig.name, func(t *testing.T) {
987 nestedCheckBootImageConfig(t, imageConfig, expected)
988 })
989}
990
991// nestedCheckBootImageConfig does the work of comparing the image against the expected values and
992// is run in an image specific subtest.
993func nestedCheckBootImageConfig(t *testing.T, imageConfig *bootImageConfig, expected *expectedConfig) {
994 android.AssertStringEquals(t, "name", expected.name, imageConfig.name)
995 android.AssertStringEquals(t, "stem", expected.stem, imageConfig.stem)
996 android.AssertPathRelativeToTopEquals(t, "dir", expected.dir, imageConfig.dir)
997 android.AssertPathRelativeToTopEquals(t, "symbolsDir", expected.symbolsDir, imageConfig.symbolsDir)
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100998 android.AssertStringEquals(t, "installDir", expected.installDir, imageConfig.installDir)
Paul Duffin8eb45732022-10-04 19:03:31 +0100999 android.AssertStringEquals(t, "profileInstallPathInApex", expected.profileInstallPathInApex, imageConfig.profileInstallPathInApex)
1000 android.AssertDeepEquals(t, "modules", expected.modules, imageConfig.modules)
1001 android.AssertPathsRelativeToTopEquals(t, "dexPaths", expected.dexPaths, imageConfig.dexPaths.Paths())
1002 android.AssertPathsRelativeToTopEquals(t, "dexPathsDeps", expected.dexPathsDeps, imageConfig.dexPathsDeps.Paths())
1003 // dexPathsByModule is just a different representation of the other information in the config.
1004 android.AssertPathRelativeToTopEquals(t, "zip", expected.zip, imageConfig.zip)
1005 assertInstallsEqual(t, "profileInstalls", expected.profileInstalls, imageConfig.profileInstalls)
1006 android.AssertStringEquals(t, "profileLicenseMetadataFile", expected.profileLicenseMetadataFile, imageConfig.profileLicenseMetadataFile.RelativeToTop().String())
1007
1008 android.AssertIntEquals(t, "variant count", 4, len(imageConfig.variants))
1009 for i, variant := range imageConfig.variants {
1010 expectedVariant := expected.variants[i]
1011 t.Run(variant.target.Arch.ArchType.String(), func(t *testing.T) {
1012 android.AssertDeepEquals(t, "archType", expectedVariant.archType, variant.target.Arch.ArchType)
1013 android.AssertDeepEquals(t, "dexLocations", expectedVariant.dexLocations, variant.dexLocations)
1014 android.AssertDeepEquals(t, "dexLocationsDeps", expectedVariant.dexLocationsDeps, variant.dexLocationsDeps)
1015 android.AssertPathRelativeToTopEquals(t, "imagePathOnHost", expectedVariant.imagePathOnHost, variant.imagePathOnHost)
1016 android.AssertStringEquals(t, "imagePathOnDevice", expectedVariant.imagePathOnDevice, variant.imagePathOnDevice)
1017 android.AssertPathsRelativeToTopEquals(t, "imagesDeps", expectedVariant.imagesDeps, variant.imagesDeps.Paths())
Jiakai Zhang8fe3a412023-02-23 17:37:16 +00001018 android.AssertPathsRelativeToTopEquals(t, "baseImages", expectedVariant.baseImages, variant.baseImages.Paths())
1019 android.AssertPathsRelativeToTopEquals(t, "baseImagesDeps", expectedVariant.baseImagesDeps, variant.baseImagesDeps)
Paul Duffin8eb45732022-10-04 19:03:31 +01001020 assertInstallsEqual(t, "installs", expectedVariant.installs, variant.installs)
1021 assertInstallsEqual(t, "vdexInstalls", expectedVariant.vdexInstalls, variant.vdexInstalls)
1022 assertInstallsEqual(t, "unstrippedInstalls", expectedVariant.unstrippedInstalls, variant.unstrippedInstalls)
1023 android.AssertStringEquals(t, "licenseMetadataFile", expectedVariant.licenseMetadataFile, variant.licenseMetadataFile.RelativeToTop().String())
1024 })
1025 }
1026}
1027
1028// CheckMutatedArtBootImageConfig checks the mutated fields in the bootImageConfig/Variant for ART.
1029func CheckMutatedArtBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1030 checkArtBootImageConfig(t, result, true, expectedLicenseMetadataFile)
1031
1032 // Check the dexpreopt make vars. Do it in here as it depends on the expected license metadata
1033 // file at the moment and it
1034 checkDexpreoptMakeVars(t, result, expectedLicenseMetadataFile)
1035}
1036
1037// CheckMutatedFrameworkBootImageConfig checks the mutated fields in the bootImageConfig/Variant for framework.
1038func CheckMutatedFrameworkBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1039 checkFrameworkBootImageConfig(t, result, true, expectedLicenseMetadataFile)
1040}
1041
1042// checkDexpreoptMakeVars checks the DEXPREOPT_ prefixed make vars produced by dexpreoptBootJars
1043// singleton.
1044func checkDexpreoptMakeVars(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1045 vars := result.MakeVarsForTesting(func(variable android.MakeVarVariable) bool {
1046 return strings.HasPrefix(variable.Name(), "DEXPREOPT_")
1047 })
1048
1049 out := &strings.Builder{}
1050 for _, v := range vars {
1051 fmt.Fprintf(out, "%s=%s\n", v.Name(), android.StringRelativeToTop(result.Config, v.Value()))
1052 }
1053 format := `
Jeongik Cha4753b392023-04-19 23:25:41 +09001054DEXPREOPT_BOOTCLASSPATH_DEX_FILES=out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar
Paul Duffin8eb45732022-10-04 19:03:31 +01001055DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS=/apex/com.android.art/javalib/core1.jar /apex/com.android.art/javalib/core2.jar /system/framework/framework.jar
1056DEXPREOPT_BOOT_JARS_MODULES=platform:framework
1057DEXPREOPT_GEN=out/host/linux-x86/bin/dexpreopt_gen
Jeongik Cha4753b392023-04-19 23:25:41 +09001058DEXPREOPT_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
1059DEXPREOPT_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
1060DEXPREOPT_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
1061DEXPREOPT_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
1062DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm=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
1063DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm64=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
1064DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86=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
1065DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86_64=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
1066DEXPREOPT_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
1067DEXPREOPT_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
1068DEXPREOPT_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
1069DEXPREOPT_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
1070DEXPREOPT_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
1071DEXPREOPT_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
1072DEXPREOPT_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
1073DEXPREOPT_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
1074DEXPREOPT_IMAGE_DEPS_boot_arm=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
1075DEXPREOPT_IMAGE_DEPS_boot_arm64=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
1076DEXPREOPT_IMAGE_DEPS_boot_host_x86=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
1077DEXPREOPT_IMAGE_DEPS_boot_host_x86_64=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
1078DEXPREOPT_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
1079DEXPREOPT_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
1080DEXPREOPT_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
1081DEXPREOPT_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 +01001082DEXPREOPT_IMAGE_LICENSE_METADATA_art_arm=%[1]s
1083DEXPREOPT_IMAGE_LICENSE_METADATA_art_arm64=%[1]s
1084DEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86=%[1]s
1085DEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86_64=%[1]s
1086DEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1087DEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1088DEXPREOPT_IMAGE_LICENSE_METADATA_boot_host_x86=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1089DEXPREOPT_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 +00001090DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1091DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1092DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1093DEXPREOPT_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 +01001094DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEart=/apex/art_boot_images/javalib/boot.art
1095DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEboot=/apex/art_boot_images/javalib/boot.art:/system/framework/boot-framework.art
1096DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEmainline=/apex/art_boot_images/javalib/boot.art:/system/framework/boot-framework.art:/system/framework/boot-framework-foo.art
Jeongik Cha4753b392023-04-19 23:25:41 +09001097DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTart=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art
1098DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTboot=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art:out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot-framework.art
1099DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTmainline=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art:out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot-framework.art:out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/boot-framework-foo.art
Jiakai Zhangb8796202023-03-06 19:16:48 +00001100DEXPREOPT_IMAGE_NAMES=art boot mainline
Jeongik Cha4753b392023-04-19 23:25:41 +09001101DEXPREOPT_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 +01001102DEXPREOPT_IMAGE_PROFILE_LICENSE_METADATA=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
Jeongik Cha4753b392023-04-19 23:25:41 +09001103DEXPREOPT_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
1104DEXPREOPT_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
1105DEXPREOPT_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
1106DEXPREOPT_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
1107DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
1108DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
1109DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
1110DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
1111DEXPREOPT_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
1112DEXPREOPT_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
1113DEXPREOPT_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
1114DEXPREOPT_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
1115DEXPREOPT_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
1116DEXPREOPT_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
1117DEXPREOPT_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
1118DEXPREOPT_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
1119DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex:/system/framework/arm/boot-framework.vdex
1120DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex:/system/framework/arm64/boot-framework.vdex
1121DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex:/system/framework/x86/boot-framework.vdex
1122DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex:/system/framework/x86_64/boot-framework.vdex
1123DEXPREOPT_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
1124DEXPREOPT_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
1125DEXPREOPT_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
1126DEXPREOPT_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
1127DEXPREOPT_IMAGE_ZIP_art=out/soong/dexpreopt_arm64/dex_artjars/art.zip
1128DEXPREOPT_IMAGE_ZIP_boot=out/soong/dexpreopt_arm64/dex_bootjars/boot.zip
1129DEXPREOPT_IMAGE_ZIP_mainline=out/soong/dexpreopt_arm64/dex_mainlinejars/mainline.zip
1130DEXPREOPT_IMAGE_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art
1131DEXPREOPT_IMAGE_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
1132DEXPREOPT_IMAGE_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art
1133DEXPREOPT_IMAGE_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art
1134DEXPREOPT_IMAGE_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art
1135DEXPREOPT_IMAGE_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art
1136DEXPREOPT_IMAGE_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art
1137DEXPREOPT_IMAGE_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art
1138DEXPREOPT_IMAGE_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art
1139DEXPREOPT_IMAGE_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art
1140DEXPREOPT_IMAGE_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art
1141DEXPREOPT_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 +01001142`
1143 expected := strings.TrimSpace(fmt.Sprintf(format, expectedLicenseMetadataFile))
1144 actual := strings.TrimSpace(out.String())
1145 android.AssertStringEquals(t, "vars", expected, actual)
1146}