xref: /aosp_15_r20/build/soong/java/dexpreopt_config_testing.go (revision 333d2b3687b3a337dbcca9d65000bca186795e39)
1*333d2b36SAndroid Build Coastguard Worker// Copyright 2022 Google Inc. All rights reserved.
2*333d2b36SAndroid Build Coastguard Worker//
3*333d2b36SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*333d2b36SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*333d2b36SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*333d2b36SAndroid Build Coastguard Worker//
7*333d2b36SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*333d2b36SAndroid Build Coastguard Worker//
9*333d2b36SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*333d2b36SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*333d2b36SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*333d2b36SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*333d2b36SAndroid Build Coastguard Worker// limitations under the License.
14*333d2b36SAndroid Build Coastguard Worker
15*333d2b36SAndroid Build Coastguard Worker// Testing support for dexpreopt config.
16*333d2b36SAndroid Build Coastguard Worker//
17*333d2b36SAndroid Build Coastguard Worker// The bootImageConfig/bootImageVariant structs returned by genBootImageConfigs are used in many
18*333d2b36SAndroid Build Coastguard Worker// places in the build and are currently mutated in a number of those locations. This provides
19*333d2b36SAndroid Build Coastguard Worker// comprehensive tests of the fields in those structs to ensure that they have been initialized
20*333d2b36SAndroid Build Coastguard Worker// correctly and where relevant, mutated correctly.
21*333d2b36SAndroid Build Coastguard Worker//
22*333d2b36SAndroid Build Coastguard Worker// This is used in TestBootImageConfig to verify that the
23*333d2b36SAndroid Build Coastguard Worker
24*333d2b36SAndroid Build Coastguard Workerpackage java
25*333d2b36SAndroid Build Coastguard Worker
26*333d2b36SAndroid Build Coastguard Workerimport (
27*333d2b36SAndroid Build Coastguard Worker	"fmt"
28*333d2b36SAndroid Build Coastguard Worker	"strings"
29*333d2b36SAndroid Build Coastguard Worker	"testing"
30*333d2b36SAndroid Build Coastguard Worker
31*333d2b36SAndroid Build Coastguard Worker	"android/soong/android"
32*333d2b36SAndroid Build Coastguard Worker	"android/soong/dexpreopt"
33*333d2b36SAndroid Build Coastguard Worker)
34*333d2b36SAndroid Build Coastguard Worker
35*333d2b36SAndroid Build Coastguard Worker// PrepareForBootImageConfigTest is the minimal set of preparers that are needed to be able to use
36*333d2b36SAndroid Build Coastguard Worker// the Check*BootImageConfig methods define here.
37*333d2b36SAndroid Build Coastguard Workervar PrepareForBootImageConfigTest = android.GroupFixturePreparers(
38*333d2b36SAndroid Build Coastguard Worker	android.PrepareForTestWithArchMutator,
39*333d2b36SAndroid Build Coastguard Worker	android.PrepareForTestAccessingMakeVars,
40*333d2b36SAndroid Build Coastguard Worker	PrepareForTestWithDexpreopt,
41*333d2b36SAndroid Build Coastguard Worker	FixtureConfigureBootJars("com.android.art:core1", "com.android.art:core2", "platform:framework"),
42*333d2b36SAndroid Build Coastguard Worker	dexpreopt.FixtureSetTestOnlyArtBootImageJars("com.android.art:core1", "com.android.art:core2", "platform:extra1"),
43*333d2b36SAndroid Build Coastguard Worker	android.FixtureAddTextFile("extra1/Android.bp", `
44*333d2b36SAndroid Build Coastguard Worker		java_library {
45*333d2b36SAndroid Build Coastguard Worker			name: "extra1",
46*333d2b36SAndroid Build Coastguard Worker			srcs: ["extra1.java"],
47*333d2b36SAndroid Build Coastguard Worker			installable: true,
48*333d2b36SAndroid Build Coastguard Worker		}
49*333d2b36SAndroid Build Coastguard Worker	`),
50*333d2b36SAndroid Build Coastguard Worker	android.FixtureAddFile("extra1/extra1.java", nil),
51*333d2b36SAndroid Build Coastguard Worker)
52*333d2b36SAndroid Build Coastguard Worker
53*333d2b36SAndroid Build Coastguard Workervar PrepareApexBootJarConfigs = FixtureConfigureApexBootJars(
54*333d2b36SAndroid Build Coastguard Worker	"com.android.foo:framework-foo", "com.android.bar:framework-bar")
55*333d2b36SAndroid Build Coastguard Worker
56*333d2b36SAndroid Build Coastguard Workervar PrepareApexBootJarConfigsAndModules = android.GroupFixturePreparers(
57*333d2b36SAndroid Build Coastguard Worker	PrepareApexBootJarConfigs,
58*333d2b36SAndroid Build Coastguard Worker	PrepareApexBootJarModule("com.android.foo", "framework-foo"),
59*333d2b36SAndroid Build Coastguard Worker	PrepareApexBootJarModule("com.android.bar", "framework-bar"),
60*333d2b36SAndroid Build Coastguard Worker)
61*333d2b36SAndroid Build Coastguard Worker
62*333d2b36SAndroid Build Coastguard Workervar ApexBootJarFragmentsForPlatformBootclasspath = fmt.Sprintf(`
63*333d2b36SAndroid Build Coastguard Worker	{
64*333d2b36SAndroid Build Coastguard Worker		apex: "%[1]s",
65*333d2b36SAndroid Build Coastguard Worker		module: "%[1]s-bootclasspath-fragment",
66*333d2b36SAndroid Build Coastguard Worker	},
67*333d2b36SAndroid Build Coastguard Worker	{
68*333d2b36SAndroid Build Coastguard Worker		apex: "%[2]s",
69*333d2b36SAndroid Build Coastguard Worker		module: "%[2]s-bootclasspath-fragment",
70*333d2b36SAndroid Build Coastguard Worker	},
71*333d2b36SAndroid Build Coastguard Worker`, "com.android.foo", "com.android.bar")
72*333d2b36SAndroid Build Coastguard Worker
73*333d2b36SAndroid Build Coastguard Workervar ApexBootJarDexJarPaths = []string{
74*333d2b36SAndroid Build Coastguard Worker	"out/soong/.intermediates/packages/modules/com.android.bar/framework-bar/android_common_apex10000/aligned/framework-bar.jar",
75*333d2b36SAndroid Build Coastguard Worker	"out/soong/.intermediates/packages/modules/com.android.foo/framework-foo/android_common_apex10000/aligned/framework-foo.jar",
76*333d2b36SAndroid Build Coastguard Worker}
77*333d2b36SAndroid Build Coastguard Worker
78*333d2b36SAndroid Build Coastguard Workerfunc PrepareApexBootJarModule(apexName string, moduleName string) android.FixturePreparer {
79*333d2b36SAndroid Build Coastguard Worker	moduleSourceDir := fmt.Sprintf("packages/modules/%s", apexName)
80*333d2b36SAndroid Build Coastguard Worker	fragmentName := apexName + "-bootclasspath-fragment"
81*333d2b36SAndroid Build Coastguard Worker	imageNameProp := ""
82*333d2b36SAndroid Build Coastguard Worker	if apexName == "com.android.art" {
83*333d2b36SAndroid Build Coastguard Worker		fragmentName = "art-bootclasspath-fragment"
84*333d2b36SAndroid Build Coastguard Worker		imageNameProp = `image_name: "art",`
85*333d2b36SAndroid Build Coastguard Worker	}
86*333d2b36SAndroid Build Coastguard Worker
87*333d2b36SAndroid Build Coastguard Worker	return android.GroupFixturePreparers(
88*333d2b36SAndroid Build Coastguard Worker		android.FixtureAddTextFile(moduleSourceDir+"/Android.bp", fmt.Sprintf(`
89*333d2b36SAndroid Build Coastguard Worker			apex {
90*333d2b36SAndroid Build Coastguard Worker				name: "%[1]s",
91*333d2b36SAndroid Build Coastguard Worker				key: "%[1]s.key",
92*333d2b36SAndroid Build Coastguard Worker				bootclasspath_fragments: [
93*333d2b36SAndroid Build Coastguard Worker					"%[3]s",
94*333d2b36SAndroid Build Coastguard Worker				],
95*333d2b36SAndroid Build Coastguard Worker				updatable: false,
96*333d2b36SAndroid Build Coastguard Worker			}
97*333d2b36SAndroid Build Coastguard Worker
98*333d2b36SAndroid Build Coastguard Worker			apex_key {
99*333d2b36SAndroid Build Coastguard Worker				name: "%[1]s.key",
100*333d2b36SAndroid Build Coastguard Worker				public_key: "%[1]s.avbpubkey",
101*333d2b36SAndroid Build Coastguard Worker				private_key: "%[1]s.pem",
102*333d2b36SAndroid Build Coastguard Worker			}
103*333d2b36SAndroid Build Coastguard Worker
104*333d2b36SAndroid Build Coastguard Worker			bootclasspath_fragment {
105*333d2b36SAndroid Build Coastguard Worker				name: "%[3]s",
106*333d2b36SAndroid Build Coastguard Worker				%[4]s
107*333d2b36SAndroid Build Coastguard Worker				contents: ["%[2]s"],
108*333d2b36SAndroid Build Coastguard Worker				apex_available: ["%[1]s"],
109*333d2b36SAndroid Build Coastguard Worker				hidden_api: {
110*333d2b36SAndroid Build Coastguard Worker					split_packages: ["*"],
111*333d2b36SAndroid Build Coastguard Worker				},
112*333d2b36SAndroid Build Coastguard Worker			}
113*333d2b36SAndroid Build Coastguard Worker
114*333d2b36SAndroid Build Coastguard Worker			java_library {
115*333d2b36SAndroid Build Coastguard Worker				name: "%[2]s",
116*333d2b36SAndroid Build Coastguard Worker				srcs: ["%[2]s.java"],
117*333d2b36SAndroid Build Coastguard Worker				system_modules: "none",
118*333d2b36SAndroid Build Coastguard Worker				sdk_version: "none",
119*333d2b36SAndroid Build Coastguard Worker				compile_dex: true,
120*333d2b36SAndroid Build Coastguard Worker				apex_available: ["%[1]s"],
121*333d2b36SAndroid Build Coastguard Worker			}
122*333d2b36SAndroid Build Coastguard Worker		`, apexName, moduleName, fragmentName, imageNameProp)),
123*333d2b36SAndroid Build Coastguard Worker		android.FixtureMergeMockFs(android.MockFS{
124*333d2b36SAndroid Build Coastguard Worker			fmt.Sprintf("%s/apex_manifest.json", moduleSourceDir):          nil,
125*333d2b36SAndroid Build Coastguard Worker			fmt.Sprintf("%s/%s.avbpubkey", moduleSourceDir, apexName):      nil,
126*333d2b36SAndroid Build Coastguard Worker			fmt.Sprintf("%s/%s.pem", moduleSourceDir, apexName):            nil,
127*333d2b36SAndroid Build Coastguard Worker			fmt.Sprintf("system/sepolicy/apex/%s-file_contexts", apexName): nil,
128*333d2b36SAndroid Build Coastguard Worker			fmt.Sprintf("%s/%s.java", moduleSourceDir, moduleName):         nil,
129*333d2b36SAndroid Build Coastguard Worker		}),
130*333d2b36SAndroid Build Coastguard Worker	)
131*333d2b36SAndroid Build Coastguard Worker}
132*333d2b36SAndroid Build Coastguard Worker
133*333d2b36SAndroid Build Coastguard Worker// normalizedInstall represents a android.RuleBuilderInstall that has been normalized to remove
134*333d2b36SAndroid Build Coastguard Worker// test specific parts of the From path.
135*333d2b36SAndroid Build Coastguard Workertype normalizedInstall struct {
136*333d2b36SAndroid Build Coastguard Worker	from string
137*333d2b36SAndroid Build Coastguard Worker	to   string
138*333d2b36SAndroid Build Coastguard Worker}
139*333d2b36SAndroid Build Coastguard Worker
140*333d2b36SAndroid Build Coastguard Worker// normalizeInstalls converts a slice of android.RuleBuilderInstall into a slice of
141*333d2b36SAndroid Build Coastguard Worker// normalizedInstall to allow them to be compared using android.AssertDeepEquals.
142*333d2b36SAndroid Build Coastguard Workerfunc normalizeInstalls(installs android.RuleBuilderInstalls) []normalizedInstall {
143*333d2b36SAndroid Build Coastguard Worker	var normalized []normalizedInstall
144*333d2b36SAndroid Build Coastguard Worker	for _, install := range installs {
145*333d2b36SAndroid Build Coastguard Worker		normalized = append(normalized, normalizedInstall{
146*333d2b36SAndroid Build Coastguard Worker			from: install.From.RelativeToTop().String(),
147*333d2b36SAndroid Build Coastguard Worker			to:   install.To,
148*333d2b36SAndroid Build Coastguard Worker		})
149*333d2b36SAndroid Build Coastguard Worker	}
150*333d2b36SAndroid Build Coastguard Worker	return normalized
151*333d2b36SAndroid Build Coastguard Worker}
152*333d2b36SAndroid Build Coastguard Worker
153*333d2b36SAndroid Build Coastguard Worker// assertInstallsEqual normalized the android.RuleBuilderInstalls and compares against the expected
154*333d2b36SAndroid Build Coastguard Worker// normalizedInstalls.
155*333d2b36SAndroid Build Coastguard Workerfunc assertInstallsEqual(t *testing.T, message string, expected []normalizedInstall, actual android.RuleBuilderInstalls) {
156*333d2b36SAndroid Build Coastguard Worker	t.Helper()
157*333d2b36SAndroid Build Coastguard Worker	normalizedActual := normalizeInstalls(actual)
158*333d2b36SAndroid Build Coastguard Worker	android.AssertDeepEquals(t, message, expected, normalizedActual)
159*333d2b36SAndroid Build Coastguard Worker}
160*333d2b36SAndroid Build Coastguard Worker
161*333d2b36SAndroid Build Coastguard Worker// expectedConfig encapsulates the expected properties that will be set in a bootImageConfig
162*333d2b36SAndroid Build Coastguard Worker//
163*333d2b36SAndroid Build Coastguard Worker// Each field <x> in here is compared against the corresponding field <x> in bootImageConfig.
164*333d2b36SAndroid Build Coastguard Workertype expectedConfig struct {
165*333d2b36SAndroid Build Coastguard Worker	name                     string
166*333d2b36SAndroid Build Coastguard Worker	stem                     string
167*333d2b36SAndroid Build Coastguard Worker	dir                      string
168*333d2b36SAndroid Build Coastguard Worker	symbolsDir               string
169*333d2b36SAndroid Build Coastguard Worker	installDir               string
170*333d2b36SAndroid Build Coastguard Worker	profileInstallPathInApex string
171*333d2b36SAndroid Build Coastguard Worker	modules                  android.ConfiguredJarList
172*333d2b36SAndroid Build Coastguard Worker	dexPaths                 []string
173*333d2b36SAndroid Build Coastguard Worker	dexPathsDeps             []string
174*333d2b36SAndroid Build Coastguard Worker	zip                      string
175*333d2b36SAndroid Build Coastguard Worker	variants                 []*expectedVariant
176*333d2b36SAndroid Build Coastguard Worker
177*333d2b36SAndroid Build Coastguard Worker	// Mutated fields
178*333d2b36SAndroid Build Coastguard Worker	profileInstalls            []normalizedInstall
179*333d2b36SAndroid Build Coastguard Worker	profileLicenseMetadataFile string
180*333d2b36SAndroid Build Coastguard Worker}
181*333d2b36SAndroid Build Coastguard Worker
182*333d2b36SAndroid Build Coastguard Worker// expectedVariant encapsulates the expected properties that will be set in a bootImageVariant
183*333d2b36SAndroid Build Coastguard Worker//
184*333d2b36SAndroid Build Coastguard Worker// Each field <x> in here is compared against the corresponding field <x> in bootImageVariant
185*333d2b36SAndroid Build Coastguard Worker// except for archType which is compared against the target.Arch.ArchType field in bootImageVariant.
186*333d2b36SAndroid Build Coastguard Workertype expectedVariant struct {
187*333d2b36SAndroid Build Coastguard Worker	archType          android.ArchType
188*333d2b36SAndroid Build Coastguard Worker	dexLocations      []string
189*333d2b36SAndroid Build Coastguard Worker	dexLocationsDeps  []string
190*333d2b36SAndroid Build Coastguard Worker	imagePathOnHost   string
191*333d2b36SAndroid Build Coastguard Worker	imagePathOnDevice string
192*333d2b36SAndroid Build Coastguard Worker	imagesDeps        []string
193*333d2b36SAndroid Build Coastguard Worker	baseImages        []string
194*333d2b36SAndroid Build Coastguard Worker	baseImagesDeps    []string
195*333d2b36SAndroid Build Coastguard Worker
196*333d2b36SAndroid Build Coastguard Worker	// Mutated fields
197*333d2b36SAndroid Build Coastguard Worker	installs            []normalizedInstall
198*333d2b36SAndroid Build Coastguard Worker	vdexInstalls        []normalizedInstall
199*333d2b36SAndroid Build Coastguard Worker	unstrippedInstalls  []normalizedInstall
200*333d2b36SAndroid Build Coastguard Worker	licenseMetadataFile string
201*333d2b36SAndroid Build Coastguard Worker}
202*333d2b36SAndroid Build Coastguard Worker
203*333d2b36SAndroid Build Coastguard Worker// CheckArtBootImageConfig checks the status of the fields of the bootImageConfig and
204*333d2b36SAndroid Build Coastguard Worker// bootImageVariant structures that are returned from artBootImageConfig.
205*333d2b36SAndroid Build Coastguard Worker//
206*333d2b36SAndroid Build Coastguard Worker// This is before any fields are mutated.
207*333d2b36SAndroid Build Coastguard Workerfunc CheckArtBootImageConfig(t *testing.T, result *android.TestResult) {
208*333d2b36SAndroid Build Coastguard Worker	checkArtBootImageConfig(t, result, false, "")
209*333d2b36SAndroid Build Coastguard Worker}
210*333d2b36SAndroid Build Coastguard Worker
211*333d2b36SAndroid Build Coastguard Worker// getArtImageConfig gets the ART bootImageConfig that was created during the test.
212*333d2b36SAndroid Build Coastguard Workerfunc getArtImageConfig(result *android.TestResult) *bootImageConfig {
213*333d2b36SAndroid Build Coastguard Worker	pathCtx := &android.TestPathContext{TestResult: result}
214*333d2b36SAndroid Build Coastguard Worker	imageConfig := genBootImageConfigs(pathCtx)["art"]
215*333d2b36SAndroid Build Coastguard Worker	return imageConfig
216*333d2b36SAndroid Build Coastguard Worker}
217*333d2b36SAndroid Build Coastguard Worker
218*333d2b36SAndroid Build Coastguard Worker// checkArtBootImageConfig checks the ART boot image.
219*333d2b36SAndroid Build Coastguard Worker//
220*333d2b36SAndroid Build Coastguard Worker// mutated is true if this is called after fields in the image have been mutated by the ART
221*333d2b36SAndroid Build Coastguard Worker// bootclasspath_fragment and false otherwise.
222*333d2b36SAndroid Build Coastguard Workerfunc checkArtBootImageConfig(t *testing.T, result *android.TestResult, mutated bool, expectedLicenseMetadataFile string) {
223*333d2b36SAndroid Build Coastguard Worker	imageConfig := getArtImageConfig(result)
224*333d2b36SAndroid Build Coastguard Worker
225*333d2b36SAndroid Build Coastguard Worker	expected := &expectedConfig{
226*333d2b36SAndroid Build Coastguard Worker		name:                     "art",
227*333d2b36SAndroid Build Coastguard Worker		stem:                     "boot",
228*333d2b36SAndroid Build Coastguard Worker		dir:                      "out/soong/dexpreopt_arm64/dex_artjars",
229*333d2b36SAndroid Build Coastguard Worker		symbolsDir:               "out/soong/dexpreopt_arm64/dex_artjars_unstripped",
230*333d2b36SAndroid Build Coastguard Worker		installDir:               "apex/art_boot_images/javalib",
231*333d2b36SAndroid Build Coastguard Worker		profileInstallPathInApex: "etc/boot-image.prof",
232*333d2b36SAndroid Build Coastguard Worker		modules:                  android.CreateTestConfiguredJarList([]string{"com.android.art:core1", "com.android.art:core2", "platform:extra1"}),
233*333d2b36SAndroid Build Coastguard Worker		dexPaths:                 []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/extra1.jar"},
234*333d2b36SAndroid Build Coastguard Worker		dexPathsDeps:             []string{"out/soong/dexpreopt_arm64/dex_artjars_input/core1.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/core2.jar", "out/soong/dexpreopt_arm64/dex_artjars_input/extra1.jar"},
235*333d2b36SAndroid Build Coastguard Worker		zip:                      "out/soong/dexpreopt_arm64/dex_artjars/art.zip",
236*333d2b36SAndroid Build Coastguard Worker		variants: []*expectedVariant{
237*333d2b36SAndroid Build Coastguard Worker			{
238*333d2b36SAndroid Build Coastguard Worker				archType:          android.Arm64,
239*333d2b36SAndroid Build Coastguard Worker				dexLocations:      []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar", "/system/framework/extra1.jar"},
240*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps:  []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar", "/system/framework/extra1.jar"},
241*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
242*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/apex/art_boot_images/javalib/arm64/boot.art",
243*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
244*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
245*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
246*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
247*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
248*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
249*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
250*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.art",
251*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.oat",
252*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.vdex",
253*333d2b36SAndroid Build Coastguard Worker				},
254*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
255*333d2b36SAndroid Build Coastguard Worker					{
256*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
257*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot.art",
258*333d2b36SAndroid Build Coastguard Worker					},
259*333d2b36SAndroid Build Coastguard Worker					{
260*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
261*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot.oat",
262*333d2b36SAndroid Build Coastguard Worker					},
263*333d2b36SAndroid Build Coastguard Worker					{
264*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
265*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot-core2.art",
266*333d2b36SAndroid Build Coastguard Worker					},
267*333d2b36SAndroid Build Coastguard Worker					{
268*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
269*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot-core2.oat",
270*333d2b36SAndroid Build Coastguard Worker					},
271*333d2b36SAndroid Build Coastguard Worker					{
272*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.art",
273*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot-extra1.art",
274*333d2b36SAndroid Build Coastguard Worker					},
275*333d2b36SAndroid Build Coastguard Worker					{
276*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.oat",
277*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot-extra1.oat",
278*333d2b36SAndroid Build Coastguard Worker					},
279*333d2b36SAndroid Build Coastguard Worker				},
280*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
281*333d2b36SAndroid Build Coastguard Worker					{
282*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
283*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot.vdex",
284*333d2b36SAndroid Build Coastguard Worker					},
285*333d2b36SAndroid Build Coastguard Worker					{
286*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
287*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
288*333d2b36SAndroid Build Coastguard Worker					},
289*333d2b36SAndroid Build Coastguard Worker					{
290*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.vdex",
291*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot-extra1.vdex",
292*333d2b36SAndroid Build Coastguard Worker					},
293*333d2b36SAndroid Build Coastguard Worker				},
294*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
295*333d2b36SAndroid Build Coastguard Worker					{
296*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot.oat",
297*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot.oat",
298*333d2b36SAndroid Build Coastguard Worker					},
299*333d2b36SAndroid Build Coastguard Worker					{
300*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
301*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot-core2.oat",
302*333d2b36SAndroid Build Coastguard Worker					},
303*333d2b36SAndroid Build Coastguard Worker					{
304*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot-extra1.oat",
305*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm64/boot-extra1.oat",
306*333d2b36SAndroid Build Coastguard Worker					},
307*333d2b36SAndroid Build Coastguard Worker				},
308*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
309*333d2b36SAndroid Build Coastguard Worker			},
310*333d2b36SAndroid Build Coastguard Worker			{
311*333d2b36SAndroid Build Coastguard Worker				archType:          android.Arm,
312*333d2b36SAndroid Build Coastguard Worker				dexLocations:      []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar", "/system/framework/extra1.jar"},
313*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps:  []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar", "/system/framework/extra1.jar"},
314*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
315*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/apex/art_boot_images/javalib/arm/boot.art",
316*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
317*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
318*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
319*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
320*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
321*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
322*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
323*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.art",
324*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.oat",
325*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.vdex",
326*333d2b36SAndroid Build Coastguard Worker				},
327*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
328*333d2b36SAndroid Build Coastguard Worker					{
329*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
330*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot.art",
331*333d2b36SAndroid Build Coastguard Worker					},
332*333d2b36SAndroid Build Coastguard Worker					{
333*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
334*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot.oat",
335*333d2b36SAndroid Build Coastguard Worker					},
336*333d2b36SAndroid Build Coastguard Worker					{
337*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
338*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot-core2.art",
339*333d2b36SAndroid Build Coastguard Worker					},
340*333d2b36SAndroid Build Coastguard Worker					{
341*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
342*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot-core2.oat",
343*333d2b36SAndroid Build Coastguard Worker					},
344*333d2b36SAndroid Build Coastguard Worker					{
345*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.art",
346*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot-extra1.art",
347*333d2b36SAndroid Build Coastguard Worker					},
348*333d2b36SAndroid Build Coastguard Worker					{
349*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.oat",
350*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot-extra1.oat",
351*333d2b36SAndroid Build Coastguard Worker					},
352*333d2b36SAndroid Build Coastguard Worker				},
353*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
354*333d2b36SAndroid Build Coastguard Worker					{
355*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
356*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot.vdex",
357*333d2b36SAndroid Build Coastguard Worker					},
358*333d2b36SAndroid Build Coastguard Worker					{
359*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
360*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot-core2.vdex",
361*333d2b36SAndroid Build Coastguard Worker					},
362*333d2b36SAndroid Build Coastguard Worker					{
363*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.vdex",
364*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot-extra1.vdex",
365*333d2b36SAndroid Build Coastguard Worker					},
366*333d2b36SAndroid Build Coastguard Worker				},
367*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
368*333d2b36SAndroid Build Coastguard Worker					{
369*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot.oat",
370*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot.oat",
371*333d2b36SAndroid Build Coastguard Worker					},
372*333d2b36SAndroid Build Coastguard Worker					{
373*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
374*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot-core2.oat",
375*333d2b36SAndroid Build Coastguard Worker					},
376*333d2b36SAndroid Build Coastguard Worker					{
377*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot-extra1.oat",
378*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/arm/boot-extra1.oat",
379*333d2b36SAndroid Build Coastguard Worker					},
380*333d2b36SAndroid Build Coastguard Worker				},
381*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
382*333d2b36SAndroid Build Coastguard Worker			},
383*333d2b36SAndroid Build Coastguard Worker			{
384*333d2b36SAndroid Build Coastguard Worker				archType:          android.X86_64,
385*333d2b36SAndroid Build Coastguard Worker				dexLocations:      []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar", "host/linux-x86/system/framework/extra1.jar"},
386*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps:  []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar", "host/linux-x86/system/framework/extra1.jar"},
387*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
388*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/apex/art_boot_images/javalib/x86_64/boot.art",
389*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
390*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
391*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
392*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
393*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
394*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
395*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
396*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.art",
397*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.oat",
398*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.vdex",
399*333d2b36SAndroid Build Coastguard Worker				},
400*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
401*333d2b36SAndroid Build Coastguard Worker					{
402*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
403*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot.art",
404*333d2b36SAndroid Build Coastguard Worker					}, {
405*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
406*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot.oat",
407*333d2b36SAndroid Build Coastguard Worker					},
408*333d2b36SAndroid Build Coastguard Worker					{
409*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
410*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot-core2.art",
411*333d2b36SAndroid Build Coastguard Worker					}, {
412*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
413*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
414*333d2b36SAndroid Build Coastguard Worker					},
415*333d2b36SAndroid Build Coastguard Worker					{
416*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.art",
417*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot-extra1.art",
418*333d2b36SAndroid Build Coastguard Worker					}, {
419*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.oat",
420*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot-extra1.oat",
421*333d2b36SAndroid Build Coastguard Worker					},
422*333d2b36SAndroid Build Coastguard Worker				},
423*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
424*333d2b36SAndroid Build Coastguard Worker					{
425*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
426*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot.vdex",
427*333d2b36SAndroid Build Coastguard Worker					},
428*333d2b36SAndroid Build Coastguard Worker					{
429*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
430*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
431*333d2b36SAndroid Build Coastguard Worker					},
432*333d2b36SAndroid Build Coastguard Worker					{
433*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.vdex",
434*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot-extra1.vdex",
435*333d2b36SAndroid Build Coastguard Worker					},
436*333d2b36SAndroid Build Coastguard Worker				},
437*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
438*333d2b36SAndroid Build Coastguard Worker					{
439*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
440*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot.oat",
441*333d2b36SAndroid Build Coastguard Worker					},
442*333d2b36SAndroid Build Coastguard Worker					{
443*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
444*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
445*333d2b36SAndroid Build Coastguard Worker					},
446*333d2b36SAndroid Build Coastguard Worker					{
447*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.oat",
448*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86_64/boot-extra1.oat",
449*333d2b36SAndroid Build Coastguard Worker					},
450*333d2b36SAndroid Build Coastguard Worker				},
451*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
452*333d2b36SAndroid Build Coastguard Worker			},
453*333d2b36SAndroid Build Coastguard Worker			{
454*333d2b36SAndroid Build Coastguard Worker				archType:          android.X86,
455*333d2b36SAndroid Build Coastguard Worker				dexLocations:      []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar", "host/linux-x86/system/framework/extra1.jar"},
456*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps:  []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar", "host/linux-x86/system/framework/extra1.jar"},
457*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
458*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/apex/art_boot_images/javalib/x86/boot.art",
459*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
460*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
461*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
462*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
463*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
464*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
465*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
466*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.art",
467*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.oat",
468*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.vdex",
469*333d2b36SAndroid Build Coastguard Worker				},
470*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
471*333d2b36SAndroid Build Coastguard Worker					{
472*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
473*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot.art",
474*333d2b36SAndroid Build Coastguard Worker					}, {
475*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
476*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot.oat",
477*333d2b36SAndroid Build Coastguard Worker					},
478*333d2b36SAndroid Build Coastguard Worker					{
479*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
480*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot-core2.art",
481*333d2b36SAndroid Build Coastguard Worker					}, {
482*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
483*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot-core2.oat",
484*333d2b36SAndroid Build Coastguard Worker					},
485*333d2b36SAndroid Build Coastguard Worker					{
486*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.art",
487*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot-extra1.art",
488*333d2b36SAndroid Build Coastguard Worker					}, {
489*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.oat",
490*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot-extra1.oat",
491*333d2b36SAndroid Build Coastguard Worker					},
492*333d2b36SAndroid Build Coastguard Worker				},
493*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
494*333d2b36SAndroid Build Coastguard Worker					{
495*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
496*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot.vdex",
497*333d2b36SAndroid Build Coastguard Worker					},
498*333d2b36SAndroid Build Coastguard Worker					{
499*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
500*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot-core2.vdex",
501*333d2b36SAndroid Build Coastguard Worker					},
502*333d2b36SAndroid Build Coastguard Worker					{
503*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.vdex",
504*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot-extra1.vdex",
505*333d2b36SAndroid Build Coastguard Worker					},
506*333d2b36SAndroid Build Coastguard Worker				},
507*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
508*333d2b36SAndroid Build Coastguard Worker					{
509*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
510*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot.oat",
511*333d2b36SAndroid Build Coastguard Worker					},
512*333d2b36SAndroid Build Coastguard Worker					{
513*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
514*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot-core2.oat",
515*333d2b36SAndroid Build Coastguard Worker					},
516*333d2b36SAndroid Build Coastguard Worker					{
517*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.oat",
518*333d2b36SAndroid Build Coastguard Worker						to:   "/apex/art_boot_images/javalib/x86/boot-extra1.oat",
519*333d2b36SAndroid Build Coastguard Worker					},
520*333d2b36SAndroid Build Coastguard Worker				},
521*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
522*333d2b36SAndroid Build Coastguard Worker			},
523*333d2b36SAndroid Build Coastguard Worker		},
524*333d2b36SAndroid Build Coastguard Worker	}
525*333d2b36SAndroid Build Coastguard Worker
526*333d2b36SAndroid Build Coastguard Worker	checkBootImageConfig(t, result, imageConfig, mutated, expected)
527*333d2b36SAndroid Build Coastguard Worker}
528*333d2b36SAndroid Build Coastguard Worker
529*333d2b36SAndroid Build Coastguard Worker// getFrameworkImageConfig gets the framework bootImageConfig that was created during the test.
530*333d2b36SAndroid Build Coastguard Workerfunc getFrameworkImageConfig(result *android.TestResult) *bootImageConfig {
531*333d2b36SAndroid Build Coastguard Worker	pathCtx := &android.TestPathContext{TestResult: result}
532*333d2b36SAndroid Build Coastguard Worker	imageConfig := defaultBootImageConfig(pathCtx)
533*333d2b36SAndroid Build Coastguard Worker	return imageConfig
534*333d2b36SAndroid Build Coastguard Worker}
535*333d2b36SAndroid Build Coastguard Worker
536*333d2b36SAndroid Build Coastguard Worker// CheckFrameworkBootImageConfig checks the status of the fields of the bootImageConfig and
537*333d2b36SAndroid Build Coastguard Worker// bootImageVariant structures that are returned from defaultBootImageConfig.
538*333d2b36SAndroid Build Coastguard Worker//
539*333d2b36SAndroid Build Coastguard Worker// This is before any fields are mutated.
540*333d2b36SAndroid Build Coastguard Workerfunc CheckFrameworkBootImageConfig(t *testing.T, result *android.TestResult) {
541*333d2b36SAndroid Build Coastguard Worker	checkFrameworkBootImageConfig(t, result, false, "")
542*333d2b36SAndroid Build Coastguard Worker}
543*333d2b36SAndroid Build Coastguard Worker
544*333d2b36SAndroid Build Coastguard Worker// checkFrameworkBootImageConfig checks the framework boot image.
545*333d2b36SAndroid Build Coastguard Worker//
546*333d2b36SAndroid Build Coastguard Worker// mutated is true if this is called after fields in the image have been mutated by the
547*333d2b36SAndroid Build Coastguard Worker// platform_bootclasspath and false otherwise.
548*333d2b36SAndroid Build Coastguard Workerfunc checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mutated bool, expectedLicenseMetadataFile string) {
549*333d2b36SAndroid Build Coastguard Worker	imageConfig := getFrameworkImageConfig(result)
550*333d2b36SAndroid Build Coastguard Worker
551*333d2b36SAndroid Build Coastguard Worker	expected := &expectedConfig{
552*333d2b36SAndroid Build Coastguard Worker		name:                     "boot",
553*333d2b36SAndroid Build Coastguard Worker		stem:                     "boot",
554*333d2b36SAndroid Build Coastguard Worker		dir:                      "out/soong/dexpreopt_arm64/dex_bootjars",
555*333d2b36SAndroid Build Coastguard Worker		symbolsDir:               "out/soong/dexpreopt_arm64/dex_bootjars_unstripped",
556*333d2b36SAndroid Build Coastguard Worker		installDir:               "system/framework",
557*333d2b36SAndroid Build Coastguard Worker		profileInstallPathInApex: "",
558*333d2b36SAndroid Build Coastguard Worker		modules: android.CreateTestConfiguredJarList([]string{
559*333d2b36SAndroid Build Coastguard Worker			"com.android.art:core1",
560*333d2b36SAndroid Build Coastguard Worker			"com.android.art:core2",
561*333d2b36SAndroid Build Coastguard Worker			"platform:framework",
562*333d2b36SAndroid Build Coastguard Worker		}),
563*333d2b36SAndroid Build Coastguard Worker		dexPaths: []string{
564*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
565*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
566*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
567*333d2b36SAndroid Build Coastguard Worker		},
568*333d2b36SAndroid Build Coastguard Worker		dexPathsDeps: []string{
569*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
570*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
571*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
572*333d2b36SAndroid Build Coastguard Worker		},
573*333d2b36SAndroid Build Coastguard Worker		zip: "out/soong/dexpreopt_arm64/dex_bootjars/boot.zip",
574*333d2b36SAndroid Build Coastguard Worker		variants: []*expectedVariant{
575*333d2b36SAndroid Build Coastguard Worker			{
576*333d2b36SAndroid Build Coastguard Worker				archType: android.Arm64,
577*333d2b36SAndroid Build Coastguard Worker				dexLocations: []string{
578*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core1.jar",
579*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core2.jar",
580*333d2b36SAndroid Build Coastguard Worker					"/system/framework/framework.jar",
581*333d2b36SAndroid Build Coastguard Worker				},
582*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps: []string{
583*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core1.jar",
584*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core2.jar",
585*333d2b36SAndroid Build Coastguard Worker					"/system/framework/framework.jar",
586*333d2b36SAndroid Build Coastguard Worker				},
587*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
588*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/system/framework/arm64/boot.art",
589*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
590*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
591*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
592*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
593*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
594*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
595*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
596*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
597*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
598*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
599*333d2b36SAndroid Build Coastguard Worker				},
600*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
601*333d2b36SAndroid Build Coastguard Worker					{
602*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
603*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot.art",
604*333d2b36SAndroid Build Coastguard Worker					},
605*333d2b36SAndroid Build Coastguard Worker					{
606*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
607*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot.oat",
608*333d2b36SAndroid Build Coastguard Worker					},
609*333d2b36SAndroid Build Coastguard Worker					{
610*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
611*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-core2.art",
612*333d2b36SAndroid Build Coastguard Worker					},
613*333d2b36SAndroid Build Coastguard Worker					{
614*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
615*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-core2.oat",
616*333d2b36SAndroid Build Coastguard Worker					},
617*333d2b36SAndroid Build Coastguard Worker					{
618*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
619*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-framework.art",
620*333d2b36SAndroid Build Coastguard Worker					},
621*333d2b36SAndroid Build Coastguard Worker					{
622*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
623*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-framework.oat",
624*333d2b36SAndroid Build Coastguard Worker					},
625*333d2b36SAndroid Build Coastguard Worker				},
626*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
627*333d2b36SAndroid Build Coastguard Worker					{
628*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
629*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot.vdex",
630*333d2b36SAndroid Build Coastguard Worker					},
631*333d2b36SAndroid Build Coastguard Worker					{
632*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
633*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-core2.vdex",
634*333d2b36SAndroid Build Coastguard Worker					},
635*333d2b36SAndroid Build Coastguard Worker					{
636*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
637*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-framework.vdex",
638*333d2b36SAndroid Build Coastguard Worker					},
639*333d2b36SAndroid Build Coastguard Worker				},
640*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
641*333d2b36SAndroid Build Coastguard Worker					{
642*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot.oat",
643*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot.oat",
644*333d2b36SAndroid Build Coastguard Worker					},
645*333d2b36SAndroid Build Coastguard Worker					{
646*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-core2.oat",
647*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-core2.oat",
648*333d2b36SAndroid Build Coastguard Worker					},
649*333d2b36SAndroid Build Coastguard Worker					{
650*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat",
651*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-framework.oat",
652*333d2b36SAndroid Build Coastguard Worker					},
653*333d2b36SAndroid Build Coastguard Worker				},
654*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
655*333d2b36SAndroid Build Coastguard Worker			},
656*333d2b36SAndroid Build Coastguard Worker			{
657*333d2b36SAndroid Build Coastguard Worker				archType: android.Arm,
658*333d2b36SAndroid Build Coastguard Worker				dexLocations: []string{
659*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core1.jar",
660*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core2.jar",
661*333d2b36SAndroid Build Coastguard Worker					"/system/framework/framework.jar",
662*333d2b36SAndroid Build Coastguard Worker				},
663*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps: []string{
664*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core1.jar",
665*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core2.jar",
666*333d2b36SAndroid Build Coastguard Worker					"/system/framework/framework.jar",
667*333d2b36SAndroid Build Coastguard Worker				},
668*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
669*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/system/framework/arm/boot.art",
670*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
671*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
672*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
673*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
674*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
675*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
676*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
677*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
678*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
679*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
680*333d2b36SAndroid Build Coastguard Worker				},
681*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
682*333d2b36SAndroid Build Coastguard Worker					{
683*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
684*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot.art",
685*333d2b36SAndroid Build Coastguard Worker					},
686*333d2b36SAndroid Build Coastguard Worker					{
687*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
688*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot.oat",
689*333d2b36SAndroid Build Coastguard Worker					},
690*333d2b36SAndroid Build Coastguard Worker					{
691*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
692*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-core2.art",
693*333d2b36SAndroid Build Coastguard Worker					},
694*333d2b36SAndroid Build Coastguard Worker					{
695*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
696*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-core2.oat",
697*333d2b36SAndroid Build Coastguard Worker					},
698*333d2b36SAndroid Build Coastguard Worker					{
699*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
700*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-framework.art",
701*333d2b36SAndroid Build Coastguard Worker					},
702*333d2b36SAndroid Build Coastguard Worker					{
703*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
704*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-framework.oat",
705*333d2b36SAndroid Build Coastguard Worker					},
706*333d2b36SAndroid Build Coastguard Worker				},
707*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
708*333d2b36SAndroid Build Coastguard Worker					{
709*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
710*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot.vdex",
711*333d2b36SAndroid Build Coastguard Worker					},
712*333d2b36SAndroid Build Coastguard Worker					{
713*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
714*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-core2.vdex",
715*333d2b36SAndroid Build Coastguard Worker					},
716*333d2b36SAndroid Build Coastguard Worker					{
717*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
718*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-framework.vdex",
719*333d2b36SAndroid Build Coastguard Worker					},
720*333d2b36SAndroid Build Coastguard Worker				},
721*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
722*333d2b36SAndroid Build Coastguard Worker					{
723*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot.oat",
724*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot.oat",
725*333d2b36SAndroid Build Coastguard Worker					},
726*333d2b36SAndroid Build Coastguard Worker					{
727*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-core2.oat",
728*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-core2.oat",
729*333d2b36SAndroid Build Coastguard Worker					},
730*333d2b36SAndroid Build Coastguard Worker					{
731*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat",
732*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-framework.oat",
733*333d2b36SAndroid Build Coastguard Worker					},
734*333d2b36SAndroid Build Coastguard Worker				},
735*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
736*333d2b36SAndroid Build Coastguard Worker			},
737*333d2b36SAndroid Build Coastguard Worker			{
738*333d2b36SAndroid Build Coastguard Worker				archType: android.X86_64,
739*333d2b36SAndroid Build Coastguard Worker				dexLocations: []string{
740*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core1.jar",
741*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core2.jar",
742*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/system/framework/framework.jar",
743*333d2b36SAndroid Build Coastguard Worker				},
744*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps: []string{
745*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core1.jar",
746*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core2.jar",
747*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/system/framework/framework.jar",
748*333d2b36SAndroid Build Coastguard Worker				},
749*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
750*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/system/framework/x86_64/boot.art",
751*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
752*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
753*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
754*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
755*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
756*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
757*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
758*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
759*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
760*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
761*333d2b36SAndroid Build Coastguard Worker				},
762*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
763*333d2b36SAndroid Build Coastguard Worker					{
764*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
765*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot.art",
766*333d2b36SAndroid Build Coastguard Worker					},
767*333d2b36SAndroid Build Coastguard Worker					{
768*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
769*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot.oat",
770*333d2b36SAndroid Build Coastguard Worker					},
771*333d2b36SAndroid Build Coastguard Worker					{
772*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
773*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-core2.art",
774*333d2b36SAndroid Build Coastguard Worker					},
775*333d2b36SAndroid Build Coastguard Worker					{
776*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
777*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-core2.oat",
778*333d2b36SAndroid Build Coastguard Worker					},
779*333d2b36SAndroid Build Coastguard Worker					{
780*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
781*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-framework.art",
782*333d2b36SAndroid Build Coastguard Worker					},
783*333d2b36SAndroid Build Coastguard Worker					{
784*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
785*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-framework.oat",
786*333d2b36SAndroid Build Coastguard Worker					},
787*333d2b36SAndroid Build Coastguard Worker				},
788*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
789*333d2b36SAndroid Build Coastguard Worker					{
790*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
791*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot.vdex",
792*333d2b36SAndroid Build Coastguard Worker					},
793*333d2b36SAndroid Build Coastguard Worker					{
794*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
795*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-core2.vdex",
796*333d2b36SAndroid Build Coastguard Worker					},
797*333d2b36SAndroid Build Coastguard Worker					{
798*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
799*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-framework.vdex",
800*333d2b36SAndroid Build Coastguard Worker					},
801*333d2b36SAndroid Build Coastguard Worker				},
802*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
803*333d2b36SAndroid Build Coastguard Worker					{
804*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot.oat",
805*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot.oat",
806*333d2b36SAndroid Build Coastguard Worker					},
807*333d2b36SAndroid Build Coastguard Worker					{
808*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-core2.oat",
809*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-core2.oat",
810*333d2b36SAndroid Build Coastguard Worker					},
811*333d2b36SAndroid Build Coastguard Worker					{
812*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat",
813*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-framework.oat",
814*333d2b36SAndroid Build Coastguard Worker					},
815*333d2b36SAndroid Build Coastguard Worker				},
816*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
817*333d2b36SAndroid Build Coastguard Worker			},
818*333d2b36SAndroid Build Coastguard Worker			{
819*333d2b36SAndroid Build Coastguard Worker				archType: android.X86,
820*333d2b36SAndroid Build Coastguard Worker				dexLocations: []string{
821*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core1.jar",
822*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core2.jar",
823*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/system/framework/framework.jar",
824*333d2b36SAndroid Build Coastguard Worker				},
825*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps: []string{
826*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core1.jar",
827*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core2.jar",
828*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/system/framework/framework.jar",
829*333d2b36SAndroid Build Coastguard Worker				},
830*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
831*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/system/framework/x86/boot.art",
832*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
833*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
834*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
835*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
836*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
837*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
838*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
839*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
840*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
841*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
842*333d2b36SAndroid Build Coastguard Worker				},
843*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
844*333d2b36SAndroid Build Coastguard Worker					{
845*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
846*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot.art",
847*333d2b36SAndroid Build Coastguard Worker					},
848*333d2b36SAndroid Build Coastguard Worker					{
849*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
850*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot.oat",
851*333d2b36SAndroid Build Coastguard Worker					},
852*333d2b36SAndroid Build Coastguard Worker					{
853*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
854*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-core2.art",
855*333d2b36SAndroid Build Coastguard Worker					},
856*333d2b36SAndroid Build Coastguard Worker					{
857*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
858*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-core2.oat",
859*333d2b36SAndroid Build Coastguard Worker					},
860*333d2b36SAndroid Build Coastguard Worker					{
861*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
862*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-framework.art",
863*333d2b36SAndroid Build Coastguard Worker					},
864*333d2b36SAndroid Build Coastguard Worker					{
865*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
866*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-framework.oat",
867*333d2b36SAndroid Build Coastguard Worker					},
868*333d2b36SAndroid Build Coastguard Worker				},
869*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
870*333d2b36SAndroid Build Coastguard Worker					{
871*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
872*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot.vdex",
873*333d2b36SAndroid Build Coastguard Worker					},
874*333d2b36SAndroid Build Coastguard Worker					{
875*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
876*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-core2.vdex",
877*333d2b36SAndroid Build Coastguard Worker					},
878*333d2b36SAndroid Build Coastguard Worker					{
879*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
880*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-framework.vdex",
881*333d2b36SAndroid Build Coastguard Worker					},
882*333d2b36SAndroid Build Coastguard Worker				},
883*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
884*333d2b36SAndroid Build Coastguard Worker					{
885*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot.oat",
886*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot.oat",
887*333d2b36SAndroid Build Coastguard Worker					},
888*333d2b36SAndroid Build Coastguard Worker					{
889*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-core2.oat",
890*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-core2.oat",
891*333d2b36SAndroid Build Coastguard Worker					},
892*333d2b36SAndroid Build Coastguard Worker					{
893*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat",
894*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-framework.oat",
895*333d2b36SAndroid Build Coastguard Worker					},
896*333d2b36SAndroid Build Coastguard Worker				},
897*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
898*333d2b36SAndroid Build Coastguard Worker			},
899*333d2b36SAndroid Build Coastguard Worker		},
900*333d2b36SAndroid Build Coastguard Worker		profileInstalls: []normalizedInstall{
901*333d2b36SAndroid Build Coastguard Worker			{from: "out/soong/.intermediates/default/java/dex_bootjars/android_common/boot/boot.prof", to: "/system/etc/boot-image.prof"},
902*333d2b36SAndroid Build Coastguard Worker			{from: "out/soong/dexpreopt_arm64/dex_bootjars/boot.bprof", to: "/system/etc/boot-image.bprof"},
903*333d2b36SAndroid Build Coastguard Worker		},
904*333d2b36SAndroid Build Coastguard Worker		profileLicenseMetadataFile: expectedLicenseMetadataFile,
905*333d2b36SAndroid Build Coastguard Worker	}
906*333d2b36SAndroid Build Coastguard Worker
907*333d2b36SAndroid Build Coastguard Worker	checkBootImageConfig(t, result, imageConfig, mutated, expected)
908*333d2b36SAndroid Build Coastguard Worker}
909*333d2b36SAndroid Build Coastguard Worker
910*333d2b36SAndroid Build Coastguard Worker// getMainlineImageConfig gets the framework bootImageConfig that was created during the test.
911*333d2b36SAndroid Build Coastguard Workerfunc getMainlineImageConfig(result *android.TestResult) *bootImageConfig {
912*333d2b36SAndroid Build Coastguard Worker	pathCtx := &android.TestPathContext{TestResult: result}
913*333d2b36SAndroid Build Coastguard Worker	imageConfig := mainlineBootImageConfig(pathCtx)
914*333d2b36SAndroid Build Coastguard Worker	return imageConfig
915*333d2b36SAndroid Build Coastguard Worker}
916*333d2b36SAndroid Build Coastguard Worker
917*333d2b36SAndroid Build Coastguard Worker// CheckMainlineBootImageConfig checks the status of the fields of the bootImageConfig and
918*333d2b36SAndroid Build Coastguard Worker// bootImageVariant structures that are returned from mainlineBootImageConfig.
919*333d2b36SAndroid Build Coastguard Worker//
920*333d2b36SAndroid Build Coastguard Worker// This is before any fields are mutated.
921*333d2b36SAndroid Build Coastguard Workerfunc CheckMainlineBootImageConfig(t *testing.T, result *android.TestResult) {
922*333d2b36SAndroid Build Coastguard Worker	expectedLicenseMetadataFile := ""
923*333d2b36SAndroid Build Coastguard Worker	imageConfig := getMainlineImageConfig(result)
924*333d2b36SAndroid Build Coastguard Worker
925*333d2b36SAndroid Build Coastguard Worker	expected := &expectedConfig{
926*333d2b36SAndroid Build Coastguard Worker		name:                     "mainline",
927*333d2b36SAndroid Build Coastguard Worker		stem:                     "boot",
928*333d2b36SAndroid Build Coastguard Worker		dir:                      "out/soong/dexpreopt_arm64/dex_mainlinejars",
929*333d2b36SAndroid Build Coastguard Worker		symbolsDir:               "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped",
930*333d2b36SAndroid Build Coastguard Worker		installDir:               "system/framework",
931*333d2b36SAndroid Build Coastguard Worker		profileInstallPathInApex: "",
932*333d2b36SAndroid Build Coastguard Worker		modules: android.CreateTestConfiguredJarList([]string{
933*333d2b36SAndroid Build Coastguard Worker			"com.android.foo:framework-foo",
934*333d2b36SAndroid Build Coastguard Worker			"com.android.bar:framework-bar",
935*333d2b36SAndroid Build Coastguard Worker		}),
936*333d2b36SAndroid Build Coastguard Worker		dexPaths: []string{
937*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
938*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
939*333d2b36SAndroid Build Coastguard Worker		},
940*333d2b36SAndroid Build Coastguard Worker		dexPathsDeps: []string{
941*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_bootjars_input/core1.jar",
942*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_bootjars_input/core2.jar",
943*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_bootjars_input/framework.jar",
944*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-foo.jar",
945*333d2b36SAndroid Build Coastguard Worker			"out/soong/dexpreopt_arm64/dex_mainlinejars_input/framework-bar.jar",
946*333d2b36SAndroid Build Coastguard Worker		},
947*333d2b36SAndroid Build Coastguard Worker		zip: "out/soong/dexpreopt_arm64/dex_mainlinejars/mainline.zip",
948*333d2b36SAndroid Build Coastguard Worker		variants: []*expectedVariant{
949*333d2b36SAndroid Build Coastguard Worker			{
950*333d2b36SAndroid Build Coastguard Worker				archType: android.Arm64,
951*333d2b36SAndroid Build Coastguard Worker				dexLocations: []string{
952*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.foo/javalib/framework-foo.jar",
953*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.bar/javalib/framework-bar.jar",
954*333d2b36SAndroid Build Coastguard Worker				},
955*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps: []string{
956*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core1.jar",
957*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core2.jar",
958*333d2b36SAndroid Build Coastguard Worker					"/system/framework/framework.jar",
959*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.foo/javalib/framework-foo.jar",
960*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.bar/javalib/framework-bar.jar",
961*333d2b36SAndroid Build Coastguard Worker				},
962*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
963*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/system/framework/arm64/boot-framework-foo.art",
964*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
965*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
966*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat",
967*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
968*333d2b36SAndroid Build Coastguard Worker				},
969*333d2b36SAndroid Build Coastguard Worker				baseImages: []string{
970*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
971*333d2b36SAndroid Build Coastguard Worker				},
972*333d2b36SAndroid Build Coastguard Worker				baseImagesDeps: []string{
973*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art",
974*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.oat",
975*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.vdex",
976*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.art",
977*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.oat",
978*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-core2.vdex",
979*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.art",
980*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
981*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
982*333d2b36SAndroid Build Coastguard Worker				},
983*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
984*333d2b36SAndroid Build Coastguard Worker					{
985*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art",
986*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-framework-foo.art",
987*333d2b36SAndroid Build Coastguard Worker					},
988*333d2b36SAndroid Build Coastguard Worker					{
989*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.oat",
990*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-framework-foo.oat",
991*333d2b36SAndroid Build Coastguard Worker					},
992*333d2b36SAndroid Build Coastguard Worker				},
993*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
994*333d2b36SAndroid Build Coastguard Worker					{
995*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.vdex",
996*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-framework-foo.vdex",
997*333d2b36SAndroid Build Coastguard Worker					},
998*333d2b36SAndroid Build Coastguard Worker				},
999*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
1000*333d2b36SAndroid Build Coastguard Worker					{
1001*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm64/boot-framework-foo.oat",
1002*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm64/boot-framework-foo.oat",
1003*333d2b36SAndroid Build Coastguard Worker					},
1004*333d2b36SAndroid Build Coastguard Worker				},
1005*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
1006*333d2b36SAndroid Build Coastguard Worker			},
1007*333d2b36SAndroid Build Coastguard Worker			{
1008*333d2b36SAndroid Build Coastguard Worker				archType: android.Arm,
1009*333d2b36SAndroid Build Coastguard Worker				dexLocations: []string{
1010*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.foo/javalib/framework-foo.jar",
1011*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.bar/javalib/framework-bar.jar",
1012*333d2b36SAndroid Build Coastguard Worker				},
1013*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps: []string{
1014*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core1.jar",
1015*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.art/javalib/core2.jar",
1016*333d2b36SAndroid Build Coastguard Worker					"/system/framework/framework.jar",
1017*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.foo/javalib/framework-foo.jar",
1018*333d2b36SAndroid Build Coastguard Worker					"/apex/com.android.bar/javalib/framework-bar.jar",
1019*333d2b36SAndroid Build Coastguard Worker				},
1020*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
1021*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/system/framework/arm/boot-framework-foo.art",
1022*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
1023*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
1024*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat",
1025*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
1026*333d2b36SAndroid Build Coastguard Worker				},
1027*333d2b36SAndroid Build Coastguard Worker				baseImages: []string{
1028*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
1029*333d2b36SAndroid Build Coastguard Worker				},
1030*333d2b36SAndroid Build Coastguard Worker				baseImagesDeps: []string{
1031*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art",
1032*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.oat",
1033*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.vdex",
1034*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.art",
1035*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.oat",
1036*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-core2.vdex",
1037*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.art",
1038*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.oat",
1039*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
1040*333d2b36SAndroid Build Coastguard Worker				},
1041*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
1042*333d2b36SAndroid Build Coastguard Worker					{
1043*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art",
1044*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-framework-foo.art",
1045*333d2b36SAndroid Build Coastguard Worker					},
1046*333d2b36SAndroid Build Coastguard Worker					{
1047*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.oat",
1048*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-framework-foo.oat",
1049*333d2b36SAndroid Build Coastguard Worker					},
1050*333d2b36SAndroid Build Coastguard Worker				},
1051*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
1052*333d2b36SAndroid Build Coastguard Worker					{
1053*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.vdex",
1054*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-framework-foo.vdex",
1055*333d2b36SAndroid Build Coastguard Worker					},
1056*333d2b36SAndroid Build Coastguard Worker				},
1057*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
1058*333d2b36SAndroid Build Coastguard Worker					{
1059*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/android/system/framework/arm/boot-framework-foo.oat",
1060*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/arm/boot-framework-foo.oat",
1061*333d2b36SAndroid Build Coastguard Worker					},
1062*333d2b36SAndroid Build Coastguard Worker				},
1063*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
1064*333d2b36SAndroid Build Coastguard Worker			},
1065*333d2b36SAndroid Build Coastguard Worker			{
1066*333d2b36SAndroid Build Coastguard Worker				archType: android.X86_64,
1067*333d2b36SAndroid Build Coastguard Worker				dexLocations: []string{
1068*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
1069*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
1070*333d2b36SAndroid Build Coastguard Worker				},
1071*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps: []string{
1072*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core1.jar",
1073*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core2.jar",
1074*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/system/framework/framework.jar",
1075*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
1076*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
1077*333d2b36SAndroid Build Coastguard Worker				},
1078*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
1079*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/system/framework/x86_64/boot-framework-foo.art",
1080*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
1081*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
1082*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
1083*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
1084*333d2b36SAndroid Build Coastguard Worker				},
1085*333d2b36SAndroid Build Coastguard Worker				baseImages: []string{
1086*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
1087*333d2b36SAndroid Build Coastguard Worker				},
1088*333d2b36SAndroid Build Coastguard Worker				baseImagesDeps: []string{
1089*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art",
1090*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.oat",
1091*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.vdex",
1092*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.art",
1093*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.oat",
1094*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-core2.vdex",
1095*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
1096*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
1097*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
1098*333d2b36SAndroid Build Coastguard Worker				},
1099*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
1100*333d2b36SAndroid Build Coastguard Worker					{
1101*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art",
1102*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-framework-foo.art",
1103*333d2b36SAndroid Build Coastguard Worker					},
1104*333d2b36SAndroid Build Coastguard Worker					{
1105*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
1106*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-framework-foo.oat",
1107*333d2b36SAndroid Build Coastguard Worker					},
1108*333d2b36SAndroid Build Coastguard Worker				},
1109*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
1110*333d2b36SAndroid Build Coastguard Worker					{
1111*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.vdex",
1112*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-framework-foo.vdex",
1113*333d2b36SAndroid Build Coastguard Worker					},
1114*333d2b36SAndroid Build Coastguard Worker				},
1115*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
1116*333d2b36SAndroid Build Coastguard Worker					{
1117*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86_64/boot-framework-foo.oat",
1118*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86_64/boot-framework-foo.oat",
1119*333d2b36SAndroid Build Coastguard Worker					},
1120*333d2b36SAndroid Build Coastguard Worker				},
1121*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
1122*333d2b36SAndroid Build Coastguard Worker			},
1123*333d2b36SAndroid Build Coastguard Worker			{
1124*333d2b36SAndroid Build Coastguard Worker				archType: android.X86,
1125*333d2b36SAndroid Build Coastguard Worker				dexLocations: []string{
1126*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
1127*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
1128*333d2b36SAndroid Build Coastguard Worker				},
1129*333d2b36SAndroid Build Coastguard Worker				dexLocationsDeps: []string{
1130*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core1.jar",
1131*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.art/javalib/core2.jar",
1132*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/system/framework/framework.jar",
1133*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.foo/javalib/framework-foo.jar",
1134*333d2b36SAndroid Build Coastguard Worker					"host/linux-x86/apex/com.android.bar/javalib/framework-bar.jar",
1135*333d2b36SAndroid Build Coastguard Worker				},
1136*333d2b36SAndroid Build Coastguard Worker				imagePathOnHost:   "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
1137*333d2b36SAndroid Build Coastguard Worker				imagePathOnDevice: "/system/framework/x86/boot-framework-foo.art",
1138*333d2b36SAndroid Build Coastguard Worker				imagesDeps: []string{
1139*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
1140*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat",
1141*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
1142*333d2b36SAndroid Build Coastguard Worker				},
1143*333d2b36SAndroid Build Coastguard Worker				baseImages: []string{
1144*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
1145*333d2b36SAndroid Build Coastguard Worker				},
1146*333d2b36SAndroid Build Coastguard Worker				baseImagesDeps: []string{
1147*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art",
1148*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.oat",
1149*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.vdex",
1150*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.art",
1151*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.oat",
1152*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-core2.vdex",
1153*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
1154*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
1155*333d2b36SAndroid Build Coastguard Worker					"out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
1156*333d2b36SAndroid Build Coastguard Worker				},
1157*333d2b36SAndroid Build Coastguard Worker				installs: []normalizedInstall{
1158*333d2b36SAndroid Build Coastguard Worker					{
1159*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art",
1160*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-framework-foo.art",
1161*333d2b36SAndroid Build Coastguard Worker					},
1162*333d2b36SAndroid Build Coastguard Worker					{
1163*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.oat",
1164*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-framework-foo.oat",
1165*333d2b36SAndroid Build Coastguard Worker					},
1166*333d2b36SAndroid Build Coastguard Worker				},
1167*333d2b36SAndroid Build Coastguard Worker				vdexInstalls: []normalizedInstall{
1168*333d2b36SAndroid Build Coastguard Worker					{
1169*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.vdex",
1170*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-framework-foo.vdex",
1171*333d2b36SAndroid Build Coastguard Worker					},
1172*333d2b36SAndroid Build Coastguard Worker				},
1173*333d2b36SAndroid Build Coastguard Worker				unstrippedInstalls: []normalizedInstall{
1174*333d2b36SAndroid Build Coastguard Worker					{
1175*333d2b36SAndroid Build Coastguard Worker						from: "out/soong/dexpreopt_arm64/dex_mainlinejars_unstripped/linux_glibc/system/framework/x86/boot-framework-foo.oat",
1176*333d2b36SAndroid Build Coastguard Worker						to:   "/system/framework/x86/boot-framework-foo.oat",
1177*333d2b36SAndroid Build Coastguard Worker					},
1178*333d2b36SAndroid Build Coastguard Worker				},
1179*333d2b36SAndroid Build Coastguard Worker				licenseMetadataFile: expectedLicenseMetadataFile,
1180*333d2b36SAndroid Build Coastguard Worker			},
1181*333d2b36SAndroid Build Coastguard Worker		},
1182*333d2b36SAndroid Build Coastguard Worker		profileInstalls:            []normalizedInstall{},
1183*333d2b36SAndroid Build Coastguard Worker		profileLicenseMetadataFile: expectedLicenseMetadataFile,
1184*333d2b36SAndroid Build Coastguard Worker	}
1185*333d2b36SAndroid Build Coastguard Worker
1186*333d2b36SAndroid Build Coastguard Worker	checkBootImageConfig(t, result, imageConfig, false, expected)
1187*333d2b36SAndroid Build Coastguard Worker}
1188*333d2b36SAndroid Build Coastguard Worker
1189*333d2b36SAndroid Build Coastguard Worker// clearMutatedFields clears fields in the expectedConfig that correspond to fields in the
1190*333d2b36SAndroid Build Coastguard Worker// bootImageConfig/bootImageVariant structs which are mutated outside the call to
1191*333d2b36SAndroid Build Coastguard Worker// genBootImageConfigs.
1192*333d2b36SAndroid Build Coastguard Worker//
1193*333d2b36SAndroid Build Coastguard Worker// This allows the resulting expectedConfig struct to be compared against the values of those boot
1194*333d2b36SAndroid Build Coastguard Worker// image structs immediately the call to genBootImageConfigs. If this is not called then the
1195*333d2b36SAndroid Build Coastguard Worker// expectedConfig struct will expect the boot image structs to have been mutated by the ART
1196*333d2b36SAndroid Build Coastguard Worker// bootclasspath_fragment and the platform_bootclasspath.
1197*333d2b36SAndroid Build Coastguard Workerfunc clearMutatedFields(expected *expectedConfig) {
1198*333d2b36SAndroid Build Coastguard Worker	expected.profileInstalls = nil
1199*333d2b36SAndroid Build Coastguard Worker	expected.profileLicenseMetadataFile = ""
1200*333d2b36SAndroid Build Coastguard Worker	for _, variant := range expected.variants {
1201*333d2b36SAndroid Build Coastguard Worker		variant.installs = nil
1202*333d2b36SAndroid Build Coastguard Worker		variant.vdexInstalls = nil
1203*333d2b36SAndroid Build Coastguard Worker		variant.unstrippedInstalls = nil
1204*333d2b36SAndroid Build Coastguard Worker		variant.licenseMetadataFile = ""
1205*333d2b36SAndroid Build Coastguard Worker	}
1206*333d2b36SAndroid Build Coastguard Worker}
1207*333d2b36SAndroid Build Coastguard Worker
1208*333d2b36SAndroid Build Coastguard Worker// checkBootImageConfig checks a boot image against the expected contents.
1209*333d2b36SAndroid Build Coastguard Worker//
1210*333d2b36SAndroid Build Coastguard Worker// If mutated is false then this will clear any mutated fields in the expected contents back to the
1211*333d2b36SAndroid Build Coastguard Worker// zero value so that they will match the unmodified values in the boot image.
1212*333d2b36SAndroid Build Coastguard Worker//
1213*333d2b36SAndroid Build Coastguard Worker// It runs the checks in an image specific subtest of the current test.
1214*333d2b36SAndroid Build Coastguard Workerfunc checkBootImageConfig(t *testing.T, result *android.TestResult, imageConfig *bootImageConfig, mutated bool, expected *expectedConfig) {
1215*333d2b36SAndroid Build Coastguard Worker	if !mutated {
1216*333d2b36SAndroid Build Coastguard Worker		clearMutatedFields(expected)
1217*333d2b36SAndroid Build Coastguard Worker	}
1218*333d2b36SAndroid Build Coastguard Worker
1219*333d2b36SAndroid Build Coastguard Worker	t.Run(imageConfig.name, func(t *testing.T) {
1220*333d2b36SAndroid Build Coastguard Worker		nestedCheckBootImageConfig(t, result, imageConfig, mutated, expected)
1221*333d2b36SAndroid Build Coastguard Worker	})
1222*333d2b36SAndroid Build Coastguard Worker}
1223*333d2b36SAndroid Build Coastguard Worker
1224*333d2b36SAndroid Build Coastguard Worker// nestedCheckBootImageConfig does the work of comparing the image against the expected values and
1225*333d2b36SAndroid Build Coastguard Worker// is run in an image specific subtest.
1226*333d2b36SAndroid Build Coastguard Workerfunc nestedCheckBootImageConfig(t *testing.T, result *android.TestResult, imageConfig *bootImageConfig, mutated bool, expected *expectedConfig) {
1227*333d2b36SAndroid Build Coastguard Worker	android.AssertStringEquals(t, "name", expected.name, imageConfig.name)
1228*333d2b36SAndroid Build Coastguard Worker	android.AssertStringEquals(t, "stem", expected.stem, imageConfig.stem)
1229*333d2b36SAndroid Build Coastguard Worker	android.AssertPathRelativeToTopEquals(t, "dir", expected.dir, imageConfig.dir)
1230*333d2b36SAndroid Build Coastguard Worker	android.AssertPathRelativeToTopEquals(t, "symbolsDir", expected.symbolsDir, imageConfig.symbolsDir)
1231*333d2b36SAndroid Build Coastguard Worker	android.AssertStringEquals(t, "installDir", expected.installDir, imageConfig.installDir)
1232*333d2b36SAndroid Build Coastguard Worker	android.AssertDeepEquals(t, "modules", expected.modules, imageConfig.modules)
1233*333d2b36SAndroid Build Coastguard Worker	android.AssertPathsRelativeToTopEquals(t, "dexPaths", expected.dexPaths, imageConfig.dexPaths.Paths())
1234*333d2b36SAndroid Build Coastguard Worker	android.AssertPathsRelativeToTopEquals(t, "dexPathsDeps", expected.dexPathsDeps, imageConfig.dexPathsDeps.Paths())
1235*333d2b36SAndroid Build Coastguard Worker	// dexPathsByModule is just a different representation of the other information in the config.
1236*333d2b36SAndroid Build Coastguard Worker	android.AssertPathRelativeToTopEquals(t, "zip", expected.zip, imageConfig.zip)
1237*333d2b36SAndroid Build Coastguard Worker
1238*333d2b36SAndroid Build Coastguard Worker	if !mutated {
1239*333d2b36SAndroid Build Coastguard Worker		dexBootJarModule := result.ModuleForTests("dex_bootjars", "android_common")
1240*333d2b36SAndroid Build Coastguard Worker		profileInstallInfo, _ := android.OtherModuleProvider(result, dexBootJarModule.Module(), profileInstallInfoProvider)
1241*333d2b36SAndroid Build Coastguard Worker		assertInstallsEqual(t, "profileInstalls", expected.profileInstalls, profileInstallInfo.profileInstalls)
1242*333d2b36SAndroid Build Coastguard Worker		android.AssertStringEquals(t, "profileLicenseMetadataFile", expected.profileLicenseMetadataFile, profileInstallInfo.profileLicenseMetadataFile.RelativeToTop().String())
1243*333d2b36SAndroid Build Coastguard Worker	}
1244*333d2b36SAndroid Build Coastguard Worker
1245*333d2b36SAndroid Build Coastguard Worker	android.AssertIntEquals(t, "variant count", 4, len(imageConfig.variants))
1246*333d2b36SAndroid Build Coastguard Worker	for i, variant := range imageConfig.variants {
1247*333d2b36SAndroid Build Coastguard Worker		expectedVariant := expected.variants[i]
1248*333d2b36SAndroid Build Coastguard Worker		t.Run(variant.target.Arch.ArchType.String(), func(t *testing.T) {
1249*333d2b36SAndroid Build Coastguard Worker			android.AssertDeepEquals(t, "archType", expectedVariant.archType, variant.target.Arch.ArchType)
1250*333d2b36SAndroid Build Coastguard Worker			android.AssertDeepEquals(t, "dexLocations", expectedVariant.dexLocations, variant.dexLocations)
1251*333d2b36SAndroid Build Coastguard Worker			android.AssertDeepEquals(t, "dexLocationsDeps", expectedVariant.dexLocationsDeps, variant.dexLocationsDeps)
1252*333d2b36SAndroid Build Coastguard Worker			android.AssertPathRelativeToTopEquals(t, "imagePathOnHost", expectedVariant.imagePathOnHost, variant.imagePathOnHost)
1253*333d2b36SAndroid Build Coastguard Worker			android.AssertStringEquals(t, "imagePathOnDevice", expectedVariant.imagePathOnDevice, variant.imagePathOnDevice)
1254*333d2b36SAndroid Build Coastguard Worker			android.AssertPathsRelativeToTopEquals(t, "imagesDeps", expectedVariant.imagesDeps, variant.imagesDeps.Paths())
1255*333d2b36SAndroid Build Coastguard Worker			android.AssertPathsRelativeToTopEquals(t, "baseImages", expectedVariant.baseImages, variant.baseImages.Paths())
1256*333d2b36SAndroid Build Coastguard Worker			android.AssertPathsRelativeToTopEquals(t, "baseImagesDeps", expectedVariant.baseImagesDeps, variant.baseImagesDeps)
1257*333d2b36SAndroid Build Coastguard Worker			assertInstallsEqual(t, "installs", expectedVariant.installs, variant.installs)
1258*333d2b36SAndroid Build Coastguard Worker			assertInstallsEqual(t, "vdexInstalls", expectedVariant.vdexInstalls, variant.vdexInstalls)
1259*333d2b36SAndroid Build Coastguard Worker			assertInstallsEqual(t, "unstrippedInstalls", expectedVariant.unstrippedInstalls, variant.unstrippedInstalls)
1260*333d2b36SAndroid Build Coastguard Worker			android.AssertStringEquals(t, "licenseMetadataFile", expectedVariant.licenseMetadataFile, variant.licenseMetadataFile.RelativeToTop().String())
1261*333d2b36SAndroid Build Coastguard Worker		})
1262*333d2b36SAndroid Build Coastguard Worker	}
1263*333d2b36SAndroid Build Coastguard Worker}
1264*333d2b36SAndroid Build Coastguard Worker
1265*333d2b36SAndroid Build Coastguard Worker// CheckMutatedArtBootImageConfig checks the mutated fields in the bootImageConfig/Variant for ART.
1266*333d2b36SAndroid Build Coastguard Workerfunc CheckMutatedArtBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1267*333d2b36SAndroid Build Coastguard Worker	checkArtBootImageConfig(t, result, true, expectedLicenseMetadataFile)
1268*333d2b36SAndroid Build Coastguard Worker
1269*333d2b36SAndroid Build Coastguard Worker	// Check the dexpreopt make vars. Do it in here as it depends on the expected license metadata
1270*333d2b36SAndroid Build Coastguard Worker	// file at the moment and it
1271*333d2b36SAndroid Build Coastguard Worker	checkDexpreoptMakeVars(t, result, expectedLicenseMetadataFile)
1272*333d2b36SAndroid Build Coastguard Worker}
1273*333d2b36SAndroid Build Coastguard Worker
1274*333d2b36SAndroid Build Coastguard Worker// CheckMutatedFrameworkBootImageConfig checks the mutated fields in the bootImageConfig/Variant for framework.
1275*333d2b36SAndroid Build Coastguard Workerfunc CheckMutatedFrameworkBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1276*333d2b36SAndroid Build Coastguard Worker	checkFrameworkBootImageConfig(t, result, true, expectedLicenseMetadataFile)
1277*333d2b36SAndroid Build Coastguard Worker}
1278*333d2b36SAndroid Build Coastguard Worker
1279*333d2b36SAndroid Build Coastguard Worker// checkDexpreoptMakeVars checks the DEXPREOPT_ prefixed make vars produced by dexpreoptBootJars
1280*333d2b36SAndroid Build Coastguard Worker// singleton.
1281*333d2b36SAndroid Build Coastguard Workerfunc checkDexpreoptMakeVars(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
1282*333d2b36SAndroid Build Coastguard Worker	vars := result.MakeVarsForTesting(func(variable android.MakeVarVariable) bool {
1283*333d2b36SAndroid Build Coastguard Worker		return strings.HasPrefix(variable.Name(), "DEXPREOPT_")
1284*333d2b36SAndroid Build Coastguard Worker	})
1285*333d2b36SAndroid Build Coastguard Worker
1286*333d2b36SAndroid Build Coastguard Worker	out := &strings.Builder{}
1287*333d2b36SAndroid Build Coastguard Worker	for _, v := range vars {
1288*333d2b36SAndroid Build Coastguard Worker		fmt.Fprintf(out, "%s=%s\n", v.Name(), android.StringRelativeToTop(result.Config, v.Value()))
1289*333d2b36SAndroid Build Coastguard Worker	}
1290*333d2b36SAndroid Build Coastguard Worker	format := `
1291*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1292*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS=/apex/com.android.art/javalib/core1.jar /apex/com.android.art/javalib/core2.jar /system/framework/framework.jar
1293*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_BOOT_JARS_MODULES=com.android.art:core1:com.android.art:core2:platform:framework
1294*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_GEN=out/host/linux-x86/bin/dexpreopt_gen
1295*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.art:/apex/art_boot_images/javalib/arm/boot-extra1.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.oat:/apex/art_boot_images/javalib/arm/boot-extra1.oat
1296*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.art:/apex/art_boot_images/javalib/arm64/boot-extra1.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.oat:/apex/art_boot_images/javalib/arm64/boot-extra1.oat
1297*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.art:/apex/art_boot_images/javalib/x86/boot-extra1.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.oat:/apex/art_boot_images/javalib/x86/boot-extra1.oat
1298*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.art:/apex/art_boot_images/javalib/x86_64/boot-extra1.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.oat:/apex/art_boot_images/javalib/x86_64/boot-extra1.oat
1299*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1300*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1301*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1302*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1303*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1304*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1305*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1306*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1307*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.vdex
1308*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.art out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.oat out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.vdex
1309*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.vdex
1310*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.art out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.oat out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.vdex
1311*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1312*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1313*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1314*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1315*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1316*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1317*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1318*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1319*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_art_arm=%[1]s
1320*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_art_arm64=%[1]s
1321*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86=%[1]s
1322*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86_64=%[1]s
1323*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1324*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm64=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1325*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_boot_host_x86=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1326*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_boot_host_x86_64=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1327*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1328*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_mainline_arm64=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1329*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1330*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LICENSE_METADATA_mainline_host_x86_64=out/soong/.intermediates/default/java/dex_bootjars/android_common/meta_lic
1331*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEart=/apex/art_boot_images/javalib/boot.art
1332*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEboot=/system/framework/boot.art
1333*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEmainline=/system/framework/boot.art:/system/framework/boot-framework-foo.art
1334*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LOCATIONS_ON_HOSTart=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/boot.art
1335*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_LOCATIONS_ON_HOSTboot=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/boot.art
1336*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1337*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_NAMES=art boot mainline
1338*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot-extra1.oat:/apex/art_boot_images/javalib/arm/boot-extra1.oat
1339*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot-extra1.oat:/apex/art_boot_images/javalib/arm64/boot-extra1.oat
1340*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.oat:/apex/art_boot_images/javalib/x86/boot-extra1.oat
1341*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.oat:/apex/art_boot_images/javalib/x86_64/boot-extra1.oat
1342*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1343*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1344*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1345*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1346*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1347*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1348*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1349*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1350*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-extra1.vdex:/apex/art_boot_images/javalib/arm/boot-extra1.vdex
1351*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-extra1.vdex:/apex/art_boot_images/javalib/arm64/boot-extra1.vdex
1352*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-extra1.vdex:/apex/art_boot_images/javalib/x86/boot-extra1.vdex
1353*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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 out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-extra1.vdex:/apex/art_boot_images/javalib/x86_64/boot-extra1.vdex
1354*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1355*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1356*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1357*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1358*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1359*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1360*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1361*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_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
1362*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_ZIP_art=out/soong/dexpreopt_arm64/dex_artjars/art.zip
1363*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_ZIP_boot=out/soong/dexpreopt_arm64/dex_bootjars/boot.zip
1364*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_ZIP_mainline=out/soong/dexpreopt_arm64/dex_mainlinejars/mainline.zip
1365*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_art_arm=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art
1366*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_art_arm64=out/soong/dexpreopt_arm64/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
1367*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_art_host_x86=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art
1368*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_art_host_x86_64=out/soong/dexpreopt_arm64/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art
1369*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_boot_arm=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm/boot.art
1370*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_boot_arm64=out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art
1371*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_boot_host_x86=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86/boot.art
1372*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_boot_host_x86_64=out/soong/dexpreopt_arm64/dex_bootjars/linux_glibc/system/framework/x86_64/boot.art
1373*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_mainline_arm=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm/boot-framework-foo.art
1374*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_mainline_arm64=out/soong/dexpreopt_arm64/dex_mainlinejars/android/system/framework/arm64/boot-framework-foo.art
1375*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_mainline_host_x86=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86/boot-framework-foo.art
1376*333d2b36SAndroid Build Coastguard WorkerDEXPREOPT_IMAGE_mainline_host_x86_64=out/soong/dexpreopt_arm64/dex_mainlinejars/linux_glibc/system/framework/x86_64/boot-framework-foo.art
1377*333d2b36SAndroid Build Coastguard Worker`
1378*333d2b36SAndroid Build Coastguard Worker	expected := strings.TrimSpace(fmt.Sprintf(format, expectedLicenseMetadataFile))
1379*333d2b36SAndroid Build Coastguard Worker	actual := strings.TrimSpace(out.String())
1380*333d2b36SAndroid Build Coastguard Worker	android.AssertStringEquals(t, "vars", expected, actual)
1381*333d2b36SAndroid Build Coastguard Worker}
1382