blob: 6b98ca58c2cac5737e3f1ef6c94c037603e783e1 [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
150 installDirOnDevice string
151 installDirOnHost string
152 profileInstallPathInApex string
153 modules android.ConfiguredJarList
154 dexPaths []string
155 dexPathsDeps []string
156 zip string
157 variants []*expectedVariant
158
159 // Mutated fields
160 profileInstalls []normalizedInstall
161 profileLicenseMetadataFile string
162}
163
164// expectedVariant encapsulates the expected properties that will be set in a bootImageVariant
165//
166// Each field <x> in here is compared against the corresponding field <x> in bootImageVariant
167// except for archType which is compared against the target.Arch.ArchType field in bootImageVariant.
168type expectedVariant struct {
169 archType android.ArchType
170 dexLocations []string
171 dexLocationsDeps []string
172 imagePathOnHost string
173 imagePathOnDevice string
174 imagesDeps []string
Jiakai Zhang8fe3a412023-02-23 17:37:16 +0000175 baseImages []string
176 baseImagesDeps []string
Paul Duffin8eb45732022-10-04 19:03:31 +0100177
178 // Mutated fields
179 installs []normalizedInstall
180 vdexInstalls []normalizedInstall
181 unstrippedInstalls []normalizedInstall
182 licenseMetadataFile string
183}
184
185// CheckArtBootImageConfig checks the status of the fields of the bootImageConfig and
186// bootImageVariant structures that are returned from artBootImageConfig.
187//
188// This is before any fields are mutated.
189func CheckArtBootImageConfig(t *testing.T, result *android.TestResult) {
190 checkArtBootImageConfig(t, result, false, "")
191}
192
193// getArtImageConfig gets the ART bootImageConfig that was created during the test.
194func getArtImageConfig(result *android.TestResult) *bootImageConfig {
195 pathCtx := &android.TestPathContext{TestResult: result}
196 imageConfig := artBootImageConfig(pathCtx)
197 return imageConfig
198}
199
200// checkArtBootImageConfig checks the ART boot image.
201//
202// mutated is true if this is called after fields in the image have been mutated by the ART
203// bootclasspath_fragment and false otherwise.
204func checkArtBootImageConfig(t *testing.T, result *android.TestResult, mutated bool, expectedLicenseMetadataFile string) {
205 imageConfig := getArtImageConfig(result)
206
207 expected := &expectedConfig{
208 name: "art",
209 stem: "boot",
Jeongik Cha4753b392023-04-19 23:25:41 +0900210 dir: "out/soong/dexpreopt_arm64/dex_artjars",
211 symbolsDir: "out/soong/dexpreopt_arm64/dex_artjars_unstripped",
Paul Duffin8eb45732022-10-04 19:03:31 +0100212 installDirOnDevice: "system/framework",
213 installDirOnHost: "apex/art_boot_images/javalib",
214 profileInstallPathInApex: "etc/boot-image.prof",
215 modules: android.CreateTestConfiguredJarList([]string{"com.android.art:core1", "com.android.art:core2"}),
Jeongik Cha4753b392023-04-19 23:25:41 +0900216 dexPaths: []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar"},
217 dexPathsDeps: []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar"},
218 zip: "out/soong/dexpreopt_arm64/dex_artjars/art.zip",
Paul Duffin8eb45732022-10-04 19:03:31 +0100219 variants: []*expectedVariant{
220 {
221 archType: android.Arm64,
222 dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
223 dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
Jeongik Cha4753b392023-04-19 23:25:41 +0900224 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100225 imagePathOnDevice: "/system/framework/arm64/boot.art",
226 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900227 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
228 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
229 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
230 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
231 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
232 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100233 },
234 installs: []normalizedInstall{
235 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900236 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100237 to: "/apex/art_boot_images/javalib/arm64/boot.art",
238 },
239 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900240 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100241 to: "/apex/art_boot_images/javalib/arm64/boot.oat",
242 },
243 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900244 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100245 to: "/apex/art_boot_images/javalib/arm64/boot-core2.art",
246 },
247 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900248 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100249 to: "/apex/art_boot_images/javalib/arm64/boot-core2.oat",
250 },
251 },
252 vdexInstalls: []normalizedInstall{
253 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900254 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100255 to: "/apex/art_boot_images/javalib/arm64/boot.vdex",
256 },
257 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900258 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100259 to: "/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
260 },
261 },
262 unstrippedInstalls: []normalizedInstall{
263 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900264 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100265 to: "/apex/art_boot_images/javalib/arm64/boot.oat",
266 },
267 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900268 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 +0100269 to: "/apex/art_boot_images/javalib/arm64/boot-core2.oat",
270 },
271 },
272 licenseMetadataFile: expectedLicenseMetadataFile,
273 },
274 {
275 archType: android.Arm,
276 dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
277 dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
Jeongik Cha4753b392023-04-19 23:25:41 +0900278 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100279 imagePathOnDevice: "/system/framework/arm/boot.art",
280 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900281 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
282 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
283 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
284 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
285 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
286 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100287 },
288 installs: []normalizedInstall{
289 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900290 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100291 to: "/apex/art_boot_images/javalib/arm/boot.art",
292 },
293 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900294 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100295 to: "/apex/art_boot_images/javalib/arm/boot.oat",
296 },
297 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900298 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100299 to: "/apex/art_boot_images/javalib/arm/boot-core2.art",
300 },
301 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900302 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100303 to: "/apex/art_boot_images/javalib/arm/boot-core2.oat",
304 },
305 },
306 vdexInstalls: []normalizedInstall{
307 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900308 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100309 to: "/apex/art_boot_images/javalib/arm/boot.vdex",
310 },
311 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900312 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100313 to: "/apex/art_boot_images/javalib/arm/boot-core2.vdex",
314 },
315 },
316 unstrippedInstalls: []normalizedInstall{
317 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900318 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100319 to: "/apex/art_boot_images/javalib/arm/boot.oat",
320 },
321 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900322 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 +0100323 to: "/apex/art_boot_images/javalib/arm/boot-core2.oat",
324 },
325 },
326 licenseMetadataFile: expectedLicenseMetadataFile,
327 },
328 {
329 archType: android.X86_64,
330 dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
331 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 +0900332 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100333 imagePathOnDevice: "/system/framework/x86_64/boot.art",
334 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900335 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
336 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
337 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
338 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
339 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
340 "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 +0100341 },
342 installs: []normalizedInstall{
343 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900344 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 +0100345 to: "/apex/art_boot_images/javalib/x86_64/boot.art",
346 }, {
Jeongik Cha4753b392023-04-19 23:25:41 +0900347 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 +0100348 to: "/apex/art_boot_images/javalib/x86_64/boot.oat",
349 },
350 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900351 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 +0100352 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.art",
353 }, {
Jeongik Cha4753b392023-04-19 23:25:41 +0900354 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 +0100355 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
356 },
357 },
358 vdexInstalls: []normalizedInstall{
359 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900360 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 +0100361 to: "/apex/art_boot_images/javalib/x86_64/boot.vdex",
362 },
363 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900364 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 +0100365 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
366 },
367 },
368 unstrippedInstalls: []normalizedInstall{
369 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900370 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 +0100371 to: "/apex/art_boot_images/javalib/x86_64/boot.oat",
372 },
373 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900374 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 +0100375 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
376 },
377 },
378 licenseMetadataFile: expectedLicenseMetadataFile,
379 },
380 {
381 archType: android.X86,
382 dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
383 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 +0900384 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100385 imagePathOnDevice: "/system/framework/x86/boot.art",
386 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900387 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
388 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
389 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
390 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
391 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
392 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100393 },
394 installs: []normalizedInstall{
395 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900396 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100397 to: "/apex/art_boot_images/javalib/x86/boot.art",
398 }, {
Jeongik Cha4753b392023-04-19 23:25:41 +0900399 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100400 to: "/apex/art_boot_images/javalib/x86/boot.oat",
401 },
402 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900403 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 +0100404 to: "/apex/art_boot_images/javalib/x86/boot-core2.art",
405 }, {
Jeongik Cha4753b392023-04-19 23:25:41 +0900406 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 +0100407 to: "/apex/art_boot_images/javalib/x86/boot-core2.oat",
408 },
409 },
410 vdexInstalls: []normalizedInstall{
411 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900412 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100413 to: "/apex/art_boot_images/javalib/x86/boot.vdex",
414 },
415 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900416 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 +0100417 to: "/apex/art_boot_images/javalib/x86/boot-core2.vdex",
418 },
419 },
420 unstrippedInstalls: []normalizedInstall{
421 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900422 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 +0100423 to: "/apex/art_boot_images/javalib/x86/boot.oat",
424 },
425 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900426 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 +0100427 to: "/apex/art_boot_images/javalib/x86/boot-core2.oat",
428 },
429 },
430 licenseMetadataFile: expectedLicenseMetadataFile,
431 },
432 },
433 }
434
435 checkBootImageConfig(t, imageConfig, mutated, expected)
436}
437
438// getFrameworkImageConfig gets the framework bootImageConfig that was created during the test.
439func getFrameworkImageConfig(result *android.TestResult) *bootImageConfig {
440 pathCtx := &android.TestPathContext{TestResult: result}
441 imageConfig := defaultBootImageConfig(pathCtx)
442 return imageConfig
443}
444
445// CheckFrameworkBootImageConfig checks the status of the fields of the bootImageConfig and
446// bootImageVariant structures that are returned from defaultBootImageConfig.
447//
448// This is before any fields are mutated.
449func CheckFrameworkBootImageConfig(t *testing.T, result *android.TestResult) {
450 checkFrameworkBootImageConfig(t, result, false, "")
451}
452
453// checkFrameworkBootImageConfig checks the framework boot image.
454//
455// mutated is true if this is called after fields in the image have been mutated by the
456// platform_bootclasspath and false otherwise.
457func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mutated bool, expectedLicenseMetadataFile string) {
458 imageConfig := getFrameworkImageConfig(result)
459
460 expected := &expectedConfig{
461 name: "boot",
462 stem: "boot",
Jeongik Cha4753b392023-04-19 23:25:41 +0900463 dir: "out/soong/dexpreopt_arm64/dex_bootjars",
464 symbolsDir: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped",
Paul Duffin8eb45732022-10-04 19:03:31 +0100465 installDirOnDevice: "system/framework",
466 installDirOnHost: "system/framework",
467 profileInstallPathInApex: "",
468 modules: android.CreateTestConfiguredJarList([]string{"platform:framework"}),
Jeongik Cha4753b392023-04-19 23:25:41 +0900469 dexPaths: []string{"out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar"},
470 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"},
471 zip: "out/soong/dexpreopt_arm64/dex_bootjars/boot.zip",
Paul Duffin8eb45732022-10-04 19:03:31 +0100472 variants: []*expectedVariant{
473 {
474 archType: android.Arm64,
475 dexLocations: []string{"/system/framework/framework.jar"},
476 dexLocationsDeps: []string{
477 "/apex/com.android.art/javalib/core1.jar",
478 "/apex/com.android.art/javalib/core2.jar",
479 "/system/framework/framework.jar",
480 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900481 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100482 imagePathOnDevice: "/system/framework/arm64/boot-framework.art",
483 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900484 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
485 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
486 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100487 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900488 baseImages: []string{"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art"},
Jiakai Zhang8fe3a412023-02-23 17:37:16 +0000489 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900490 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
491 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
492 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
493 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
494 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
495 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100496 },
497 installs: []normalizedInstall{
498 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900499 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100500 to: "/system/framework/arm64/boot-framework.art",
501 },
502 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900503 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100504 to: "/system/framework/arm64/boot-framework.oat",
505 },
506 },
507 vdexInstalls: []normalizedInstall{
508 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900509 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100510 to: "/system/framework/arm64/boot-framework.vdex",
511 },
512 },
513 unstrippedInstalls: []normalizedInstall{
514 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900515 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100516 to: "/system/framework/arm64/boot-framework.oat",
517 },
518 },
519 licenseMetadataFile: expectedLicenseMetadataFile,
520 },
521 {
522 archType: android.Arm,
523 dexLocations: []string{"/system/framework/framework.jar"},
524 dexLocationsDeps: []string{
525 "/apex/com.android.art/javalib/core1.jar",
526 "/apex/com.android.art/javalib/core2.jar",
527 "/system/framework/framework.jar",
528 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900529 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100530 imagePathOnDevice: "/system/framework/arm/boot-framework.art",
531 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900532 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
533 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
534 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100535 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900536 baseImages: []string{"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art"},
Jiakai Zhang8fe3a412023-02-23 17:37:16 +0000537 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900538 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
539 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
540 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
541 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
542 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
543 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100544 },
545 installs: []normalizedInstall{
546 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900547 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100548 to: "/system/framework/arm/boot-framework.art",
549 },
550 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900551 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100552 to: "/system/framework/arm/boot-framework.oat",
553 },
554 },
555 vdexInstalls: []normalizedInstall{
556 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900557 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100558 to: "/system/framework/arm/boot-framework.vdex",
559 },
560 },
561 unstrippedInstalls: []normalizedInstall{
562 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900563 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100564 to: "/system/framework/arm/boot-framework.oat",
565 },
566 },
567 licenseMetadataFile: expectedLicenseMetadataFile,
568 },
569 {
570 archType: android.X86_64,
571 dexLocations: []string{"host/linux-x86/system/framework/framework.jar"},
572 dexLocationsDeps: []string{
573 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
574 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
575 "host/linux-x86/system/framework/framework.jar",
576 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900577 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100578 imagePathOnDevice: "/system/framework/x86_64/boot-framework.art",
579 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900580 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
581 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
582 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100583 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900584 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 +0000585 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900586 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
587 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
588 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
589 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
590 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
591 "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 +0100592 },
593 installs: []normalizedInstall{
594 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900595 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100596 to: "/system/framework/x86_64/boot-framework.art",
597 },
598 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900599 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100600 to: "/system/framework/x86_64/boot-framework.oat",
601 },
602 },
603 vdexInstalls: []normalizedInstall{
604 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900605 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100606 to: "/system/framework/x86_64/boot-framework.vdex",
607 },
608 },
609 unstrippedInstalls: []normalizedInstall{
610 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900611 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100612 to: "/system/framework/x86_64/boot-framework.oat",
613 },
614 },
615 licenseMetadataFile: expectedLicenseMetadataFile,
616 },
617 {
618 archType: android.X86,
619 dexLocations: []string{"host/linux-x86/system/framework/framework.jar"},
620 dexLocationsDeps: []string{
621 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
622 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
623 "host/linux-x86/system/framework/framework.jar",
624 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900625 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100626 imagePathOnDevice: "/system/framework/x86/boot-framework.art",
627 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900628 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
629 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
630 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100631 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900632 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 +0000633 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900634 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
635 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
636 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
637 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
638 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
639 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100640 },
641 installs: []normalizedInstall{
642 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900643 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100644 to: "/system/framework/x86/boot-framework.art",
645 },
646 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900647 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100648 to: "/system/framework/x86/boot-framework.oat",
649 },
650 },
651 vdexInstalls: []normalizedInstall{
652 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900653 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100654 to: "/system/framework/x86/boot-framework.vdex",
655 },
656 },
657 unstrippedInstalls: []normalizedInstall{
658 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900659 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100660 to: "/system/framework/x86/boot-framework.oat",
661 },
662 },
663 licenseMetadataFile: expectedLicenseMetadataFile,
664 },
665 },
666 profileInstalls: []normalizedInstall{
Jeongik Cha4753b392023-04-19 23:25:41 +0900667 {from: "out/soong/dexpreopt_arm64/dex_bootjars/boot.bprof", to: "/system/etc/boot-image.bprof"},
668 {from: "out/soong/dexpreopt_arm64/dex_bootjars/boot.prof", to: "/system/etc/boot-image.prof"},
Paul Duffin8eb45732022-10-04 19:03:31 +0100669 },
670 profileLicenseMetadataFile: expectedLicenseMetadataFile,
671 }
672
673 checkBootImageConfig(t, imageConfig, mutated, expected)
674}
675
Jiakai Zhangb8796202023-03-06 19:16:48 +0000676// getMainlineImageConfig gets the framework bootImageConfig that was created during the test.
677func getMainlineImageConfig(result *android.TestResult) *bootImageConfig {
678 pathCtx := &android.TestPathContext{TestResult: result}
679 imageConfig := mainlineBootImageConfig(pathCtx)
680 return imageConfig
681}
682
683// CheckMainlineBootImageConfig checks the status of the fields of the bootImageConfig and
684// bootImageVariant structures that are returned from mainlineBootImageConfig.
685//
686// This is before any fields are mutated.
687func CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
688 expectedLicenseMetadataFile := ""
689 imageConfig := getMainlineImageConfig(result)
690
691 expected := &expectedConfig{
692 name: "mainline",
693 stem: "boot",
Jeongik Cha4753b392023-04-19 23:25:41 +0900694 dir: "out/soong/dexpreopt_arm64/dex_mainlinejars",
695 symbolsDir: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000696 installDirOnDevice: "system/framework",
697 installDirOnHost: "system/framework",
698 profileInstallPathInApex: "",
699 modules: android.CreateTestConfiguredJarList([]string{
700 "com.android.foo:framework-foo",
701 "com.android.bar:framework-bar",
702 }),
703 dexPaths: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900704 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
705 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000706 },
707 dexPathsDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900708 "out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar",
709 "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar",
710 "out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
711 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
712 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000713 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900714 zip: "out/soong/dexpreopt_arm64/dex_mainlinejars/mainline.zip",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000715 variants: []*expectedVariant{
716 {
717 archType: android.Arm64,
718 dexLocations: []string{
719 "/apex/com.android.foo/javalib/framework-foo.jar",
720 "/apex/com.android.bar/javalib/framework-bar.jar",
721 },
722 dexLocationsDeps: []string{
723 "/apex/com.android.art/javalib/core1.jar",
724 "/apex/com.android.art/javalib/core2.jar",
725 "/system/framework/framework.jar",
726 "/apex/com.android.foo/javalib/framework-foo.jar",
727 "/apex/com.android.bar/javalib/framework-bar.jar",
728 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900729 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000730 imagePathOnDevice: "/system/framework/arm64/boot-framework-foo.art",
731 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900732 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
733 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat",
734 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000735 },
736 baseImages: []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_bootjars/android/system/framework/arm64/boot-framework.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000739 },
740 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900741 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
742 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
743 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
744 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
745 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
746 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
747 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
748 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
749 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000750 },
751 installs: []normalizedInstall{
752 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900753 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000754 to: "/system/framework/arm64/boot-framework-foo.art",
755 },
756 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900757 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000758 to: "/system/framework/arm64/boot-framework-foo.oat",
759 },
760 },
761 vdexInstalls: []normalizedInstall{
762 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900763 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000764 to: "/system/framework/arm64/boot-framework-foo.vdex",
765 },
766 },
767 unstrippedInstalls: []normalizedInstall{
768 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900769 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000770 to: "/system/framework/arm64/boot-framework-foo.oat",
771 },
772 },
773 licenseMetadataFile: expectedLicenseMetadataFile,
774 },
775 {
776 archType: android.Arm,
777 dexLocations: []string{
778 "/apex/com.android.foo/javalib/framework-foo.jar",
779 "/apex/com.android.bar/javalib/framework-bar.jar",
780 },
781 dexLocationsDeps: []string{
782 "/apex/com.android.art/javalib/core1.jar",
783 "/apex/com.android.art/javalib/core2.jar",
784 "/system/framework/framework.jar",
785 "/apex/com.android.foo/javalib/framework-foo.jar",
786 "/apex/com.android.bar/javalib/framework-bar.jar",
787 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900788 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000789 imagePathOnDevice: "/system/framework/arm/boot-framework-foo.art",
790 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900791 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
792 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat",
793 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000794 },
795 baseImages: []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_bootjars/android/system/framework/arm/boot-framework.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000798 },
799 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900800 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
801 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
802 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
803 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
804 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
805 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
806 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
807 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
808 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000809 },
810 installs: []normalizedInstall{
811 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900812 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000813 to: "/system/framework/arm/boot-framework-foo.art",
814 },
815 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900816 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000817 to: "/system/framework/arm/boot-framework-foo.oat",
818 },
819 },
820 vdexInstalls: []normalizedInstall{
821 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900822 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000823 to: "/system/framework/arm/boot-framework-foo.vdex",
824 },
825 },
826 unstrippedInstalls: []normalizedInstall{
827 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900828 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000829 to: "/system/framework/arm/boot-framework-foo.oat",
830 },
831 },
832 licenseMetadataFile: expectedLicenseMetadataFile,
833 },
834 {
835 archType: android.X86_64,
836 dexLocations: []string{
837 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
838 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
839 },
840 dexLocationsDeps: []string{
841 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
842 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
843 "host/linux-x86/system/framework/framework.jar",
844 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
845 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
846 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900847 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000848 imagePathOnDevice: "/system/framework/x86_64/boot-framework-foo.art",
849 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900850 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
851 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
852 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000853 },
854 baseImages: []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_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000857 },
858 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900859 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
860 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
861 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
862 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
863 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
864 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
865 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
866 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
867 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000868 },
869 installs: []normalizedInstall{
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.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000872 to: "/system/framework/x86_64/boot-framework-foo.art",
873 },
874 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900875 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000876 to: "/system/framework/x86_64/boot-framework-foo.oat",
877 },
878 },
879 vdexInstalls: []normalizedInstall{
880 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900881 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000882 to: "/system/framework/x86_64/boot-framework-foo.vdex",
883 },
884 },
885 unstrippedInstalls: []normalizedInstall{
886 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900887 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 +0000888 to: "/system/framework/x86_64/boot-framework-foo.oat",
889 },
890 },
891 licenseMetadataFile: expectedLicenseMetadataFile,
892 },
893 {
894 archType: android.X86,
895 dexLocations: []string{
896 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
897 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
898 },
899 dexLocationsDeps: []string{
900 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
901 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
902 "host/linux-x86/system/framework/framework.jar",
903 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
904 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
905 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900906 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000907 imagePathOnDevice: "/system/framework/x86/boot-framework-foo.art",
908 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900909 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
910 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat",
911 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000912 },
913 baseImages: []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_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000916 },
917 baseImagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900918 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
919 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
920 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
921 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
922 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
923 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
924 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
925 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
926 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000927 },
928 installs: []normalizedInstall{
929 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900930 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000931 to: "/system/framework/x86/boot-framework-foo.art",
932 },
933 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900934 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000935 to: "/system/framework/x86/boot-framework-foo.oat",
936 },
937 },
938 vdexInstalls: []normalizedInstall{
939 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900940 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000941 to: "/system/framework/x86/boot-framework-foo.vdex",
942 },
943 },
944 unstrippedInstalls: []normalizedInstall{
945 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900946 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000947 to: "/system/framework/x86/boot-framework-foo.oat",
948 },
949 },
950 licenseMetadataFile: expectedLicenseMetadataFile,
951 },
952 },
953 profileInstalls: []normalizedInstall{},
954 profileLicenseMetadataFile: expectedLicenseMetadataFile,
955 }
956
957 checkBootImageConfig(t, imageConfig, false, expected)
958}
959
Paul Duffin8eb45732022-10-04 19:03:31 +0100960// clearMutatedFields clears fields in the expectedConfig that correspond to fields in the
961// bootImageConfig/bootImageVariant structs which are mutated outside the call to
962// genBootImageConfigs.
963//
964// This allows the resulting expectedConfig struct to be compared against the values of those boot
965// image structs immediately the call to genBootImageConfigs. If this is not called then the
966// expectedConfig struct will expect the boot image structs to have been mutated by the ART
967// bootclasspath_fragment and the platform_bootclasspath.
968func clearMutatedFields(expected *expectedConfig) {
969 expected.profileInstalls = nil
970 expected.profileLicenseMetadataFile = ""
971 for _, variant := range expected.variants {
972 variant.installs = nil
973 variant.vdexInstalls = nil
974 variant.unstrippedInstalls = nil
975 variant.licenseMetadataFile = ""
976 }
977}
978
979// checkBootImageConfig checks a boot image against the expected contents.
980//
981// If mutated is false then this will clear any mutated fields in the expected contents back to the
982// zero value so that they will match the unmodified values in the boot image.
983//
984// It runs the checks in an image specific subtest of the current test.
985func checkBootImageConfig(t *testing.T, imageConfig *bootImageConfig, mutated bool, expected *expectedConfig) {
986 if !mutated {
987 clearMutatedFields(expected)
988 }
989
990 t.Run(imageConfig.name, func(t *testing.T) {
991 nestedCheckBootImageConfig(t, imageConfig, expected)
992 })
993}
994
995// nestedCheckBootImageConfig does the work of comparing the image against the expected values and
996// is run in an image specific subtest.
997func nestedCheckBootImageConfig(t *testing.T, imageConfig *bootImageConfig, expected *expectedConfig) {
998 android.AssertStringEquals(t, "name", expected.name, imageConfig.name)
999 android.AssertStringEquals(t, "stem", expected.stem, imageConfig.stem)
1000 android.AssertPathRelativeToTopEquals(t, "dir", expected.dir, imageConfig.dir)
1001 android.AssertPathRelativeToTopEquals(t, "symbolsDir", expected.symbolsDir, imageConfig.symbolsDir)
1002 android.AssertStringEquals(t, "installDirOnDevice", expected.installDirOnDevice, imageConfig.installDirOnDevice)
1003 android.AssertStringEquals(t, "installDirOnHost", expected.installDirOnHost, imageConfig.installDirOnHost)
1004 android.AssertStringEquals(t, "profileInstallPathInApex", expected.profileInstallPathInApex, imageConfig.profileInstallPathInApex)
1005 android.AssertDeepEquals(t, "modules", expected.modules, imageConfig.modules)
1006 android.AssertPathsRelativeToTopEquals(t, "dexPaths", expected.dexPaths, imageConfig.dexPaths.Paths())
1007 android.AssertPathsRelativeToTopEquals(t, "dexPathsDeps", expected.dexPathsDeps, imageConfig.dexPathsDeps.Paths())
1008 // dexPathsByModule is just a different representation of the other information in the config.
1009 android.AssertPathRelativeToTopEquals(t, "zip", expected.zip, imageConfig.zip)
1010 assertInstallsEqual(t, "profileInstalls", expected.profileInstalls, imageConfig.profileInstalls)
1011 android.AssertStringEquals(t, "profileLicenseMetadataFile", expected.profileLicenseMetadataFile, imageConfig.profileLicenseMetadataFile.RelativeToTop().String())
1012
1013 android.AssertIntEquals(t, "variant count", 4, len(imageConfig.variants))
1014 for i, variant := range imageConfig.variants {
1015 expectedVariant := expected.variants[i]
1016 t.Run(variant.target.Arch.ArchType.String(), func(t *testing.T) {
1017 android.AssertDeepEquals(t, "archType", expectedVariant.archType, variant.target.Arch.ArchType)
1018 android.AssertDeepEquals(t, "dexLocations", expectedVariant.dexLocations, variant.dexLocations)
1019 android.AssertDeepEquals(t, "dexLocationsDeps", expectedVariant.dexLocationsDeps, variant.dexLocationsDeps)
1020 android.AssertPathRelativeToTopEquals(t, "imagePathOnHost", expectedVariant.imagePathOnHost, variant.imagePathOnHost)
1021 android.AssertStringEquals(t, "imagePathOnDevice", expectedVariant.imagePathOnDevice, variant.imagePathOnDevice)
1022 android.AssertPathsRelativeToTopEquals(t, "imagesDeps", expectedVariant.imagesDeps, variant.imagesDeps.Paths())
Jiakai Zhang8fe3a412023-02-23 17:37:16 +00001023 android.AssertPathsRelativeToTopEquals(t, "baseImages", expectedVariant.baseImages, variant.baseImages.Paths())
1024 android.AssertPathsRelativeToTopEquals(t, "baseImagesDeps", expectedVariant.baseImagesDeps, variant.baseImagesDeps)
Paul Duffin8eb45732022-10-04 19:03:31 +01001025 assertInstallsEqual(t, "installs", expectedVariant.installs, variant.installs)
1026 assertInstallsEqual(t, "vdexInstalls", expectedVariant.vdexInstalls, variant.vdexInstalls)
1027 assertInstallsEqual(t, "unstrippedInstalls", expectedVariant.unstrippedInstalls, variant.unstrippedInstalls)
1028 android.AssertStringEquals(t, "licenseMetadataFile", expectedVariant.licenseMetadataFile, variant.licenseMetadataFile.RelativeToTop().String())
1029 })
1030 }
1031}
1032
1033// CheckMutatedArtBootImageConfig checks the mutated fields in the bootImageConfig/Variant for ART.
1034func CheckMutatedArtBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1035 checkArtBootImageConfig(t, result, true, expectedLicenseMetadataFile)
1036
1037 // Check the dexpreopt make vars. Do it in here as it depends on the expected license metadata
1038 // file at the moment and it
1039 checkDexpreoptMakeVars(t, result, expectedLicenseMetadataFile)
1040}
1041
1042// CheckMutatedFrameworkBootImageConfig checks the mutated fields in the bootImageConfig/Variant for framework.
1043func CheckMutatedFrameworkBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1044 checkFrameworkBootImageConfig(t, result, true, expectedLicenseMetadataFile)
1045}
1046
1047// checkDexpreoptMakeVars checks the DEXPREOPT_ prefixed make vars produced by dexpreoptBootJars
1048// singleton.
1049func checkDexpreoptMakeVars(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1050 vars := result.MakeVarsForTesting(func(variable android.MakeVarVariable) bool {
1051 return strings.HasPrefix(variable.Name(), "DEXPREOPT_")
1052 })
1053
1054 out := &strings.Builder{}
1055 for _, v := range vars {
1056 fmt.Fprintf(out, "%s=%s\n", v.Name(), android.StringRelativeToTop(result.Config, v.Value()))
1057 }
1058 format := `
Jeongik Cha4753b392023-04-19 23:25:41 +09001059DEXPREOPT_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 +01001060DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS=/apex/com.android.art/javalib/core1.jar /apex/com.android.art/javalib/core2.jar /system/framework/framework.jar
1061DEXPREOPT_BOOT_JARS_MODULES=platform:framework
1062DEXPREOPT_GEN=out/host/linux-x86/bin/dexpreopt_gen
Jeongik Cha4753b392023-04-19 23:25:41 +09001063DEXPREOPT_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
1064DEXPREOPT_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
1065DEXPREOPT_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
1066DEXPREOPT_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
1067DEXPREOPT_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
1068DEXPREOPT_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
1069DEXPREOPT_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
1070DEXPREOPT_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
1071DEXPREOPT_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
1072DEXPREOPT_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
1073DEXPREOPT_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
1074DEXPREOPT_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
1075DEXPREOPT_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
1076DEXPREOPT_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
1077DEXPREOPT_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
1078DEXPREOPT_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
1079DEXPREOPT_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
1080DEXPREOPT_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
1081DEXPREOPT_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
1082DEXPREOPT_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
1083DEXPREOPT_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
1084DEXPREOPT_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
1085DEXPREOPT_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
1086DEXPREOPT_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 +01001087DEXPREOPT_IMAGE_LICENSE_METADATA_art_arm=%[1]s
1088DEXPREOPT_IMAGE_LICENSE_METADATA_art_arm64=%[1]s
1089DEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86=%[1]s
1090DEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86_64=%[1]s
1091DEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1092DEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1093DEXPREOPT_IMAGE_LICENSE_METADATA_boot_host_x86=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1094DEXPREOPT_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 +00001095DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1096DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1097DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
1098DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86_64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
Paul Duffin8eb45732022-10-04 19:03:31 +01001099DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEart=/system/framework/boot.art
1100DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEboot=/system/framework/boot.art:/system/framework/boot-framework.art
Jiakai Zhangb8796202023-03-06 19:16:48 +00001101DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEmainline=/system/framework/boot.art:/system/framework/boot-framework.art:/system/framework/boot-framework-foo.art
Jeongik Cha4753b392023-04-19 23:25:41 +09001102DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTart=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art
1103DEXPREOPT_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
1104DEXPREOPT_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 +00001105DEXPREOPT_IMAGE_NAMES=art boot mainline
Jeongik Cha4753b392023-04-19 23:25:41 +09001106DEXPREOPT_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 +01001107DEXPREOPT_IMAGE_PROFILE_LICENSE_METADATA=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
Jeongik Cha4753b392023-04-19 23:25:41 +09001108DEXPREOPT_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
1109DEXPREOPT_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
1110DEXPREOPT_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
1111DEXPREOPT_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
1112DEXPREOPT_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
1113DEXPREOPT_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
1114DEXPREOPT_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
1115DEXPREOPT_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
1116DEXPREOPT_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
1117DEXPREOPT_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
1118DEXPREOPT_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
1119DEXPREOPT_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
1120DEXPREOPT_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
1121DEXPREOPT_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
1122DEXPREOPT_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
1123DEXPREOPT_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
1124DEXPREOPT_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
1125DEXPREOPT_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
1126DEXPREOPT_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
1127DEXPREOPT_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
1128DEXPREOPT_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
1129DEXPREOPT_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
1130DEXPREOPT_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
1131DEXPREOPT_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
1132DEXPREOPT_IMAGE_ZIP_art=out/soong/dexpreopt_arm64/dex_artjars/art.zip
1133DEXPREOPT_IMAGE_ZIP_boot=out/soong/dexpreopt_arm64/dex_bootjars/boot.zip
1134DEXPREOPT_IMAGE_ZIP_mainline=out/soong/dexpreopt_arm64/dex_mainlinejars/mainline.zip
1135DEXPREOPT_IMAGE_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art
1136DEXPREOPT_IMAGE_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
1137DEXPREOPT_IMAGE_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art
1138DEXPREOPT_IMAGE_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art
1139DEXPREOPT_IMAGE_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art
1140DEXPREOPT_IMAGE_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art
1141DEXPREOPT_IMAGE_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art
1142DEXPREOPT_IMAGE_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art
1143DEXPREOPT_IMAGE_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art
1144DEXPREOPT_IMAGE_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art
1145DEXPREOPT_IMAGE_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art
1146DEXPREOPT_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 +01001147`
1148 expected := strings.TrimSpace(fmt.Sprintf(format, expectedLicenseMetadataFile))
1149 actual := strings.TrimSpace(out.String())
1150 android.AssertStringEquals(t, "vars", expected, actual)
1151}