blob: db430810ef9373242c843669d58f56c90a861516 [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,
Jiakai Zhangb69e8952023-07-11 14:31:22 +010047 PrepareApexBootJarModule("com.android.foo", "framework-foo"),
48 PrepareApexBootJarModule("com.android.bar", "framework-bar"),
Jiakai Zhangb8796202023-03-06 19:16:48 +000049)
50
51var ApexBootJarFragmentsForPlatformBootclasspath = fmt.Sprintf(`
52 {
53 apex: "%[1]s",
Jiakai Zhangb69e8952023-07-11 14:31:22 +010054 module: "%[1]s-bootclasspath-fragment",
Jiakai Zhangb8796202023-03-06 19:16:48 +000055 },
56 {
57 apex: "%[2]s",
Jiakai Zhangb69e8952023-07-11 14:31:22 +010058 module: "%[2]s-bootclasspath-fragment",
Jiakai Zhangb8796202023-03-06 19:16:48 +000059 },
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
Jiakai Zhangb69e8952023-07-11 14:31:22 +010067func PrepareApexBootJarModule(apexName string, moduleName string) android.FixturePreparer {
Jiakai Zhangb8796202023-03-06 19:16:48 +000068 moduleSourceDir := fmt.Sprintf("packages/modules/%s", apexName)
Jiakai Zhangb69e8952023-07-11 14:31:22 +010069 fragmentName := apexName+"-bootclasspath-fragment"
70 imageNameProp := ""
71 if apexName == "com.android.art" {
72 fragmentName = "art-bootclasspath-fragment"
73 imageNameProp = `image_name: "art",`
74 }
75
Jiakai Zhangb8796202023-03-06 19:16:48 +000076 return android.GroupFixturePreparers(
77 android.FixtureAddTextFile(moduleSourceDir+"/Android.bp", fmt.Sprintf(`
78 apex {
79 name: "%[1]s",
80 key: "%[1]s.key",
81 bootclasspath_fragments: [
Jiakai Zhangb69e8952023-07-11 14:31:22 +010082 "%[3]s",
Jiakai Zhangb8796202023-03-06 19:16:48 +000083 ],
84 updatable: false,
85 }
86
87 apex_key {
88 name: "%[1]s.key",
89 public_key: "%[1]s.avbpubkey",
90 private_key: "%[1]s.pem",
91 }
92
93 bootclasspath_fragment {
Jiakai Zhangb69e8952023-07-11 14:31:22 +010094 name: "%[3]s",
95 %[4]s
Jiakai Zhangb8796202023-03-06 19:16:48 +000096 contents: ["%[2]s"],
97 apex_available: ["%[1]s"],
98 hidden_api: {
99 split_packages: ["*"],
100 },
101 }
102
103 java_library {
104 name: "%[2]s",
105 srcs: ["%[2]s.java"],
106 system_modules: "none",
107 sdk_version: "none",
108 compile_dex: true,
109 apex_available: ["%[1]s"],
110 }
Jiakai Zhangb69e8952023-07-11 14:31:22 +0100111 `, apexName, moduleName, fragmentName, imageNameProp)),
Jiakai Zhangb8796202023-03-06 19:16:48 +0000112 android.FixtureMergeMockFs(android.MockFS{
113 fmt.Sprintf("%s/apex_manifest.json", moduleSourceDir): nil,
114 fmt.Sprintf("%s/%s.avbpubkey", moduleSourceDir, apexName): nil,
115 fmt.Sprintf("%s/%s.pem", moduleSourceDir, apexName): nil,
116 fmt.Sprintf("system/sepolicy/apex/%s-file_contexts", apexName): nil,
117 fmt.Sprintf("%s/%s.java", moduleSourceDir, moduleName): nil,
118 }),
119 )
120}
121
Paul Duffin8eb45732022-10-04 19:03:31 +0100122// normalizedInstall represents a android.RuleBuilderInstall that has been normalized to remove
123// test specific parts of the From path.
124type normalizedInstall struct {
125 from string
126 to string
127}
128
129// normalizeInstalls converts a slice of android.RuleBuilderInstall into a slice of
130// normalizedInstall to allow them to be compared using android.AssertDeepEquals.
131func normalizeInstalls(installs android.RuleBuilderInstalls) []normalizedInstall {
132 var normalized []normalizedInstall
133 for _, install := range installs {
134 normalized = append(normalized, normalizedInstall{
135 from: install.From.RelativeToTop().String(),
136 to: install.To,
137 })
138 }
139 return normalized
140}
141
142// assertInstallsEqual normalized the android.RuleBuilderInstalls and compares against the expected
143// normalizedInstalls.
144func assertInstallsEqual(t *testing.T, message string, expected []normalizedInstall, actual android.RuleBuilderInstalls) {
145 t.Helper()
146 normalizedActual := normalizeInstalls(actual)
147 android.AssertDeepEquals(t, message, expected, normalizedActual)
148}
149
150// expectedConfig encapsulates the expected properties that will be set in a bootImageConfig
151//
152// Each field <x> in here is compared against the corresponding field <x> in bootImageConfig.
153type expectedConfig struct {
154 name string
155 stem string
156 dir string
157 symbolsDir string
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100158 installDir string
Paul Duffin8eb45732022-10-04 19:03:31 +0100159 profileInstallPathInApex string
160 modules android.ConfiguredJarList
161 dexPaths []string
162 dexPathsDeps []string
163 zip string
164 variants []*expectedVariant
165
166 // Mutated fields
167 profileInstalls []normalizedInstall
168 profileLicenseMetadataFile string
169}
170
171// expectedVariant encapsulates the expected properties that will be set in a bootImageVariant
172//
173// Each field <x> in here is compared against the corresponding field <x> in bootImageVariant
174// except for archType which is compared against the target.Arch.ArchType field in bootImageVariant.
175type expectedVariant struct {
176 archType android.ArchType
177 dexLocations []string
178 dexLocationsDeps []string
179 imagePathOnHost string
180 imagePathOnDevice string
181 imagesDeps []string
Jiakai Zhang8fe3a412023-02-23 17:37:16 +0000182 baseImages []string
183 baseImagesDeps []string
Paul Duffin8eb45732022-10-04 19:03:31 +0100184
185 // Mutated fields
186 installs []normalizedInstall
187 vdexInstalls []normalizedInstall
188 unstrippedInstalls []normalizedInstall
189 licenseMetadataFile string
190}
191
192// CheckArtBootImageConfig checks the status of the fields of the bootImageConfig and
193// bootImageVariant structures that are returned from artBootImageConfig.
194//
195// This is before any fields are mutated.
196func CheckArtBootImageConfig(t *testing.T, result *android.TestResult) {
197 checkArtBootImageConfig(t, result, false, "")
198}
199
200// getArtImageConfig gets the ART bootImageConfig that was created during the test.
201func getArtImageConfig(result *android.TestResult) *bootImageConfig {
202 pathCtx := &android.TestPathContext{TestResult: result}
Jiakai Zhangb69e8952023-07-11 14:31:22 +0100203 imageConfig := genBootImageConfigs(pathCtx)["art"]
Paul Duffin8eb45732022-10-04 19:03:31 +0100204 return imageConfig
205}
206
207// checkArtBootImageConfig checks the ART boot image.
208//
209// mutated is true if this is called after fields in the image have been mutated by the ART
210// bootclasspath_fragment and false otherwise.
211func checkArtBootImageConfig(t *testing.T, result *android.TestResult, mutated bool, expectedLicenseMetadataFile string) {
212 imageConfig := getArtImageConfig(result)
213
214 expected := &expectedConfig{
215 name: "art",
216 stem: "boot",
Jeongik Cha4753b392023-04-19 23:25:41 +0900217 dir: "out/soong/dexpreopt_arm64/dex_artjars",
218 symbolsDir: "out/soong/dexpreopt_arm64/dex_artjars_unstripped",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100219 installDir: "apex/art_boot_images/javalib",
Paul Duffin8eb45732022-10-04 19:03:31 +0100220 profileInstallPathInApex: "etc/boot-image.prof",
221 modules: android.CreateTestConfiguredJarList([]string{"com.android.art:core1", "com.android.art:core2"}),
Jeongik Cha4753b392023-04-19 23:25:41 +0900222 dexPaths: []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar"},
223 dexPathsDeps: []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar"},
224 zip: "out/soong/dexpreopt_arm64/dex_artjars/art.zip",
Paul Duffin8eb45732022-10-04 19:03:31 +0100225 variants: []*expectedVariant{
226 {
227 archType: android.Arm64,
228 dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
229 dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
Jeongik Cha4753b392023-04-19 23:25:41 +0900230 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100231 imagePathOnDevice: "/apex/art_boot_images/javalib/arm64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100232 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900233 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
234 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
235 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
236 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
237 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
238 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100239 },
240 installs: []normalizedInstall{
241 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900242 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100243 to: "/apex/art_boot_images/javalib/arm64/boot.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.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100247 to: "/apex/art_boot_images/javalib/arm64/boot.oat",
248 },
249 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900250 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100251 to: "/apex/art_boot_images/javalib/arm64/boot-core2.art",
252 },
253 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900254 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100255 to: "/apex/art_boot_images/javalib/arm64/boot-core2.oat",
256 },
257 },
258 vdexInstalls: []normalizedInstall{
259 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900260 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100261 to: "/apex/art_boot_images/javalib/arm64/boot.vdex",
262 },
263 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900264 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100265 to: "/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
266 },
267 },
268 unstrippedInstalls: []normalizedInstall{
269 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900270 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100271 to: "/apex/art_boot_images/javalib/arm64/boot.oat",
272 },
273 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900274 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 +0100275 to: "/apex/art_boot_images/javalib/arm64/boot-core2.oat",
276 },
277 },
278 licenseMetadataFile: expectedLicenseMetadataFile,
279 },
280 {
281 archType: android.Arm,
282 dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
283 dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
Jeongik Cha4753b392023-04-19 23:25:41 +0900284 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100285 imagePathOnDevice: "/apex/art_boot_images/javalib/arm/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100286 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900287 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
288 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
289 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
290 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
291 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
292 "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100293 },
294 installs: []normalizedInstall{
295 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900296 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100297 to: "/apex/art_boot_images/javalib/arm/boot.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.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100301 to: "/apex/art_boot_images/javalib/arm/boot.oat",
302 },
303 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900304 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100305 to: "/apex/art_boot_images/javalib/arm/boot-core2.art",
306 },
307 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900308 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100309 to: "/apex/art_boot_images/javalib/arm/boot-core2.oat",
310 },
311 },
312 vdexInstalls: []normalizedInstall{
313 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900314 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100315 to: "/apex/art_boot_images/javalib/arm/boot.vdex",
316 },
317 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900318 from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100319 to: "/apex/art_boot_images/javalib/arm/boot-core2.vdex",
320 },
321 },
322 unstrippedInstalls: []normalizedInstall{
323 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900324 from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100325 to: "/apex/art_boot_images/javalib/arm/boot.oat",
326 },
327 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900328 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 +0100329 to: "/apex/art_boot_images/javalib/arm/boot-core2.oat",
330 },
331 },
332 licenseMetadataFile: expectedLicenseMetadataFile,
333 },
334 {
335 archType: android.X86_64,
336 dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
337 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 +0900338 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 +0100339 imagePathOnDevice: "/apex/art_boot_images/javalib/x86_64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100340 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900341 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
342 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
343 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
344 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
345 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
346 "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 +0100347 },
348 installs: []normalizedInstall{
349 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900350 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 +0100351 to: "/apex/art_boot_images/javalib/x86_64/boot.art",
352 }, {
Jeongik Cha4753b392023-04-19 23:25:41 +0900353 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 +0100354 to: "/apex/art_boot_images/javalib/x86_64/boot.oat",
355 },
356 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900357 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 +0100358 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.art",
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-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100361 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
362 },
363 },
364 vdexInstalls: []normalizedInstall{
365 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900366 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 +0100367 to: "/apex/art_boot_images/javalib/x86_64/boot.vdex",
368 },
369 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900370 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 +0100371 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
372 },
373 },
374 unstrippedInstalls: []normalizedInstall{
375 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900376 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 +0100377 to: "/apex/art_boot_images/javalib/x86_64/boot.oat",
378 },
379 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900380 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 +0100381 to: "/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
382 },
383 },
384 licenseMetadataFile: expectedLicenseMetadataFile,
385 },
386 {
387 archType: android.X86,
388 dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
389 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 +0900390 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100391 imagePathOnDevice: "/apex/art_boot_images/javalib/x86/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100392 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900393 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
394 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
395 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
396 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
397 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
398 "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100399 },
400 installs: []normalizedInstall{
401 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900402 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100403 to: "/apex/art_boot_images/javalib/x86/boot.art",
404 }, {
Jeongik Cha4753b392023-04-19 23:25:41 +0900405 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100406 to: "/apex/art_boot_images/javalib/x86/boot.oat",
407 },
408 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900409 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 +0100410 to: "/apex/art_boot_images/javalib/x86/boot-core2.art",
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-core2.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100413 to: "/apex/art_boot_images/javalib/x86/boot-core2.oat",
414 },
415 },
416 vdexInstalls: []normalizedInstall{
417 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900418 from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100419 to: "/apex/art_boot_images/javalib/x86/boot.vdex",
420 },
421 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900422 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 +0100423 to: "/apex/art_boot_images/javalib/x86/boot-core2.vdex",
424 },
425 },
426 unstrippedInstalls: []normalizedInstall{
427 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900428 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 +0100429 to: "/apex/art_boot_images/javalib/x86/boot.oat",
430 },
431 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900432 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 +0100433 to: "/apex/art_boot_images/javalib/x86/boot-core2.oat",
434 },
435 },
436 licenseMetadataFile: expectedLicenseMetadataFile,
437 },
438 },
439 }
440
441 checkBootImageConfig(t, imageConfig, mutated, expected)
442}
443
444// getFrameworkImageConfig gets the framework bootImageConfig that was created during the test.
445func getFrameworkImageConfig(result *android.TestResult) *bootImageConfig {
446 pathCtx := &android.TestPathContext{TestResult: result}
447 imageConfig := defaultBootImageConfig(pathCtx)
448 return imageConfig
449}
450
451// CheckFrameworkBootImageConfig checks the status of the fields of the bootImageConfig and
452// bootImageVariant structures that are returned from defaultBootImageConfig.
453//
454// This is before any fields are mutated.
455func CheckFrameworkBootImageConfig(t *testing.T, result *android.TestResult) {
456 checkFrameworkBootImageConfig(t, result, false, "")
457}
458
459// checkFrameworkBootImageConfig checks the framework boot image.
460//
461// mutated is true if this is called after fields in the image have been mutated by the
462// platform_bootclasspath and false otherwise.
463func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mutated bool, expectedLicenseMetadataFile string) {
464 imageConfig := getFrameworkImageConfig(result)
465
466 expected := &expectedConfig{
467 name: "boot",
468 stem: "boot",
Jeongik Cha4753b392023-04-19 23:25:41 +0900469 dir: "out/soong/dexpreopt_arm64/dex_bootjars",
470 symbolsDir: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100471 installDir: "system/framework",
Paul Duffin8eb45732022-10-04 19:03:31 +0100472 profileInstallPathInApex: "",
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100473 modules: android.CreateTestConfiguredJarList([]string{
474 "com.android.art:core1",
475 "com.android.art:core2",
476 "platform:framework",
477 }),
478 dexPaths: []string{
479 "out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
480 "out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
481 "out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
482 },
483 dexPathsDeps: []string{
484 "out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
485 "out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
486 "out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
487 },
488 zip: "out/soong/dexpreopt_arm64/dex_bootjars/boot.zip",
Paul Duffin8eb45732022-10-04 19:03:31 +0100489 variants: []*expectedVariant{
490 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100491 archType: android.Arm64,
492 dexLocations: []string{
493 "/apex/com.android.art/javalib/core1.jar",
494 "/apex/com.android.art/javalib/core2.jar",
495 "/system/framework/framework.jar",
496 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100497 dexLocationsDeps: []string{
498 "/apex/com.android.art/javalib/core1.jar",
499 "/apex/com.android.art/javalib/core2.jar",
500 "/system/framework/framework.jar",
501 },
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100502 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
503 imagePathOnDevice: "/system/framework/arm64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100504 imagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100505 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
506 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
507 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
508 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
509 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
510 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900511 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
512 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
513 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100514 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100515 installs: []normalizedInstall{
516 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100517 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
518 to: "/system/framework/arm64/boot.art",
519 },
520 {
521 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
522 to: "/system/framework/arm64/boot.oat",
523 },
524 {
525 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
526 to: "/system/framework/arm64/boot-core2.art",
527 },
528 {
529 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
530 to: "/system/framework/arm64/boot-core2.oat",
531 },
532 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900533 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100534 to: "/system/framework/arm64/boot-framework.art",
535 },
536 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900537 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100538 to: "/system/framework/arm64/boot-framework.oat",
539 },
540 },
541 vdexInstalls: []normalizedInstall{
542 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100543 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
544 to: "/system/framework/arm64/boot.vdex",
545 },
546 {
547 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
548 to: "/system/framework/arm64/boot-core2.vdex",
549 },
550 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900551 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100552 to: "/system/framework/arm64/boot-framework.vdex",
553 },
554 },
555 unstrippedInstalls: []normalizedInstall{
556 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100557 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot.oat",
558 to: "/system/framework/arm64/boot.oat",
559 },
560 {
561 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-core2.oat",
562 to: "/system/framework/arm64/boot-core2.oat",
563 },
564 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900565 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100566 to: "/system/framework/arm64/boot-framework.oat",
567 },
568 },
569 licenseMetadataFile: expectedLicenseMetadataFile,
570 },
571 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100572 archType: android.Arm,
573 dexLocations: []string{
574 "/apex/com.android.art/javalib/core1.jar",
575 "/apex/com.android.art/javalib/core2.jar",
576 "/system/framework/framework.jar",
577 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100578 dexLocationsDeps: []string{
579 "/apex/com.android.art/javalib/core1.jar",
580 "/apex/com.android.art/javalib/core2.jar",
581 "/system/framework/framework.jar",
582 },
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100583 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
584 imagePathOnDevice: "/system/framework/arm/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100585 imagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100586 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
587 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
588 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
589 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
590 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
591 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900592 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
593 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
594 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100595 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100596 installs: []normalizedInstall{
597 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100598 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
599 to: "/system/framework/arm/boot.art",
600 },
601 {
602 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
603 to: "/system/framework/arm/boot.oat",
604 },
605 {
606 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
607 to: "/system/framework/arm/boot-core2.art",
608 },
609 {
610 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
611 to: "/system/framework/arm/boot-core2.oat",
612 },
613 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900614 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100615 to: "/system/framework/arm/boot-framework.art",
616 },
617 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900618 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100619 to: "/system/framework/arm/boot-framework.oat",
620 },
621 },
622 vdexInstalls: []normalizedInstall{
623 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100624 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
625 to: "/system/framework/arm/boot.vdex",
626 },
627 {
628 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
629 to: "/system/framework/arm/boot-core2.vdex",
630 },
631 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900632 from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100633 to: "/system/framework/arm/boot-framework.vdex",
634 },
635 },
636 unstrippedInstalls: []normalizedInstall{
637 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100638 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot.oat",
639 to: "/system/framework/arm/boot.oat",
640 },
641 {
642 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-core2.oat",
643 to: "/system/framework/arm/boot-core2.oat",
644 },
645 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900646 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100647 to: "/system/framework/arm/boot-framework.oat",
648 },
649 },
650 licenseMetadataFile: expectedLicenseMetadataFile,
651 },
652 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100653 archType: android.X86_64,
654 dexLocations: []string{
655 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
656 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
657 "host/linux-x86/system/framework/framework.jar",
658 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100659 dexLocationsDeps: []string{
660 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
661 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
662 "host/linux-x86/system/framework/framework.jar",
663 },
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100664 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
665 imagePathOnDevice: "/system/framework/x86_64/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100666 imagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100667 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
668 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
669 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
670 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
671 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
672 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900673 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
674 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
675 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100676 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100677 installs: []normalizedInstall{
678 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100679 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
680 to: "/system/framework/x86_64/boot.art",
681 },
682 {
683 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
684 to: "/system/framework/x86_64/boot.oat",
685 },
686 {
687 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
688 to: "/system/framework/x86_64/boot-core2.art",
689 },
690 {
691 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
692 to: "/system/framework/x86_64/boot-core2.oat",
693 },
694 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900695 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100696 to: "/system/framework/x86_64/boot-framework.art",
697 },
698 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900699 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100700 to: "/system/framework/x86_64/boot-framework.oat",
701 },
702 },
703 vdexInstalls: []normalizedInstall{
704 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100705 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
706 to: "/system/framework/x86_64/boot.vdex",
707 },
708 {
709 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
710 to: "/system/framework/x86_64/boot-core2.vdex",
711 },
712 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900713 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100714 to: "/system/framework/x86_64/boot-framework.vdex",
715 },
716 },
717 unstrippedInstalls: []normalizedInstall{
718 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100719 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot.oat",
720 to: "/system/framework/x86_64/boot.oat",
721 },
722 {
723 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-core2.oat",
724 to: "/system/framework/x86_64/boot-core2.oat",
725 },
726 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900727 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100728 to: "/system/framework/x86_64/boot-framework.oat",
729 },
730 },
731 licenseMetadataFile: expectedLicenseMetadataFile,
732 },
733 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100734 archType: android.X86,
735 dexLocations: []string{
736 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
737 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
738 "host/linux-x86/system/framework/framework.jar",
739 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100740 dexLocationsDeps: []string{
741 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
742 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
743 "host/linux-x86/system/framework/framework.jar",
744 },
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100745 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
746 imagePathOnDevice: "/system/framework/x86/boot.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100747 imagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100748 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
749 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
750 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
751 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
752 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
753 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900754 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
755 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
756 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100757 },
Paul Duffin8eb45732022-10-04 19:03:31 +0100758 installs: []normalizedInstall{
759 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100760 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
761 to: "/system/framework/x86/boot.art",
762 },
763 {
764 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
765 to: "/system/framework/x86/boot.oat",
766 },
767 {
768 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
769 to: "/system/framework/x86/boot-core2.art",
770 },
771 {
772 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
773 to: "/system/framework/x86/boot-core2.oat",
774 },
775 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900776 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
Paul Duffin8eb45732022-10-04 19:03:31 +0100777 to: "/system/framework/x86/boot-framework.art",
778 },
779 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900780 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100781 to: "/system/framework/x86/boot-framework.oat",
782 },
783 },
784 vdexInstalls: []normalizedInstall{
785 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100786 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
787 to: "/system/framework/x86/boot.vdex",
788 },
789 {
790 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
791 to: "/system/framework/x86/boot-core2.vdex",
792 },
793 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900794 from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Paul Duffin8eb45732022-10-04 19:03:31 +0100795 to: "/system/framework/x86/boot-framework.vdex",
796 },
797 },
798 unstrippedInstalls: []normalizedInstall{
799 {
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100800 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot.oat",
801 to: "/system/framework/x86/boot.oat",
802 },
803 {
804 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-core2.oat",
805 to: "/system/framework/x86/boot-core2.oat",
806 },
807 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900808 from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat",
Paul Duffin8eb45732022-10-04 19:03:31 +0100809 to: "/system/framework/x86/boot-framework.oat",
810 },
811 },
812 licenseMetadataFile: expectedLicenseMetadataFile,
813 },
814 },
815 profileInstalls: []normalizedInstall{
Jiakai Zhangcb13b5d2023-07-13 11:03:38 +0100816 {from: "out/soong/.intermediates/default/java/dex_bootjars/android_common/boot/boot.prof", to: "/system/etc/boot-image.prof"},
Jeongik Cha4753b392023-04-19 23:25:41 +0900817 {from: "out/soong/dexpreopt_arm64/dex_bootjars/boot.bprof", to: "/system/etc/boot-image.bprof"},
Paul Duffin8eb45732022-10-04 19:03:31 +0100818 },
819 profileLicenseMetadataFile: expectedLicenseMetadataFile,
820 }
821
822 checkBootImageConfig(t, imageConfig, mutated, expected)
823}
824
Jiakai Zhangb8796202023-03-06 19:16:48 +0000825// getMainlineImageConfig gets the framework bootImageConfig that was created during the test.
826func getMainlineImageConfig(result *android.TestResult) *bootImageConfig {
827 pathCtx := &android.TestPathContext{TestResult: result}
828 imageConfig := mainlineBootImageConfig(pathCtx)
829 return imageConfig
830}
831
832// CheckMainlineBootImageConfig checks the status of the fields of the bootImageConfig and
833// bootImageVariant structures that are returned from mainlineBootImageConfig.
834//
835// This is before any fields are mutated.
836func CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
837 expectedLicenseMetadataFile := ""
838 imageConfig := getMainlineImageConfig(result)
839
840 expected := &expectedConfig{
841 name: "mainline",
842 stem: "boot",
Jeongik Cha4753b392023-04-19 23:25:41 +0900843 dir: "out/soong/dexpreopt_arm64/dex_mainlinejars",
844 symbolsDir: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped",
Jiakai Zhang09d88df2023-05-10 17:04:53 +0100845 installDir: "system/framework",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000846 profileInstallPathInApex: "",
847 modules: android.CreateTestConfiguredJarList([]string{
848 "com.android.foo:framework-foo",
849 "com.android.bar:framework-bar",
850 }),
851 dexPaths: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900852 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
853 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000854 },
855 dexPathsDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100856 "out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
857 "out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
Jeongik Cha4753b392023-04-19 23:25:41 +0900858 "out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
859 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
860 "out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000861 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900862 zip: "out/soong/dexpreopt_arm64/dex_mainlinejars/mainline.zip",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000863 variants: []*expectedVariant{
864 {
865 archType: android.Arm64,
866 dexLocations: []string{
867 "/apex/com.android.foo/javalib/framework-foo.jar",
868 "/apex/com.android.bar/javalib/framework-bar.jar",
869 },
870 dexLocationsDeps: []string{
871 "/apex/com.android.art/javalib/core1.jar",
872 "/apex/com.android.art/javalib/core2.jar",
873 "/system/framework/framework.jar",
874 "/apex/com.android.foo/javalib/framework-foo.jar",
875 "/apex/com.android.bar/javalib/framework-bar.jar",
876 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900877 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000878 imagePathOnDevice: "/system/framework/arm64/boot-framework-foo.art",
879 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900880 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
881 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat",
882 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000883 },
884 baseImages: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100885 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000886 },
887 baseImagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100888 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
889 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
890 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
891 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
892 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
893 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900894 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
895 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
896 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000897 },
898 installs: []normalizedInstall{
899 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900900 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000901 to: "/system/framework/arm64/boot-framework-foo.art",
902 },
903 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900904 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000905 to: "/system/framework/arm64/boot-framework-foo.oat",
906 },
907 },
908 vdexInstalls: []normalizedInstall{
909 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900910 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000911 to: "/system/framework/arm64/boot-framework-foo.vdex",
912 },
913 },
914 unstrippedInstalls: []normalizedInstall{
915 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900916 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000917 to: "/system/framework/arm64/boot-framework-foo.oat",
918 },
919 },
920 licenseMetadataFile: expectedLicenseMetadataFile,
921 },
922 {
923 archType: android.Arm,
924 dexLocations: []string{
925 "/apex/com.android.foo/javalib/framework-foo.jar",
926 "/apex/com.android.bar/javalib/framework-bar.jar",
927 },
928 dexLocationsDeps: []string{
929 "/apex/com.android.art/javalib/core1.jar",
930 "/apex/com.android.art/javalib/core2.jar",
931 "/system/framework/framework.jar",
932 "/apex/com.android.foo/javalib/framework-foo.jar",
933 "/apex/com.android.bar/javalib/framework-bar.jar",
934 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900935 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000936 imagePathOnDevice: "/system/framework/arm/boot-framework-foo.art",
937 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900938 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
939 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat",
940 "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000941 },
942 baseImages: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100943 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000944 },
945 baseImagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +0100946 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
947 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
948 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
949 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
950 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
951 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +0900952 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
953 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
954 "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000955 },
956 installs: []normalizedInstall{
957 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900958 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000959 to: "/system/framework/arm/boot-framework-foo.art",
960 },
961 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900962 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000963 to: "/system/framework/arm/boot-framework-foo.oat",
964 },
965 },
966 vdexInstalls: []normalizedInstall{
967 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900968 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000969 to: "/system/framework/arm/boot-framework-foo.vdex",
970 },
971 },
972 unstrippedInstalls: []normalizedInstall{
973 {
Jeongik Cha4753b392023-04-19 23:25:41 +0900974 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000975 to: "/system/framework/arm/boot-framework-foo.oat",
976 },
977 },
978 licenseMetadataFile: expectedLicenseMetadataFile,
979 },
980 {
981 archType: android.X86_64,
982 dexLocations: []string{
983 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
984 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
985 },
986 dexLocationsDeps: []string{
987 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
988 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
989 "host/linux-x86/system/framework/framework.jar",
990 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
991 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
992 },
Jeongik Cha4753b392023-04-19 23:25:41 +0900993 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000994 imagePathOnDevice: "/system/framework/x86_64/boot-framework-foo.art",
995 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +0900996 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
997 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
998 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +0000999 },
1000 baseImages: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001001 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001002 },
1003 baseImagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001004 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
1005 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
1006 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
1007 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
1008 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
1009 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +09001010 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
1011 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
1012 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001013 },
1014 installs: []normalizedInstall{
1015 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001016 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001017 to: "/system/framework/x86_64/boot-framework-foo.art",
1018 },
1019 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001020 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001021 to: "/system/framework/x86_64/boot-framework-foo.oat",
1022 },
1023 },
1024 vdexInstalls: []normalizedInstall{
1025 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001026 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001027 to: "/system/framework/x86_64/boot-framework-foo.vdex",
1028 },
1029 },
1030 unstrippedInstalls: []normalizedInstall{
1031 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001032 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 +00001033 to: "/system/framework/x86_64/boot-framework-foo.oat",
1034 },
1035 },
1036 licenseMetadataFile: expectedLicenseMetadataFile,
1037 },
1038 {
1039 archType: android.X86,
1040 dexLocations: []string{
1041 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
1042 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
1043 },
1044 dexLocationsDeps: []string{
1045 "host/linux-x86/apex/com.android.art/javalib/core1.jar",
1046 "host/linux-x86/apex/com.android.art/javalib/core2.jar",
1047 "host/linux-x86/system/framework/framework.jar",
1048 "host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
1049 "host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
1050 },
Jeongik Cha4753b392023-04-19 23:25:41 +09001051 imagePathOnHost: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001052 imagePathOnDevice: "/system/framework/x86/boot-framework-foo.art",
1053 imagesDeps: []string{
Jeongik Cha4753b392023-04-19 23:25:41 +09001054 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
1055 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat",
1056 "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001057 },
1058 baseImages: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001059 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001060 },
1061 baseImagesDeps: []string{
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001062 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
1063 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
1064 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
1065 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
1066 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
1067 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
Jeongik Cha4753b392023-04-19 23:25:41 +09001068 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
1069 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
1070 "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001071 },
1072 installs: []normalizedInstall{
1073 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001074 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001075 to: "/system/framework/x86/boot-framework-foo.art",
1076 },
1077 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001078 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001079 to: "/system/framework/x86/boot-framework-foo.oat",
1080 },
1081 },
1082 vdexInstalls: []normalizedInstall{
1083 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001084 from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001085 to: "/system/framework/x86/boot-framework-foo.vdex",
1086 },
1087 },
1088 unstrippedInstalls: []normalizedInstall{
1089 {
Jeongik Cha4753b392023-04-19 23:25:41 +09001090 from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86/boot-framework-foo.oat",
Jiakai Zhangb8796202023-03-06 19:16:48 +00001091 to: "/system/framework/x86/boot-framework-foo.oat",
1092 },
1093 },
1094 licenseMetadataFile: expectedLicenseMetadataFile,
1095 },
1096 },
1097 profileInstalls: []normalizedInstall{},
1098 profileLicenseMetadataFile: expectedLicenseMetadataFile,
1099 }
1100
1101 checkBootImageConfig(t, imageConfig, false, expected)
1102}
1103
Paul Duffin8eb45732022-10-04 19:03:31 +01001104// clearMutatedFields clears fields in the expectedConfig that correspond to fields in the
1105// bootImageConfig/bootImageVariant structs which are mutated outside the call to
1106// genBootImageConfigs.
1107//
1108// This allows the resulting expectedConfig struct to be compared against the values of those boot
1109// image structs immediately the call to genBootImageConfigs. If this is not called then the
1110// expectedConfig struct will expect the boot image structs to have been mutated by the ART
1111// bootclasspath_fragment and the platform_bootclasspath.
1112func clearMutatedFields(expected *expectedConfig) {
1113 expected.profileInstalls = nil
1114 expected.profileLicenseMetadataFile = ""
1115 for _, variant := range expected.variants {
1116 variant.installs = nil
1117 variant.vdexInstalls = nil
1118 variant.unstrippedInstalls = nil
1119 variant.licenseMetadataFile = ""
1120 }
1121}
1122
1123// checkBootImageConfig checks a boot image against the expected contents.
1124//
1125// If mutated is false then this will clear any mutated fields in the expected contents back to the
1126// zero value so that they will match the unmodified values in the boot image.
1127//
1128// It runs the checks in an image specific subtest of the current test.
1129func checkBootImageConfig(t *testing.T, imageConfig *bootImageConfig, mutated bool, expected *expectedConfig) {
1130 if !mutated {
1131 clearMutatedFields(expected)
1132 }
1133
1134 t.Run(imageConfig.name, func(t *testing.T) {
1135 nestedCheckBootImageConfig(t, imageConfig, expected)
1136 })
1137}
1138
1139// nestedCheckBootImageConfig does the work of comparing the image against the expected values and
1140// is run in an image specific subtest.
1141func nestedCheckBootImageConfig(t *testing.T, imageConfig *bootImageConfig, expected *expectedConfig) {
1142 android.AssertStringEquals(t, "name", expected.name, imageConfig.name)
1143 android.AssertStringEquals(t, "stem", expected.stem, imageConfig.stem)
1144 android.AssertPathRelativeToTopEquals(t, "dir", expected.dir, imageConfig.dir)
1145 android.AssertPathRelativeToTopEquals(t, "symbolsDir", expected.symbolsDir, imageConfig.symbolsDir)
Jiakai Zhang09d88df2023-05-10 17:04:53 +01001146 android.AssertStringEquals(t, "installDir", expected.installDir, imageConfig.installDir)
Paul Duffin8eb45732022-10-04 19:03:31 +01001147 android.AssertDeepEquals(t, "modules", expected.modules, imageConfig.modules)
1148 android.AssertPathsRelativeToTopEquals(t, "dexPaths", expected.dexPaths, imageConfig.dexPaths.Paths())
1149 android.AssertPathsRelativeToTopEquals(t, "dexPathsDeps", expected.dexPathsDeps, imageConfig.dexPathsDeps.Paths())
1150 // dexPathsByModule is just a different representation of the other information in the config.
1151 android.AssertPathRelativeToTopEquals(t, "zip", expected.zip, imageConfig.zip)
1152 assertInstallsEqual(t, "profileInstalls", expected.profileInstalls, imageConfig.profileInstalls)
1153 android.AssertStringEquals(t, "profileLicenseMetadataFile", expected.profileLicenseMetadataFile, imageConfig.profileLicenseMetadataFile.RelativeToTop().String())
1154
1155 android.AssertIntEquals(t, "variant count", 4, len(imageConfig.variants))
1156 for i, variant := range imageConfig.variants {
1157 expectedVariant := expected.variants[i]
1158 t.Run(variant.target.Arch.ArchType.String(), func(t *testing.T) {
1159 android.AssertDeepEquals(t, "archType", expectedVariant.archType, variant.target.Arch.ArchType)
1160 android.AssertDeepEquals(t, "dexLocations", expectedVariant.dexLocations, variant.dexLocations)
1161 android.AssertDeepEquals(t, "dexLocationsDeps", expectedVariant.dexLocationsDeps, variant.dexLocationsDeps)
1162 android.AssertPathRelativeToTopEquals(t, "imagePathOnHost", expectedVariant.imagePathOnHost, variant.imagePathOnHost)
1163 android.AssertStringEquals(t, "imagePathOnDevice", expectedVariant.imagePathOnDevice, variant.imagePathOnDevice)
1164 android.AssertPathsRelativeToTopEquals(t, "imagesDeps", expectedVariant.imagesDeps, variant.imagesDeps.Paths())
Jiakai Zhang8fe3a412023-02-23 17:37:16 +00001165 android.AssertPathsRelativeToTopEquals(t, "baseImages", expectedVariant.baseImages, variant.baseImages.Paths())
1166 android.AssertPathsRelativeToTopEquals(t, "baseImagesDeps", expectedVariant.baseImagesDeps, variant.baseImagesDeps)
Paul Duffin8eb45732022-10-04 19:03:31 +01001167 assertInstallsEqual(t, "installs", expectedVariant.installs, variant.installs)
1168 assertInstallsEqual(t, "vdexInstalls", expectedVariant.vdexInstalls, variant.vdexInstalls)
1169 assertInstallsEqual(t, "unstrippedInstalls", expectedVariant.unstrippedInstalls, variant.unstrippedInstalls)
1170 android.AssertStringEquals(t, "licenseMetadataFile", expectedVariant.licenseMetadataFile, variant.licenseMetadataFile.RelativeToTop().String())
1171 })
1172 }
1173}
1174
1175// CheckMutatedArtBootImageConfig checks the mutated fields in the bootImageConfig/Variant for ART.
1176func CheckMutatedArtBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1177 checkArtBootImageConfig(t, result, true, expectedLicenseMetadataFile)
1178
1179 // Check the dexpreopt make vars. Do it in here as it depends on the expected license metadata
1180 // file at the moment and it
1181 checkDexpreoptMakeVars(t, result, expectedLicenseMetadataFile)
1182}
1183
1184// CheckMutatedFrameworkBootImageConfig checks the mutated fields in the bootImageConfig/Variant for framework.
1185func CheckMutatedFrameworkBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1186 checkFrameworkBootImageConfig(t, result, true, expectedLicenseMetadataFile)
1187}
1188
1189// checkDexpreoptMakeVars checks the DEXPREOPT_ prefixed make vars produced by dexpreoptBootJars
1190// singleton.
1191func checkDexpreoptMakeVars(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1192 vars := result.MakeVarsForTesting(func(variable android.MakeVarVariable) bool {
1193 return strings.HasPrefix(variable.Name(), "DEXPREOPT_")
1194 })
1195
1196 out := &strings.Builder{}
1197 for _, v := range vars {
1198 fmt.Fprintf(out, "%s=%s\n", v.Name(), android.StringRelativeToTop(result.Config, v.Value()))
1199 }
1200 format := `
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001201DEXPREOPT_BOOTCLASSPATH_DEX_FILES=out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar
Paul Duffin8eb45732022-10-04 19:03:31 +01001202DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS=/apex/com.android.art/javalib/core1.jar /apex/com.android.art/javalib/core2.jar /system/framework/framework.jar
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001203DEXPREOPT_BOOT_JARS_MODULES=com.android.art:core1:com.android.art:core2:platform:framework
Paul Duffin8eb45732022-10-04 19:03:31 +01001204DEXPREOPT_GEN=out/host/linux-x86/bin/dexpreopt_gen
Jeongik Cha4753b392023-04-19 23:25:41 +09001205DEXPREOPT_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
1206DEXPREOPT_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
1207DEXPREOPT_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
1208DEXPREOPT_IMAGE_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art:/apex/art_boot_images/javalib/x86_64/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat:/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art:/apex/art_boot_images/javalib/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat:/apex/art_boot_images/javalib/x86_64/boot-core2.oat
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001209DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art:/system/framework/arm/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat:/system/framework/arm/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art:/system/framework/arm/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat:/system/framework/arm/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art:/system/framework/arm/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
1210DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art:/system/framework/arm64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat:/system/framework/arm64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art:/system/framework/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat:/system/framework/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art:/system/framework/arm64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
1211DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art:/system/framework/x86/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat:/system/framework/x86/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art:/system/framework/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat:/system/framework/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art:/system/framework/x86/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
1212DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art:/system/framework/x86_64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat:/system/framework/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art:/system/framework/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat:/system/framework/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art:/system/framework/x86_64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
Jeongik Cha4753b392023-04-19 23:25:41 +09001213DEXPREOPT_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
1214DEXPREOPT_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
1215DEXPREOPT_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
1216DEXPREOPT_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
1217DEXPREOPT_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
1218DEXPREOPT_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
1219DEXPREOPT_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
1220DEXPREOPT_IMAGE_DEPS_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001221DEXPREOPT_IMAGE_DEPS_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex
1222DEXPREOPT_IMAGE_DEPS_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex
1223DEXPREOPT_IMAGE_DEPS_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex
1224DEXPREOPT_IMAGE_DEPS_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex
Jeongik Cha4753b392023-04-19 23:25:41 +09001225DEXPREOPT_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
1226DEXPREOPT_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
1227DEXPREOPT_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
1228DEXPREOPT_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 +01001229DEXPREOPT_IMAGE_LICENSE_METADATA_art_arm=%[1]s
1230DEXPREOPT_IMAGE_LICENSE_METADATA_art_arm64=%[1]s
1231DEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86=%[1]s
1232DEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86_64=%[1]s
Jiakai Zhangcb13b5d2023-07-13 11:03:38 +01001233DEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1234DEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm64=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1235DEXPREOPT_IMAGE_LICENSE_METADATA_boot_host_x86=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1236DEXPREOPT_IMAGE_LICENSE_METADATA_boot_host_x86_64=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1237DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1238DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm64=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1239DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1240DEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86_64=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
Jiakai Zhang09d88df2023-05-10 17:04:53 +01001241DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEart=/apex/art_boot_images/javalib/boot.art
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001242DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEboot=/system/framework/boot.art
1243DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEmainline=/system/framework/boot.art:/system/framework/boot-framework-foo.art
Jeongik Cha4753b392023-04-19 23:25:41 +09001244DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTart=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001245DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTboot=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot.art
1246DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTmainline=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot.art:out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/boot-framework-foo.art
Jiakai Zhangb8796202023-03-06 19:16:48 +00001247DEXPREOPT_IMAGE_NAMES=art boot mainline
Jiakai Zhangcb13b5d2023-07-13 11:03:38 +01001248DEXPREOPT_IMAGE_PROFILE_BUILT_INSTALLED=out/soong/.intermediates/default/java/dex_bootjars/android_common/boot/boot.prof:/system/etc/boot-image.prof out/soong/dexpreopt_arm64/dex_bootjars/boot.bprof:/system/etc/boot-image.bprof
1249DEXPREOPT_IMAGE_PROFILE_LICENSE_METADATA=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
Jeongik Cha4753b392023-04-19 23:25:41 +09001250DEXPREOPT_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
1251DEXPREOPT_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
1252DEXPREOPT_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
1253DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat:/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat:/apex/art_boot_images/javalib/x86_64/boot-core2.oat
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001254DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot.oat:/system/framework/arm/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-core2.oat:/system/framework/arm/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
1255DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot.oat:/system/framework/arm64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-core2.oat:/system/framework/arm64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
1256DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot.oat:/system/framework/x86/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-core2.oat:/system/framework/x86/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
1257DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot.oat:/system/framework/x86_64/boot.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-core2.oat:/system/framework/x86_64/boot-core2.oat out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
Jeongik Cha4753b392023-04-19 23:25:41 +09001258DEXPREOPT_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
1259DEXPREOPT_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
1260DEXPREOPT_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
1261DEXPREOPT_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
1262DEXPREOPT_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
1263DEXPREOPT_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
1264DEXPREOPT_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
1265DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex:/apex/art_boot_images/javalib/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex:/apex/art_boot_images/javalib/x86_64/boot-core2.vdex
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001266DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex:/system/framework/arm/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex:/system/framework/arm/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex:/system/framework/arm/boot-framework.vdex
1267DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex:/system/framework/arm64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex:/system/framework/arm64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex:/system/framework/arm64/boot-framework.vdex
1268DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex:/system/framework/x86/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex:/system/framework/x86/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex:/system/framework/x86/boot-framework.vdex
1269DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex:/system/framework/x86_64/boot.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex:/system/framework/x86_64/boot-core2.vdex out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex:/system/framework/x86_64/boot-framework.vdex
Jeongik Cha4753b392023-04-19 23:25:41 +09001270DEXPREOPT_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
1271DEXPREOPT_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
1272DEXPREOPT_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
1273DEXPREOPT_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
1274DEXPREOPT_IMAGE_ZIP_art=out/soong/dexpreopt_arm64/dex_artjars/art.zip
1275DEXPREOPT_IMAGE_ZIP_boot=out/soong/dexpreopt_arm64/dex_bootjars/boot.zip
1276DEXPREOPT_IMAGE_ZIP_mainline=out/soong/dexpreopt_arm64/dex_mainlinejars/mainline.zip
1277DEXPREOPT_IMAGE_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art
1278DEXPREOPT_IMAGE_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
1279DEXPREOPT_IMAGE_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art
1280DEXPREOPT_IMAGE_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art
Jiakai Zhangc08c1622023-05-10 18:38:34 +01001281DEXPREOPT_IMAGE_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art
1282DEXPREOPT_IMAGE_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art
1283DEXPREOPT_IMAGE_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art
1284DEXPREOPT_IMAGE_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art
Jeongik Cha4753b392023-04-19 23:25:41 +09001285DEXPREOPT_IMAGE_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art
1286DEXPREOPT_IMAGE_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art
1287DEXPREOPT_IMAGE_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art
1288DEXPREOPT_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 +01001289`
1290 expected := strings.TrimSpace(fmt.Sprintf(format, expectedLicenseMetadataFile))
1291 actual := strings.TrimSpace(out.String())
1292 android.AssertStringEquals(t, "vars", expected, actual)
1293}