8eb4573b23
Most of the fields in the bootImageConfig/Variant structs are assigned inside a Once func so are guaranteed to be only set once. However, some are assigned outside. This change adds comprehensive tests for those structs and verifies that the constant fields are preserved and the mutated fields have the correct value. The check for the constant fields is added in a new TestBootImageConfig test. The check for the mutated fields is added into TestSnapshotWithBootclasspathFragment_ImageName as that test checks an art bootclasspath_fragment in the following configurations: * source on its own * prebuilt on its own * source and prebuilt with source preferred * source and prebuilt with prebuilt It reveals a couple of interesting facts: * All the *installs fields are set to the same value irrespective of whether the source or prebuilt is preferred. The information is constructed solely from information already within the bootImageConfig/Variant and so can be moved within Once. * The licenseMetadataFile is incorrect when prebuilt is preferred. That is due to both the source and prebuilt modules setting it and the source module always wins as the source module depends on the prebuilt so always runs its GenerateAndroidBuildActions after it. Those issues will be cleaned up in following changes. Bug: 245956352 Test: m nothing Change-Id: If917cfbcb3b1c842a8682d51cc1ee1fed1c51add
768 lines
49 KiB
Go
768 lines
49 KiB
Go
// Copyright 2022 Google Inc. All rights reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
// Testing support for dexpreopt config.
|
|
//
|
|
// The bootImageConfig/bootImageVariant structs returned by genBootImageConfigs are used in many
|
|
// places in the build and are currently mutated in a number of those locations. This provides
|
|
// comprehensive tests of the fields in those structs to ensure that they have been initialized
|
|
// correctly and where relevant, mutated correctly.
|
|
//
|
|
// This is used in TestBootImageConfig to verify that the
|
|
|
|
package java
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"android/soong/android"
|
|
)
|
|
|
|
// PrepareForBootImageConfigTest is the minimal set of preparers that are needed to be able to use
|
|
// the Check*BootImageConfig methods define here.
|
|
var PrepareForBootImageConfigTest = android.GroupFixturePreparers(
|
|
android.PrepareForTestWithArchMutator,
|
|
android.PrepareForTestAccessingMakeVars,
|
|
FixtureConfigureBootJars("com.android.art:core1", "com.android.art:core2", "platform:framework"),
|
|
)
|
|
|
|
// normalizedInstall represents a android.RuleBuilderInstall that has been normalized to remove
|
|
// test specific parts of the From path.
|
|
type normalizedInstall struct {
|
|
from string
|
|
to string
|
|
}
|
|
|
|
// normalizeInstalls converts a slice of android.RuleBuilderInstall into a slice of
|
|
// normalizedInstall to allow them to be compared using android.AssertDeepEquals.
|
|
func normalizeInstalls(installs android.RuleBuilderInstalls) []normalizedInstall {
|
|
var normalized []normalizedInstall
|
|
for _, install := range installs {
|
|
normalized = append(normalized, normalizedInstall{
|
|
from: install.From.RelativeToTop().String(),
|
|
to: install.To,
|
|
})
|
|
}
|
|
return normalized
|
|
}
|
|
|
|
// assertInstallsEqual normalized the android.RuleBuilderInstalls and compares against the expected
|
|
// normalizedInstalls.
|
|
func assertInstallsEqual(t *testing.T, message string, expected []normalizedInstall, actual android.RuleBuilderInstalls) {
|
|
t.Helper()
|
|
normalizedActual := normalizeInstalls(actual)
|
|
android.AssertDeepEquals(t, message, expected, normalizedActual)
|
|
}
|
|
|
|
// expectedConfig encapsulates the expected properties that will be set in a bootImageConfig
|
|
//
|
|
// Each field <x> in here is compared against the corresponding field <x> in bootImageConfig.
|
|
type expectedConfig struct {
|
|
name string
|
|
stem string
|
|
dir string
|
|
symbolsDir string
|
|
installDirOnDevice string
|
|
installDirOnHost string
|
|
profileInstallPathInApex string
|
|
modules android.ConfiguredJarList
|
|
dexPaths []string
|
|
dexPathsDeps []string
|
|
zip string
|
|
variants []*expectedVariant
|
|
|
|
// Mutated fields
|
|
profileInstalls []normalizedInstall
|
|
profileLicenseMetadataFile string
|
|
}
|
|
|
|
// expectedVariant encapsulates the expected properties that will be set in a bootImageVariant
|
|
//
|
|
// Each field <x> in here is compared against the corresponding field <x> in bootImageVariant
|
|
// except for archType which is compared against the target.Arch.ArchType field in bootImageVariant.
|
|
type expectedVariant struct {
|
|
archType android.ArchType
|
|
dexLocations []string
|
|
dexLocationsDeps []string
|
|
imagePathOnHost string
|
|
imagePathOnDevice string
|
|
imagesDeps []string
|
|
primaryImages string
|
|
primaryImagesDeps []string
|
|
|
|
// Mutated fields
|
|
installs []normalizedInstall
|
|
vdexInstalls []normalizedInstall
|
|
unstrippedInstalls []normalizedInstall
|
|
licenseMetadataFile string
|
|
}
|
|
|
|
// CheckArtBootImageConfig checks the status of the fields of the bootImageConfig and
|
|
// bootImageVariant structures that are returned from artBootImageConfig.
|
|
//
|
|
// This is before any fields are mutated.
|
|
func CheckArtBootImageConfig(t *testing.T, result *android.TestResult) {
|
|
checkArtBootImageConfig(t, result, false, "")
|
|
}
|
|
|
|
// getArtImageConfig gets the ART bootImageConfig that was created during the test.
|
|
func getArtImageConfig(result *android.TestResult) *bootImageConfig {
|
|
pathCtx := &android.TestPathContext{TestResult: result}
|
|
imageConfig := artBootImageConfig(pathCtx)
|
|
return imageConfig
|
|
}
|
|
|
|
// checkArtBootImageConfig checks the ART boot image.
|
|
//
|
|
// mutated is true if this is called after fields in the image have been mutated by the ART
|
|
// bootclasspath_fragment and false otherwise.
|
|
func checkArtBootImageConfig(t *testing.T, result *android.TestResult, mutated bool, expectedLicenseMetadataFile string) {
|
|
imageConfig := getArtImageConfig(result)
|
|
|
|
expected := &expectedConfig{
|
|
name: "art",
|
|
stem: "boot",
|
|
dir: "out/soong/test_device/dex_artjars",
|
|
symbolsDir: "out/soong/test_device/dex_artjars_unstripped",
|
|
installDirOnDevice: "system/framework",
|
|
installDirOnHost: "apex/art_boot_images/javalib",
|
|
profileInstallPathInApex: "etc/boot-image.prof",
|
|
modules: android.CreateTestConfiguredJarList([]string{"com.android.art:core1", "com.android.art:core2"}),
|
|
dexPaths: []string{"out/soong/test_device/dex_artjars_input/core1.jar", "out/soong/test_device/dex_artjars_input/core2.jar"},
|
|
dexPathsDeps: []string{"out/soong/test_device/dex_artjars_input/core1.jar", "out/soong/test_device/dex_artjars_input/core2.jar"},
|
|
zip: "out/soong/test_device/dex_artjars/art.zip",
|
|
variants: []*expectedVariant{
|
|
{
|
|
archType: android.Arm64,
|
|
dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
|
dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
|
imagePathOnHost: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
|
imagePathOnDevice: "/system/framework/arm64/boot.art",
|
|
imagesDeps: []string{
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
|
|
},
|
|
installs: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
|
to: "/apex/art_boot_images/javalib/arm64/boot.art",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
|
|
to: "/apex/art_boot_images/javalib/arm64/boot.oat",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
|
|
to: "/apex/art_boot_images/javalib/arm64/boot-core2.art",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
|
|
to: "/apex/art_boot_images/javalib/arm64/boot-core2.oat",
|
|
},
|
|
},
|
|
vdexInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
|
|
to: "/apex/art_boot_images/javalib/arm64/boot.vdex",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
|
|
to: "/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
|
|
},
|
|
},
|
|
unstrippedInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot.oat",
|
|
to: "/apex/art_boot_images/javalib/arm64/boot.oat",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
|
|
to: "/apex/art_boot_images/javalib/arm64/boot-core2.oat",
|
|
},
|
|
},
|
|
licenseMetadataFile: expectedLicenseMetadataFile,
|
|
},
|
|
{
|
|
archType: android.Arm,
|
|
dexLocations: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
|
dexLocationsDeps: []string{"/apex/com.android.art/javalib/core1.jar", "/apex/com.android.art/javalib/core2.jar"},
|
|
imagePathOnHost: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
|
imagePathOnDevice: "/system/framework/arm/boot.art",
|
|
imagesDeps: []string{
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
|
|
},
|
|
installs: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
|
to: "/apex/art_boot_images/javalib/arm/boot.art",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
|
|
to: "/apex/art_boot_images/javalib/arm/boot.oat",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
|
|
to: "/apex/art_boot_images/javalib/arm/boot-core2.art",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
|
|
to: "/apex/art_boot_images/javalib/arm/boot-core2.oat",
|
|
},
|
|
},
|
|
vdexInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
|
|
to: "/apex/art_boot_images/javalib/arm/boot.vdex",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
|
|
to: "/apex/art_boot_images/javalib/arm/boot-core2.vdex",
|
|
},
|
|
},
|
|
unstrippedInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot.oat",
|
|
to: "/apex/art_boot_images/javalib/arm/boot.oat",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
|
|
to: "/apex/art_boot_images/javalib/arm/boot-core2.oat",
|
|
},
|
|
},
|
|
licenseMetadataFile: expectedLicenseMetadataFile,
|
|
},
|
|
{
|
|
archType: android.X86_64,
|
|
dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
|
dexLocationsDeps: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
|
imagePathOnHost: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
|
imagePathOnDevice: "/system/framework/x86_64/boot.art",
|
|
imagesDeps: []string{
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
|
|
},
|
|
installs: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
|
to: "/apex/art_boot_images/javalib/x86_64/boot.art",
|
|
}, {
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
|
|
to: "/apex/art_boot_images/javalib/x86_64/boot.oat",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
|
|
to: "/apex/art_boot_images/javalib/x86_64/boot-core2.art",
|
|
}, {
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
|
|
to: "/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
|
|
},
|
|
},
|
|
vdexInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
|
|
to: "/apex/art_boot_images/javalib/x86_64/boot.vdex",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
|
|
to: "/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
|
|
},
|
|
},
|
|
unstrippedInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
|
|
to: "/apex/art_boot_images/javalib/x86_64/boot.oat",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
|
|
to: "/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
|
|
},
|
|
},
|
|
licenseMetadataFile: expectedLicenseMetadataFile,
|
|
},
|
|
{
|
|
archType: android.X86,
|
|
dexLocations: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
|
dexLocationsDeps: []string{"host/linux-x86/apex/com.android.art/javalib/core1.jar", "host/linux-x86/apex/com.android.art/javalib/core2.jar"},
|
|
imagePathOnHost: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
|
imagePathOnDevice: "/system/framework/x86/boot.art",
|
|
imagesDeps: []string{
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
|
|
},
|
|
installs: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
|
to: "/apex/art_boot_images/javalib/x86/boot.art",
|
|
}, {
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
|
|
to: "/apex/art_boot_images/javalib/x86/boot.oat",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
|
|
to: "/apex/art_boot_images/javalib/x86/boot-core2.art",
|
|
}, {
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
|
|
to: "/apex/art_boot_images/javalib/x86/boot-core2.oat",
|
|
},
|
|
},
|
|
vdexInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
|
|
to: "/apex/art_boot_images/javalib/x86/boot.vdex",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
|
|
to: "/apex/art_boot_images/javalib/x86/boot-core2.vdex",
|
|
},
|
|
},
|
|
unstrippedInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
|
|
to: "/apex/art_boot_images/javalib/x86/boot.oat",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
|
|
to: "/apex/art_boot_images/javalib/x86/boot-core2.oat",
|
|
},
|
|
},
|
|
licenseMetadataFile: expectedLicenseMetadataFile,
|
|
},
|
|
},
|
|
}
|
|
|
|
checkBootImageConfig(t, imageConfig, mutated, expected)
|
|
}
|
|
|
|
// getFrameworkImageConfig gets the framework bootImageConfig that was created during the test.
|
|
func getFrameworkImageConfig(result *android.TestResult) *bootImageConfig {
|
|
pathCtx := &android.TestPathContext{TestResult: result}
|
|
imageConfig := defaultBootImageConfig(pathCtx)
|
|
return imageConfig
|
|
}
|
|
|
|
// CheckFrameworkBootImageConfig checks the status of the fields of the bootImageConfig and
|
|
// bootImageVariant structures that are returned from defaultBootImageConfig.
|
|
//
|
|
// This is before any fields are mutated.
|
|
func CheckFrameworkBootImageConfig(t *testing.T, result *android.TestResult) {
|
|
checkFrameworkBootImageConfig(t, result, false, "")
|
|
}
|
|
|
|
// checkFrameworkBootImageConfig checks the framework boot image.
|
|
//
|
|
// mutated is true if this is called after fields in the image have been mutated by the
|
|
// platform_bootclasspath and false otherwise.
|
|
func checkFrameworkBootImageConfig(t *testing.T, result *android.TestResult, mutated bool, expectedLicenseMetadataFile string) {
|
|
imageConfig := getFrameworkImageConfig(result)
|
|
|
|
expected := &expectedConfig{
|
|
name: "boot",
|
|
stem: "boot",
|
|
dir: "out/soong/test_device/dex_bootjars",
|
|
symbolsDir: "out/soong/test_device/dex_bootjars_unstripped",
|
|
installDirOnDevice: "system/framework",
|
|
installDirOnHost: "system/framework",
|
|
profileInstallPathInApex: "",
|
|
modules: android.CreateTestConfiguredJarList([]string{"platform:framework"}),
|
|
dexPaths: []string{"out/soong/test_device/dex_bootjars_input/framework.jar"},
|
|
dexPathsDeps: []string{"out/soong/test_device/dex_artjars_input/core1.jar", "out/soong/test_device/dex_artjars_input/core2.jar", "out/soong/test_device/dex_bootjars_input/framework.jar"},
|
|
zip: "out/soong/test_device/dex_bootjars/boot.zip",
|
|
variants: []*expectedVariant{
|
|
{
|
|
archType: android.Arm64,
|
|
dexLocations: []string{"/system/framework/framework.jar"},
|
|
dexLocationsDeps: []string{
|
|
"/apex/com.android.art/javalib/core1.jar",
|
|
"/apex/com.android.art/javalib/core2.jar",
|
|
"/system/framework/framework.jar",
|
|
},
|
|
imagePathOnHost: "out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
|
imagePathOnDevice: "/system/framework/arm64/boot-framework.art",
|
|
imagesDeps: []string{
|
|
"out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
|
"out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
|
|
"out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
|
|
},
|
|
primaryImages: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
|
primaryImagesDeps: []string{
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex",
|
|
},
|
|
installs: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.art",
|
|
to: "/system/framework/arm64/boot-framework.art",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.oat",
|
|
to: "/system/framework/arm64/boot-framework.oat",
|
|
},
|
|
},
|
|
vdexInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.vdex",
|
|
to: "/system/framework/arm64/boot-framework.vdex",
|
|
},
|
|
},
|
|
unstrippedInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat",
|
|
to: "/system/framework/arm64/boot-framework.oat",
|
|
},
|
|
},
|
|
licenseMetadataFile: expectedLicenseMetadataFile,
|
|
},
|
|
{
|
|
archType: android.Arm,
|
|
dexLocations: []string{"/system/framework/framework.jar"},
|
|
dexLocationsDeps: []string{
|
|
"/apex/com.android.art/javalib/core1.jar",
|
|
"/apex/com.android.art/javalib/core2.jar",
|
|
"/system/framework/framework.jar",
|
|
},
|
|
imagePathOnHost: "out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
|
imagePathOnDevice: "/system/framework/arm/boot-framework.art",
|
|
imagesDeps: []string{
|
|
"out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
|
"out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.oat",
|
|
"out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
|
|
},
|
|
primaryImages: "out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
|
primaryImagesDeps: []string{
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat",
|
|
"out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex",
|
|
},
|
|
installs: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.art",
|
|
to: "/system/framework/arm/boot-framework.art",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.oat",
|
|
to: "/system/framework/arm/boot-framework.oat",
|
|
},
|
|
},
|
|
vdexInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.vdex",
|
|
to: "/system/framework/arm/boot-framework.vdex",
|
|
},
|
|
},
|
|
unstrippedInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat",
|
|
to: "/system/framework/arm/boot-framework.oat",
|
|
},
|
|
},
|
|
licenseMetadataFile: expectedLicenseMetadataFile,
|
|
},
|
|
{
|
|
archType: android.X86_64,
|
|
dexLocations: []string{"host/linux-x86/system/framework/framework.jar"},
|
|
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/framework.jar",
|
|
},
|
|
imagePathOnHost: "out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
|
imagePathOnDevice: "/system/framework/x86_64/boot-framework.art",
|
|
imagesDeps: []string{
|
|
"out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
|
"out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
|
|
"out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
|
|
},
|
|
primaryImages: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
|
primaryImagesDeps: []string{
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex",
|
|
},
|
|
installs: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art",
|
|
to: "/system/framework/x86_64/boot-framework.art",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat",
|
|
to: "/system/framework/x86_64/boot-framework.oat",
|
|
},
|
|
},
|
|
vdexInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex",
|
|
to: "/system/framework/x86_64/boot-framework.vdex",
|
|
},
|
|
},
|
|
unstrippedInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat",
|
|
to: "/system/framework/x86_64/boot-framework.oat",
|
|
},
|
|
},
|
|
licenseMetadataFile: expectedLicenseMetadataFile,
|
|
},
|
|
{
|
|
archType: android.X86,
|
|
dexLocations: []string{"host/linux-x86/system/framework/framework.jar"},
|
|
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/framework.jar",
|
|
},
|
|
imagePathOnHost: "out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
|
imagePathOnDevice: "/system/framework/x86/boot-framework.art",
|
|
imagesDeps: []string{
|
|
"out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
|
"out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
|
|
"out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
|
|
},
|
|
primaryImages: "out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
|
primaryImagesDeps: []string{
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat",
|
|
"out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex",
|
|
},
|
|
installs: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art",
|
|
to: "/system/framework/x86/boot-framework.art",
|
|
},
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat",
|
|
to: "/system/framework/x86/boot-framework.oat",
|
|
},
|
|
},
|
|
vdexInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex",
|
|
to: "/system/framework/x86/boot-framework.vdex",
|
|
},
|
|
},
|
|
unstrippedInstalls: []normalizedInstall{
|
|
{
|
|
from: "out/soong/test_device/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat",
|
|
to: "/system/framework/x86/boot-framework.oat",
|
|
},
|
|
},
|
|
licenseMetadataFile: expectedLicenseMetadataFile,
|
|
},
|
|
},
|
|
profileInstalls: []normalizedInstall{
|
|
{from: "out/soong/test_device/dex_bootjars/boot.bprof", to: "/system/etc/boot-image.bprof"},
|
|
{from: "out/soong/test_device/dex_bootjars/boot.prof", to: "/system/etc/boot-image.prof"},
|
|
},
|
|
profileLicenseMetadataFile: expectedLicenseMetadataFile,
|
|
}
|
|
|
|
checkBootImageConfig(t, imageConfig, mutated, expected)
|
|
}
|
|
|
|
// clearMutatedFields clears fields in the expectedConfig that correspond to fields in the
|
|
// bootImageConfig/bootImageVariant structs which are mutated outside the call to
|
|
// genBootImageConfigs.
|
|
//
|
|
// This allows the resulting expectedConfig struct to be compared against the values of those boot
|
|
// image structs immediately the call to genBootImageConfigs. If this is not called then the
|
|
// expectedConfig struct will expect the boot image structs to have been mutated by the ART
|
|
// bootclasspath_fragment and the platform_bootclasspath.
|
|
func clearMutatedFields(expected *expectedConfig) {
|
|
expected.profileInstalls = nil
|
|
expected.profileLicenseMetadataFile = ""
|
|
for _, variant := range expected.variants {
|
|
variant.installs = nil
|
|
variant.vdexInstalls = nil
|
|
variant.unstrippedInstalls = nil
|
|
variant.licenseMetadataFile = ""
|
|
}
|
|
}
|
|
|
|
// checkBootImageConfig checks a boot image against the expected contents.
|
|
//
|
|
// If mutated is false then this will clear any mutated fields in the expected contents back to the
|
|
// zero value so that they will match the unmodified values in the boot image.
|
|
//
|
|
// It runs the checks in an image specific subtest of the current test.
|
|
func checkBootImageConfig(t *testing.T, imageConfig *bootImageConfig, mutated bool, expected *expectedConfig) {
|
|
if !mutated {
|
|
clearMutatedFields(expected)
|
|
}
|
|
|
|
t.Run(imageConfig.name, func(t *testing.T) {
|
|
nestedCheckBootImageConfig(t, imageConfig, expected)
|
|
})
|
|
}
|
|
|
|
// nestedCheckBootImageConfig does the work of comparing the image against the expected values and
|
|
// is run in an image specific subtest.
|
|
func nestedCheckBootImageConfig(t *testing.T, imageConfig *bootImageConfig, expected *expectedConfig) {
|
|
android.AssertStringEquals(t, "name", expected.name, imageConfig.name)
|
|
android.AssertStringEquals(t, "stem", expected.stem, imageConfig.stem)
|
|
android.AssertPathRelativeToTopEquals(t, "dir", expected.dir, imageConfig.dir)
|
|
android.AssertPathRelativeToTopEquals(t, "symbolsDir", expected.symbolsDir, imageConfig.symbolsDir)
|
|
android.AssertStringEquals(t, "installDirOnDevice", expected.installDirOnDevice, imageConfig.installDirOnDevice)
|
|
android.AssertStringEquals(t, "installDirOnHost", expected.installDirOnHost, imageConfig.installDirOnHost)
|
|
android.AssertStringEquals(t, "profileInstallPathInApex", expected.profileInstallPathInApex, imageConfig.profileInstallPathInApex)
|
|
android.AssertDeepEquals(t, "modules", expected.modules, imageConfig.modules)
|
|
android.AssertPathsRelativeToTopEquals(t, "dexPaths", expected.dexPaths, imageConfig.dexPaths.Paths())
|
|
android.AssertPathsRelativeToTopEquals(t, "dexPathsDeps", expected.dexPathsDeps, imageConfig.dexPathsDeps.Paths())
|
|
// dexPathsByModule is just a different representation of the other information in the config.
|
|
android.AssertPathRelativeToTopEquals(t, "zip", expected.zip, imageConfig.zip)
|
|
assertInstallsEqual(t, "profileInstalls", expected.profileInstalls, imageConfig.profileInstalls)
|
|
android.AssertStringEquals(t, "profileLicenseMetadataFile", expected.profileLicenseMetadataFile, imageConfig.profileLicenseMetadataFile.RelativeToTop().String())
|
|
|
|
android.AssertIntEquals(t, "variant count", 4, len(imageConfig.variants))
|
|
for i, variant := range imageConfig.variants {
|
|
expectedVariant := expected.variants[i]
|
|
t.Run(variant.target.Arch.ArchType.String(), func(t *testing.T) {
|
|
android.AssertDeepEquals(t, "archType", expectedVariant.archType, variant.target.Arch.ArchType)
|
|
android.AssertDeepEquals(t, "dexLocations", expectedVariant.dexLocations, variant.dexLocations)
|
|
android.AssertDeepEquals(t, "dexLocationsDeps", expectedVariant.dexLocationsDeps, variant.dexLocationsDeps)
|
|
android.AssertPathRelativeToTopEquals(t, "imagePathOnHost", expectedVariant.imagePathOnHost, variant.imagePathOnHost)
|
|
android.AssertStringEquals(t, "imagePathOnDevice", expectedVariant.imagePathOnDevice, variant.imagePathOnDevice)
|
|
android.AssertPathsRelativeToTopEquals(t, "imagesDeps", expectedVariant.imagesDeps, variant.imagesDeps.Paths())
|
|
android.AssertPathRelativeToTopEquals(t, "primaryImages", expectedVariant.primaryImages, variant.primaryImages)
|
|
android.AssertPathsRelativeToTopEquals(t, "primaryImagesDeps", expectedVariant.primaryImagesDeps, variant.primaryImagesDeps)
|
|
assertInstallsEqual(t, "installs", expectedVariant.installs, variant.installs)
|
|
assertInstallsEqual(t, "vdexInstalls", expectedVariant.vdexInstalls, variant.vdexInstalls)
|
|
assertInstallsEqual(t, "unstrippedInstalls", expectedVariant.unstrippedInstalls, variant.unstrippedInstalls)
|
|
android.AssertStringEquals(t, "licenseMetadataFile", expectedVariant.licenseMetadataFile, variant.licenseMetadataFile.RelativeToTop().String())
|
|
})
|
|
}
|
|
}
|
|
|
|
// CheckMutatedArtBootImageConfig checks the mutated fields in the bootImageConfig/Variant for ART.
|
|
func CheckMutatedArtBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
|
|
checkArtBootImageConfig(t, result, true, expectedLicenseMetadataFile)
|
|
|
|
// Check the dexpreopt make vars. Do it in here as it depends on the expected license metadata
|
|
// file at the moment and it
|
|
checkDexpreoptMakeVars(t, result, expectedLicenseMetadataFile)
|
|
}
|
|
|
|
// CheckMutatedFrameworkBootImageConfig checks the mutated fields in the bootImageConfig/Variant for framework.
|
|
func CheckMutatedFrameworkBootImageConfig(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
|
|
checkFrameworkBootImageConfig(t, result, true, expectedLicenseMetadataFile)
|
|
}
|
|
|
|
// checkDexpreoptMakeVars checks the DEXPREOPT_ prefixed make vars produced by dexpreoptBootJars
|
|
// singleton.
|
|
func checkDexpreoptMakeVars(t *testing.T, result *android.TestResult, expectedLicenseMetadataFile string) {
|
|
vars := result.MakeVarsForTesting(func(variable android.MakeVarVariable) bool {
|
|
return strings.HasPrefix(variable.Name(), "DEXPREOPT_")
|
|
})
|
|
|
|
out := &strings.Builder{}
|
|
for _, v := range vars {
|
|
fmt.Fprintf(out, "%s=%s\n", v.Name(), android.StringRelativeToTop(result.Config, v.Value()))
|
|
}
|
|
format := `
|
|
DEXPREOPT_BOOTCLASSPATH_DEX_FILES=out/soong/test_device/dex_artjars_input/core1.jar out/soong/test_device/dex_artjars_input/core2.jar out/soong/test_device/dex_bootjars_input/framework.jar
|
|
DEXPREOPT_BOOTCLASSPATH_DEX_LOCATIONS=/apex/com.android.art/javalib/core1.jar /apex/com.android.art/javalib/core2.jar /system/framework/framework.jar
|
|
DEXPREOPT_BOOT_JARS_MODULES=platform:framework
|
|
DEXPREOPT_GEN=out/host/linux-x86/bin/dexpreopt_gen
|
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_arm=out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art:/apex/art_boot_images/javalib/arm/boot.art out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat:/apex/art_boot_images/javalib/arm/boot.oat out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art:/apex/art_boot_images/javalib/arm/boot-core2.art out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat:/apex/art_boot_images/javalib/arm/boot-core2.oat
|
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_arm64=out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art:/apex/art_boot_images/javalib/arm64/boot.art out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat:/apex/art_boot_images/javalib/arm64/boot.oat out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art:/apex/art_boot_images/javalib/arm64/boot-core2.art out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat:/apex/art_boot_images/javalib/arm64/boot-core2.oat
|
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_host_x86=out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art:/apex/art_boot_images/javalib/x86/boot.art out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat:/apex/art_boot_images/javalib/x86/boot.oat out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art:/apex/art_boot_images/javalib/x86/boot-core2.art out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat:/apex/art_boot_images/javalib/x86/boot-core2.oat
|
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_art_host_x86_64=out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art:/apex/art_boot_images/javalib/x86_64/boot.art out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat:/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/test_device/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/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat:/apex/art_boot_images/javalib/x86_64/boot-core2.oat
|
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm=out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.art:/system/framework/arm/boot-framework.art out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
|
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_arm64=out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.art:/system/framework/arm64/boot-framework.art out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
|
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86=out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art:/system/framework/x86/boot-framework.art out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
|
|
DEXPREOPT_IMAGE_BUILT_INSTALLED_boot_host_x86_64=out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art:/system/framework/x86_64/boot-framework.art out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
|
|
DEXPREOPT_IMAGE_DEPS_art_arm=out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.oat out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.art out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.oat out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex
|
|
DEXPREOPT_IMAGE_DEPS_art_arm64=out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.oat out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.art out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.oat out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex
|
|
DEXPREOPT_IMAGE_DEPS_art_host_x86=out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.art out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex
|
|
DEXPREOPT_IMAGE_DEPS_art_host_x86_64=out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.oat out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.art out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.oat out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex
|
|
DEXPREOPT_IMAGE_DEPS_boot_arm=out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.art out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.oat out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.vdex
|
|
DEXPREOPT_IMAGE_DEPS_boot_arm64=out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.art out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.oat out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.vdex
|
|
DEXPREOPT_IMAGE_DEPS_boot_host_x86=out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.oat out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex
|
|
DEXPREOPT_IMAGE_DEPS_boot_host_x86_64=out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.oat out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex
|
|
DEXPREOPT_IMAGE_LICENSE_METADATA_art_arm=%[1]s
|
|
DEXPREOPT_IMAGE_LICENSE_METADATA_art_arm64=%[1]s
|
|
DEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86=%[1]s
|
|
DEXPREOPT_IMAGE_LICENSE_METADATA_art_host_x86_64=%[1]s
|
|
DEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
|
DEXPREOPT_IMAGE_LICENSE_METADATA_boot_arm64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
|
DEXPREOPT_IMAGE_LICENSE_METADATA_boot_host_x86=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
|
DEXPREOPT_IMAGE_LICENSE_METADATA_boot_host_x86_64=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
|
DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEart=/system/framework/boot.art
|
|
DEXPREOPT_IMAGE_LOCATIONS_ON_DEVICEboot=/system/framework/boot.art:/system/framework/boot-framework.art
|
|
DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTart=out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/boot.art
|
|
DEXPREOPT_IMAGE_LOCATIONS_ON_HOSTboot=out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/boot.art:out/soong/test_device/dex_bootjars/android/system/framework/boot-framework.art
|
|
DEXPREOPT_IMAGE_NAMES=art boot
|
|
DEXPREOPT_IMAGE_PROFILE_BUILT_INSTALLED=out/soong/test_device/dex_bootjars/boot.bprof:/system/etc/boot-image.bprof out/soong/test_device/dex_bootjars/boot.prof:/system/etc/boot-image.prof
|
|
DEXPREOPT_IMAGE_PROFILE_LICENSE_METADATA=out/soong/.intermediates/frameworks/base/boot/platform-bootclasspath/android_common/meta_lic
|
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_arm=out/soong/test_device/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot.oat:/apex/art_boot_images/javalib/arm/boot.oat out/soong/test_device/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm/boot-core2.oat:/apex/art_boot_images/javalib/arm/boot-core2.oat
|
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_arm64=out/soong/test_device/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot.oat:/apex/art_boot_images/javalib/arm64/boot.oat out/soong/test_device/dex_artjars_unstripped/android/apex/art_boot_images/javalib/arm64/boot-core2.oat:/apex/art_boot_images/javalib/arm64/boot-core2.oat
|
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_host_x86=out/soong/test_device/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot.oat:/apex/art_boot_images/javalib/x86/boot.oat out/soong/test_device/dex_artjars_unstripped/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.oat:/apex/art_boot_images/javalib/x86/boot-core2.oat
|
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_art_host_x86_64=out/soong/test_device/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/test_device/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
|
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm=out/soong/test_device/dex_bootjars_unstripped/android/system/framework/arm/boot-framework.oat:/system/framework/arm/boot-framework.oat
|
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_arm64=out/soong/test_device/dex_bootjars_unstripped/android/system/framework/arm64/boot-framework.oat:/system/framework/arm64/boot-framework.oat
|
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86=out/soong/test_device/dex_bootjars_unstripped/linux_glibc/system/framework/x86/boot-framework.oat:/system/framework/x86/boot-framework.oat
|
|
DEXPREOPT_IMAGE_UNSTRIPPED_BUILT_INSTALLED_boot_host_x86_64=out/soong/test_device/dex_bootjars_unstripped/linux_glibc/system/framework/x86_64/boot-framework.oat:/system/framework/x86_64/boot-framework.oat
|
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_arm=out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.vdex:/apex/art_boot_images/javalib/arm/boot.vdex out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot-core2.vdex:/apex/art_boot_images/javalib/arm/boot-core2.vdex
|
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_arm64=out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.vdex:/apex/art_boot_images/javalib/arm64/boot.vdex out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot-core2.vdex:/apex/art_boot_images/javalib/arm64/boot-core2.vdex
|
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_host_x86=out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.vdex:/apex/art_boot_images/javalib/x86/boot.vdex out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot-core2.vdex:/apex/art_boot_images/javalib/x86/boot-core2.vdex
|
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_art_host_x86_64=out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.vdex:/apex/art_boot_images/javalib/x86_64/boot.vdex out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot-core2.vdex:/apex/art_boot_images/javalib/x86_64/boot-core2.vdex
|
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm=out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.vdex:/system/framework/arm/boot-framework.vdex
|
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_arm64=out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.vdex:/system/framework/arm64/boot-framework.vdex
|
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86=out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.vdex:/system/framework/x86/boot-framework.vdex
|
|
DEXPREOPT_IMAGE_VDEX_BUILT_INSTALLED_boot_host_x86_64=out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.vdex:/system/framework/x86_64/boot-framework.vdex
|
|
DEXPREOPT_IMAGE_ZIP_art=out/soong/test_device/dex_artjars/art.zip
|
|
DEXPREOPT_IMAGE_ZIP_boot=out/soong/test_device/dex_bootjars/boot.zip
|
|
DEXPREOPT_IMAGE_art_arm=out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm/boot.art
|
|
DEXPREOPT_IMAGE_art_arm64=out/soong/test_device/dex_artjars/android/apex/art_boot_images/javalib/arm64/boot.art
|
|
DEXPREOPT_IMAGE_art_host_x86=out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86/boot.art
|
|
DEXPREOPT_IMAGE_art_host_x86_64=out/soong/test_device/dex_artjars/linux_glibc/apex/art_boot_images/javalib/x86_64/boot.art
|
|
DEXPREOPT_IMAGE_boot_arm=out/soong/test_device/dex_bootjars/android/system/framework/arm/boot-framework.art
|
|
DEXPREOPT_IMAGE_boot_arm64=out/soong/test_device/dex_bootjars/android/system/framework/arm64/boot-framework.art
|
|
DEXPREOPT_IMAGE_boot_host_x86=out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86/boot-framework.art
|
|
DEXPREOPT_IMAGE_boot_host_x86_64=out/soong/test_device/dex_bootjars/linux_glibc/system/framework/x86_64/boot-framework.art
|
|
`
|
|
expected := strings.TrimSpace(fmt.Sprintf(format, expectedLicenseMetadataFile))
|
|
actual := strings.TrimSpace(out.String())
|
|
android.AssertStringEquals(t, "vars", expected, actual)
|
|
}
|