Merge changes from topic "transition-mutator-config" into main am: c50999eb0a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2923151 Change-Id: I1246b7ef231ba6fa3b2fab5bf9dd95feb4967c4b Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
038f35114a
6 changed files with 298 additions and 151 deletions
|
@ -37,6 +37,7 @@ bootstrap_go_package {
|
|||
"api_levels.go",
|
||||
"arch.go",
|
||||
"arch_list.go",
|
||||
"arch_module_context.go",
|
||||
"base_module_context.go",
|
||||
"buildinfo_prop.go",
|
||||
"config.go",
|
||||
|
|
83
android/arch_module_context.go
Normal file
83
android/arch_module_context.go
Normal file
|
@ -0,0 +1,83 @@
|
|||
// Copyright 2024 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.
|
||||
|
||||
package android
|
||||
|
||||
// ArchModuleContext can be embedded in other contexts to provide information about the module set by
|
||||
// the archMutator.
|
||||
type ArchModuleContext interface {
|
||||
Target() Target
|
||||
TargetPrimary() bool
|
||||
|
||||
// The additional arch specific targets (e.g. 32/64 bit) that this module variant is
|
||||
// responsible for creating.
|
||||
MultiTargets() []Target
|
||||
Arch() Arch
|
||||
Os() OsType
|
||||
Host() bool
|
||||
Device() bool
|
||||
Darwin() bool
|
||||
Windows() bool
|
||||
PrimaryArch() bool
|
||||
}
|
||||
|
||||
type archModuleContext struct {
|
||||
// TODO: these should eventually go through a (possibly cached) provider like any other configuration instead
|
||||
// of being special cased.
|
||||
os OsType
|
||||
target Target
|
||||
targetPrimary bool
|
||||
multiTargets []Target
|
||||
primaryArch bool
|
||||
}
|
||||
|
||||
func (a *archModuleContext) Target() Target {
|
||||
return a.target
|
||||
}
|
||||
|
||||
func (a *archModuleContext) TargetPrimary() bool {
|
||||
return a.targetPrimary
|
||||
}
|
||||
|
||||
func (a *archModuleContext) MultiTargets() []Target {
|
||||
return a.multiTargets
|
||||
}
|
||||
|
||||
func (a *archModuleContext) Arch() Arch {
|
||||
return a.target.Arch
|
||||
}
|
||||
|
||||
func (a *archModuleContext) Os() OsType {
|
||||
return a.os
|
||||
}
|
||||
|
||||
func (a *archModuleContext) Host() bool {
|
||||
return a.os.Class == Host
|
||||
}
|
||||
|
||||
func (a *archModuleContext) Device() bool {
|
||||
return a.os.Class == Device
|
||||
}
|
||||
|
||||
func (a *archModuleContext) Darwin() bool {
|
||||
return a.os == Darwin
|
||||
}
|
||||
|
||||
func (a *archModuleContext) Windows() bool {
|
||||
return a.os == Windows
|
||||
}
|
||||
|
||||
func (b *archModuleContext) PrimaryArch() bool {
|
||||
return b.primaryArch
|
||||
}
|
|
@ -26,6 +26,7 @@ import (
|
|||
// instead of a blueprint.Module, plus some extra methods that return Android-specific information
|
||||
// about the current module.
|
||||
type BaseModuleContext interface {
|
||||
ArchModuleContext
|
||||
EarlyModuleContext
|
||||
|
||||
blueprintBaseModuleContext() blueprint.BaseModuleContext
|
||||
|
@ -213,29 +214,12 @@ type BaseModuleContext interface {
|
|||
// getMissingDependencies returns the list of missing dependencies.
|
||||
// Calling this function prevents adding new dependencies.
|
||||
getMissingDependencies() []string
|
||||
|
||||
Target() Target
|
||||
TargetPrimary() bool
|
||||
|
||||
// The additional arch specific targets (e.g. 32/64 bit) that this module variant is
|
||||
// responsible for creating.
|
||||
MultiTargets() []Target
|
||||
Arch() Arch
|
||||
Os() OsType
|
||||
Host() bool
|
||||
Device() bool
|
||||
Darwin() bool
|
||||
Windows() bool
|
||||
PrimaryArch() bool
|
||||
}
|
||||
|
||||
type baseModuleContext struct {
|
||||
bp blueprint.BaseModuleContext
|
||||
earlyModuleContext
|
||||
os OsType
|
||||
target Target
|
||||
multiTargets []Target
|
||||
targetPrimary bool
|
||||
archModuleContext
|
||||
|
||||
walkPath []Module
|
||||
tagPath []blueprint.DependencyTag
|
||||
|
@ -580,46 +564,3 @@ func (b *baseModuleContext) GetPathString(skipFirst bool) string {
|
|||
}
|
||||
return sb.String()
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) Target() Target {
|
||||
return b.target
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) TargetPrimary() bool {
|
||||
return b.targetPrimary
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) MultiTargets() []Target {
|
||||
return b.multiTargets
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) Arch() Arch {
|
||||
return b.target.Arch
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) Os() OsType {
|
||||
return b.os
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) Host() bool {
|
||||
return b.os.Class == Host
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) Device() bool {
|
||||
return b.os.Class == Device
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) Darwin() bool {
|
||||
return b.os == Darwin
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) Windows() bool {
|
||||
return b.os == Windows
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) PrimaryArch() bool {
|
||||
if len(b.config.Targets[b.target.Os]) <= 1 {
|
||||
return true
|
||||
}
|
||||
return b.target.Arch.ArchType == b.config.Targets[b.target.Os][0].Arch.ArchType
|
||||
}
|
||||
|
|
|
@ -1641,14 +1641,31 @@ func (m *ModuleBase) earlyModuleContextFactory(ctx blueprint.EarlyModuleContext)
|
|||
func (m *ModuleBase) baseModuleContextFactory(ctx blueprint.BaseModuleContext) baseModuleContext {
|
||||
return baseModuleContext{
|
||||
bp: ctx,
|
||||
archModuleContext: m.archModuleContextFactory(ctx),
|
||||
earlyModuleContext: m.earlyModuleContextFactory(ctx),
|
||||
os: m.commonProperties.CompileOS,
|
||||
target: m.commonProperties.CompileTarget,
|
||||
targetPrimary: m.commonProperties.CompilePrimary,
|
||||
multiTargets: m.commonProperties.CompileMultiTargets,
|
||||
}
|
||||
}
|
||||
|
||||
func (m *ModuleBase) archModuleContextFactory(ctx blueprint.IncomingTransitionContext) archModuleContext {
|
||||
config := ctx.Config().(Config)
|
||||
target := m.Target()
|
||||
primaryArch := false
|
||||
if len(config.Targets[target.Os]) <= 1 {
|
||||
primaryArch = true
|
||||
} else {
|
||||
primaryArch = target.Arch.ArchType == config.Targets[target.Os][0].Arch.ArchType
|
||||
}
|
||||
|
||||
return archModuleContext{
|
||||
os: m.commonProperties.CompileOS,
|
||||
target: m.commonProperties.CompileTarget,
|
||||
targetPrimary: m.commonProperties.CompilePrimary,
|
||||
multiTargets: m.commonProperties.CompileMultiTargets,
|
||||
primaryArch: primaryArch,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (m *ModuleBase) GenerateBuildActions(blueprintCtx blueprint.ModuleContext) {
|
||||
ctx := &moduleContext{
|
||||
module: m.module,
|
||||
|
|
|
@ -365,15 +365,21 @@ func (x *registerMutatorsContext) BottomUpBlueprint(name string, m blueprint.Bot
|
|||
}
|
||||
|
||||
type IncomingTransitionContext interface {
|
||||
ArchModuleContext
|
||||
|
||||
// Module returns the target of the dependency edge for which the transition
|
||||
// is being computed
|
||||
Module() Module
|
||||
|
||||
// Config returns the configuration for the build.
|
||||
Config() Config
|
||||
|
||||
DeviceConfig() DeviceConfig
|
||||
}
|
||||
|
||||
type OutgoingTransitionContext interface {
|
||||
ArchModuleContext
|
||||
|
||||
// Module returns the target of the dependency edge for which the transition
|
||||
// is being computed
|
||||
Module() Module
|
||||
|
@ -381,9 +387,14 @@ type OutgoingTransitionContext interface {
|
|||
// DepTag() Returns the dependency tag through which this dependency is
|
||||
// reached
|
||||
DepTag() blueprint.DependencyTag
|
||||
|
||||
// Config returns the configuration for the build.
|
||||
Config() Config
|
||||
|
||||
DeviceConfig() DeviceConfig
|
||||
}
|
||||
|
||||
// Transition mutators implement a top-down mechanism where a module tells its
|
||||
// TransitionMutator implements a top-down mechanism where a module tells its
|
||||
// direct dependencies what variation they should be built in but the dependency
|
||||
// has the final say.
|
||||
//
|
||||
|
@ -448,18 +459,18 @@ type TransitionMutator interface {
|
|||
// called on.
|
||||
Split(ctx BaseModuleContext) []string
|
||||
|
||||
// Called on a module to determine which variation it wants from its direct
|
||||
// dependencies. The dependency itself can override this decision. This method
|
||||
// should not mutate the module itself.
|
||||
// OutgoingTransition is called on a module to determine which variation it wants
|
||||
// from its direct dependencies. The dependency itself can override this decision.
|
||||
// This method should not mutate the module itself.
|
||||
OutgoingTransition(ctx OutgoingTransitionContext, sourceVariation string) string
|
||||
|
||||
// Called on a module to determine which variation it should be in based on
|
||||
// the variation modules that depend on it want. This gives the module a final
|
||||
// say about its own variations. This method should not mutate the module
|
||||
// IncomingTransition is called on a module to determine which variation it should
|
||||
// be in based on the variation modules that depend on it want. This gives the module
|
||||
// a final say about its own variations. This method should not mutate the module
|
||||
// itself.
|
||||
IncomingTransition(ctx IncomingTransitionContext, incomingVariation string) string
|
||||
|
||||
// Called after a module was split into multiple variations on each variation.
|
||||
// Mutate is called after a module was split into multiple variations on each variation.
|
||||
// It should not split the module any further but adding new dependencies is
|
||||
// fine. Unlike all the other methods on TransitionMutator, this method is
|
||||
// allowed to mutate the module.
|
||||
|
@ -481,6 +492,7 @@ func (a *androidTransitionMutator) Split(ctx blueprint.BaseModuleContext) []stri
|
|||
}
|
||||
|
||||
type outgoingTransitionContextImpl struct {
|
||||
archModuleContext
|
||||
bp blueprint.OutgoingTransitionContext
|
||||
}
|
||||
|
||||
|
@ -492,15 +504,28 @@ func (c *outgoingTransitionContextImpl) DepTag() blueprint.DependencyTag {
|
|||
return c.bp.DepTag()
|
||||
}
|
||||
|
||||
func (a *androidTransitionMutator) OutgoingTransition(ctx blueprint.OutgoingTransitionContext, sourceVariation string) string {
|
||||
if _, ok := ctx.Module().(Module); ok {
|
||||
return a.mutator.OutgoingTransition(&outgoingTransitionContextImpl{bp: ctx}, sourceVariation)
|
||||
func (c *outgoingTransitionContextImpl) Config() Config {
|
||||
return c.bp.Config().(Config)
|
||||
}
|
||||
|
||||
func (c *outgoingTransitionContextImpl) DeviceConfig() DeviceConfig {
|
||||
return DeviceConfig{c.bp.Config().(Config).deviceConfig}
|
||||
}
|
||||
|
||||
func (a *androidTransitionMutator) OutgoingTransition(bpctx blueprint.OutgoingTransitionContext, sourceVariation string) string {
|
||||
if m, ok := bpctx.Module().(Module); ok {
|
||||
ctx := &outgoingTransitionContextImpl{
|
||||
archModuleContext: m.base().archModuleContextFactory(bpctx),
|
||||
bp: bpctx,
|
||||
}
|
||||
return a.mutator.OutgoingTransition(ctx, sourceVariation)
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
type incomingTransitionContextImpl struct {
|
||||
archModuleContext
|
||||
bp blueprint.IncomingTransitionContext
|
||||
}
|
||||
|
||||
|
@ -512,9 +537,17 @@ func (c *incomingTransitionContextImpl) Config() Config {
|
|||
return c.bp.Config().(Config)
|
||||
}
|
||||
|
||||
func (a *androidTransitionMutator) IncomingTransition(ctx blueprint.IncomingTransitionContext, incomingVariation string) string {
|
||||
if _, ok := ctx.Module().(Module); ok {
|
||||
return a.mutator.IncomingTransition(&incomingTransitionContextImpl{bp: ctx}, incomingVariation)
|
||||
func (c *incomingTransitionContextImpl) DeviceConfig() DeviceConfig {
|
||||
return DeviceConfig{c.bp.Config().(Config).deviceConfig}
|
||||
}
|
||||
|
||||
func (a *androidTransitionMutator) IncomingTransition(bpctx blueprint.IncomingTransitionContext, incomingVariation string) string {
|
||||
if m, ok := bpctx.Module().(Module); ok {
|
||||
ctx := &incomingTransitionContextImpl{
|
||||
archModuleContext: m.base().archModuleContextFactory(bpctx),
|
||||
bp: bpctx,
|
||||
}
|
||||
return a.mutator.IncomingTransition(ctx, incomingVariation)
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
|
|
|
@ -268,8 +268,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "host binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: hostTarget.Os,
|
||||
target: hostTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: hostTarget.Os,
|
||||
target: hostTarget,
|
||||
},
|
||||
},
|
||||
},
|
||||
in: []string{"bin", "my_test"},
|
||||
|
@ -281,8 +283,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "system binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
},
|
||||
in: []string{"bin", "my_test"},
|
||||
|
@ -293,8 +297,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "vendor binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: socSpecificModule,
|
||||
},
|
||||
|
@ -308,8 +314,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "odm binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: deviceSpecificModule,
|
||||
},
|
||||
|
@ -323,8 +331,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "product binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: productSpecificModule,
|
||||
},
|
||||
|
@ -338,8 +348,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "system_ext binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: systemExtSpecificModule,
|
||||
},
|
||||
|
@ -353,8 +365,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "root binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inRoot: true,
|
||||
},
|
||||
|
@ -366,8 +380,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "recovery binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inRecovery: true,
|
||||
},
|
||||
|
@ -379,8 +395,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "recovery root binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inRecovery: true,
|
||||
inRoot: true,
|
||||
|
@ -394,8 +412,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "ramdisk binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inRamdisk: true,
|
||||
},
|
||||
|
@ -407,8 +427,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "ramdisk root binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inRamdisk: true,
|
||||
inRoot: true,
|
||||
|
@ -421,8 +443,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "vendor_ramdisk binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inVendorRamdisk: true,
|
||||
},
|
||||
|
@ -434,8 +458,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "vendor_ramdisk root binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inVendorRamdisk: true,
|
||||
inRoot: true,
|
||||
|
@ -448,8 +474,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "debug_ramdisk binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inDebugRamdisk: true,
|
||||
},
|
||||
|
@ -461,8 +489,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "system native test binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inData: true,
|
||||
},
|
||||
|
@ -474,8 +504,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "vendor native test binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: socSpecificModule,
|
||||
},
|
||||
|
@ -490,8 +522,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "odm native test binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: deviceSpecificModule,
|
||||
},
|
||||
|
@ -506,8 +540,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "product native test binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: productSpecificModule,
|
||||
},
|
||||
|
@ -523,8 +559,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "system_ext native test binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: systemExtSpecificModule,
|
||||
},
|
||||
|
@ -540,8 +578,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "sanitized system binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inSanitizerDir: true,
|
||||
},
|
||||
|
@ -553,8 +593,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "sanitized vendor binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: socSpecificModule,
|
||||
},
|
||||
|
@ -569,8 +611,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "sanitized odm binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: deviceSpecificModule,
|
||||
},
|
||||
|
@ -585,8 +629,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "sanitized product binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: productSpecificModule,
|
||||
},
|
||||
|
@ -602,8 +648,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "sanitized system_ext binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: systemExtSpecificModule,
|
||||
},
|
||||
|
@ -619,8 +667,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "sanitized system native test binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inData: true,
|
||||
inSanitizerDir: true,
|
||||
|
@ -633,8 +683,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "sanitized vendor native test binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: socSpecificModule,
|
||||
},
|
||||
|
@ -650,8 +702,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "sanitized odm native test binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: deviceSpecificModule,
|
||||
},
|
||||
|
@ -667,8 +721,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "sanitized product native test binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: productSpecificModule,
|
||||
},
|
||||
|
@ -684,8 +740,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "sanitized system_ext native test binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
earlyModuleContext: earlyModuleContext{
|
||||
kind: systemExtSpecificModule,
|
||||
},
|
||||
|
@ -700,8 +758,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "device testcases",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inTestcases: true,
|
||||
},
|
||||
|
@ -712,8 +772,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "host testcases",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: hostTarget.Os,
|
||||
target: hostTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: hostTarget.Os,
|
||||
target: hostTarget,
|
||||
},
|
||||
},
|
||||
inTestcases: true,
|
||||
},
|
||||
|
@ -724,8 +786,10 @@ func TestPathForModuleInstall(t *testing.T) {
|
|||
name: "forced host testcases",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inTestcases: true,
|
||||
forceOS: &Linux,
|
||||
|
@ -771,8 +835,10 @@ func TestPathForModuleInstallRecoveryAsBoot(t *testing.T) {
|
|||
name: "ramdisk binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inRamdisk: true,
|
||||
inRoot: true,
|
||||
|
@ -786,8 +852,10 @@ func TestPathForModuleInstallRecoveryAsBoot(t *testing.T) {
|
|||
name: "vendor_ramdisk binary",
|
||||
ctx: &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
inVendorRamdisk: true,
|
||||
inRoot: true,
|
||||
|
@ -821,8 +889,10 @@ func TestBaseDirForInstallPath(t *testing.T) {
|
|||
|
||||
ctx := &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
}
|
||||
ctx.baseModuleContext.config = testConfig
|
||||
|
@ -1491,8 +1561,10 @@ func TestPathRelativeToTop(t *testing.T) {
|
|||
|
||||
ctx := &testModuleInstallPathContext{
|
||||
baseModuleContext: baseModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
archModuleContext: archModuleContext{
|
||||
os: deviceTarget.Os,
|
||||
target: deviceTarget,
|
||||
},
|
||||
},
|
||||
}
|
||||
ctx.baseModuleContext.config = testConfig
|
||||
|
|
Loading…
Reference in a new issue