Merge changes from topic "transition-mutator-config" into main

* changes:
  Add ArchModuleContext to TransitionMutator contexts
  Split ArchMutatorContext out of BaseMutatorContext
This commit is contained in:
Colin Cross
2024-01-24 20:03:46 +00:00
committed by Gerrit Code Review
6 changed files with 298 additions and 151 deletions

View File

@@ -37,6 +37,7 @@ bootstrap_go_package {
"api_levels.go", "api_levels.go",
"arch.go", "arch.go",
"arch_list.go", "arch_list.go",
"arch_module_context.go",
"base_module_context.go", "base_module_context.go",
"buildinfo_prop.go", "buildinfo_prop.go",
"config.go", "config.go",

View 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
}

View File

@@ -26,6 +26,7 @@ import (
// instead of a blueprint.Module, plus some extra methods that return Android-specific information // instead of a blueprint.Module, plus some extra methods that return Android-specific information
// about the current module. // about the current module.
type BaseModuleContext interface { type BaseModuleContext interface {
ArchModuleContext
EarlyModuleContext EarlyModuleContext
blueprintBaseModuleContext() blueprint.BaseModuleContext blueprintBaseModuleContext() blueprint.BaseModuleContext
@@ -213,29 +214,12 @@ type BaseModuleContext interface {
// getMissingDependencies returns the list of missing dependencies. // getMissingDependencies returns the list of missing dependencies.
// Calling this function prevents adding new dependencies. // Calling this function prevents adding new dependencies.
getMissingDependencies() []string 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 { type baseModuleContext struct {
bp blueprint.BaseModuleContext bp blueprint.BaseModuleContext
earlyModuleContext earlyModuleContext
os OsType archModuleContext
target Target
multiTargets []Target
targetPrimary bool
walkPath []Module walkPath []Module
tagPath []blueprint.DependencyTag tagPath []blueprint.DependencyTag
@@ -580,46 +564,3 @@ func (b *baseModuleContext) GetPathString(skipFirst bool) string {
} }
return sb.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
}

View File

@@ -1641,14 +1641,31 @@ func (m *ModuleBase) earlyModuleContextFactory(ctx blueprint.EarlyModuleContext)
func (m *ModuleBase) baseModuleContextFactory(ctx blueprint.BaseModuleContext) baseModuleContext { func (m *ModuleBase) baseModuleContextFactory(ctx blueprint.BaseModuleContext) baseModuleContext {
return baseModuleContext{ return baseModuleContext{
bp: ctx, bp: ctx,
archModuleContext: m.archModuleContextFactory(ctx),
earlyModuleContext: m.earlyModuleContextFactory(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) { func (m *ModuleBase) GenerateBuildActions(blueprintCtx blueprint.ModuleContext) {
ctx := &moduleContext{ ctx := &moduleContext{
module: m.module, module: m.module,

View File

@@ -365,15 +365,21 @@ func (x *registerMutatorsContext) BottomUpBlueprint(name string, m blueprint.Bot
} }
type IncomingTransitionContext interface { type IncomingTransitionContext interface {
ArchModuleContext
// Module returns the target of the dependency edge for which the transition // Module returns the target of the dependency edge for which the transition
// is being computed // is being computed
Module() Module Module() Module
// Config returns the configuration for the build. // Config returns the configuration for the build.
Config() Config Config() Config
DeviceConfig() DeviceConfig
} }
type OutgoingTransitionContext interface { type OutgoingTransitionContext interface {
ArchModuleContext
// Module returns the target of the dependency edge for which the transition // Module returns the target of the dependency edge for which the transition
// is being computed // is being computed
Module() Module Module() Module
@@ -381,9 +387,14 @@ type OutgoingTransitionContext interface {
// DepTag() Returns the dependency tag through which this dependency is // DepTag() Returns the dependency tag through which this dependency is
// reached // reached
DepTag() blueprint.DependencyTag 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 // direct dependencies what variation they should be built in but the dependency
// has the final say. // has the final say.
// //
@@ -448,18 +459,18 @@ type TransitionMutator interface {
// called on. // called on.
Split(ctx BaseModuleContext) []string Split(ctx BaseModuleContext) []string
// Called on a module to determine which variation it wants from its direct // OutgoingTransition is called on a module to determine which variation it wants
// dependencies. The dependency itself can override this decision. This method // from its direct dependencies. The dependency itself can override this decision.
// should not mutate the module itself. // This method should not mutate the module itself.
OutgoingTransition(ctx OutgoingTransitionContext, sourceVariation string) string OutgoingTransition(ctx OutgoingTransitionContext, sourceVariation string) string
// Called on a module to determine which variation it should be in based on // IncomingTransition is called on a module to determine which variation it should
// the variation modules that depend on it want. This gives the module a final // be in based on the variation modules that depend on it want. This gives the module
// say about its own variations. This method should not mutate the module // a final say about its own variations. This method should not mutate the module
// itself. // itself.
IncomingTransition(ctx IncomingTransitionContext, incomingVariation string) string 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 // It should not split the module any further but adding new dependencies is
// fine. Unlike all the other methods on TransitionMutator, this method is // fine. Unlike all the other methods on TransitionMutator, this method is
// allowed to mutate the module. // allowed to mutate the module.
@@ -481,6 +492,7 @@ func (a *androidTransitionMutator) Split(ctx blueprint.BaseModuleContext) []stri
} }
type outgoingTransitionContextImpl struct { type outgoingTransitionContextImpl struct {
archModuleContext
bp blueprint.OutgoingTransitionContext bp blueprint.OutgoingTransitionContext
} }
@@ -492,15 +504,28 @@ func (c *outgoingTransitionContextImpl) DepTag() blueprint.DependencyTag {
return c.bp.DepTag() return c.bp.DepTag()
} }
func (a *androidTransitionMutator) OutgoingTransition(ctx blueprint.OutgoingTransitionContext, sourceVariation string) string { func (c *outgoingTransitionContextImpl) Config() Config {
if _, ok := ctx.Module().(Module); ok { return c.bp.Config().(Config)
return a.mutator.OutgoingTransition(&outgoingTransitionContextImpl{bp: ctx}, sourceVariation) }
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 { } else {
return "" return ""
} }
} }
type incomingTransitionContextImpl struct { type incomingTransitionContextImpl struct {
archModuleContext
bp blueprint.IncomingTransitionContext bp blueprint.IncomingTransitionContext
} }
@@ -512,9 +537,17 @@ func (c *incomingTransitionContextImpl) Config() Config {
return c.bp.Config().(Config) return c.bp.Config().(Config)
} }
func (a *androidTransitionMutator) IncomingTransition(ctx blueprint.IncomingTransitionContext, incomingVariation string) string { func (c *incomingTransitionContextImpl) DeviceConfig() DeviceConfig {
if _, ok := ctx.Module().(Module); ok { return DeviceConfig{c.bp.Config().(Config).deviceConfig}
return a.mutator.IncomingTransition(&incomingTransitionContextImpl{bp: ctx}, incomingVariation) }
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 { } else {
return "" return ""
} }

View File

@@ -268,8 +268,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "host binary", name: "host binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: hostTarget.Os, archModuleContext: archModuleContext{
target: hostTarget, os: hostTarget.Os,
target: hostTarget,
},
}, },
}, },
in: []string{"bin", "my_test"}, in: []string{"bin", "my_test"},
@@ -281,8 +283,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "system binary", name: "system binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
}, },
in: []string{"bin", "my_test"}, in: []string{"bin", "my_test"},
@@ -293,8 +297,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "vendor binary", name: "vendor binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: socSpecificModule, kind: socSpecificModule,
}, },
@@ -308,8 +314,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "odm binary", name: "odm binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: deviceSpecificModule, kind: deviceSpecificModule,
}, },
@@ -323,8 +331,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "product binary", name: "product binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: productSpecificModule, kind: productSpecificModule,
}, },
@@ -338,8 +348,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "system_ext binary", name: "system_ext binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: systemExtSpecificModule, kind: systemExtSpecificModule,
}, },
@@ -353,8 +365,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "root binary", name: "root binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inRoot: true, inRoot: true,
}, },
@@ -366,8 +380,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "recovery binary", name: "recovery binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inRecovery: true, inRecovery: true,
}, },
@@ -379,8 +395,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "recovery root binary", name: "recovery root binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inRecovery: true, inRecovery: true,
inRoot: true, inRoot: true,
@@ -394,8 +412,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "ramdisk binary", name: "ramdisk binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inRamdisk: true, inRamdisk: true,
}, },
@@ -407,8 +427,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "ramdisk root binary", name: "ramdisk root binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inRamdisk: true, inRamdisk: true,
inRoot: true, inRoot: true,
@@ -421,8 +443,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "vendor_ramdisk binary", name: "vendor_ramdisk binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inVendorRamdisk: true, inVendorRamdisk: true,
}, },
@@ -434,8 +458,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "vendor_ramdisk root binary", name: "vendor_ramdisk root binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inVendorRamdisk: true, inVendorRamdisk: true,
inRoot: true, inRoot: true,
@@ -448,8 +474,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "debug_ramdisk binary", name: "debug_ramdisk binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inDebugRamdisk: true, inDebugRamdisk: true,
}, },
@@ -461,8 +489,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "system native test binary", name: "system native test binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inData: true, inData: true,
}, },
@@ -474,8 +504,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "vendor native test binary", name: "vendor native test binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: socSpecificModule, kind: socSpecificModule,
}, },
@@ -490,8 +522,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "odm native test binary", name: "odm native test binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: deviceSpecificModule, kind: deviceSpecificModule,
}, },
@@ -506,8 +540,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "product native test binary", name: "product native test binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: productSpecificModule, kind: productSpecificModule,
}, },
@@ -523,8 +559,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "system_ext native test binary", name: "system_ext native test binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: systemExtSpecificModule, kind: systemExtSpecificModule,
}, },
@@ -540,8 +578,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "sanitized system binary", name: "sanitized system binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inSanitizerDir: true, inSanitizerDir: true,
}, },
@@ -553,8 +593,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "sanitized vendor binary", name: "sanitized vendor binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: socSpecificModule, kind: socSpecificModule,
}, },
@@ -569,8 +611,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "sanitized odm binary", name: "sanitized odm binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: deviceSpecificModule, kind: deviceSpecificModule,
}, },
@@ -585,8 +629,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "sanitized product binary", name: "sanitized product binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: productSpecificModule, kind: productSpecificModule,
}, },
@@ -602,8 +648,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "sanitized system_ext binary", name: "sanitized system_ext binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: systemExtSpecificModule, kind: systemExtSpecificModule,
}, },
@@ -619,8 +667,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "sanitized system native test binary", name: "sanitized system native test binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inData: true, inData: true,
inSanitizerDir: true, inSanitizerDir: true,
@@ -633,8 +683,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "sanitized vendor native test binary", name: "sanitized vendor native test binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: socSpecificModule, kind: socSpecificModule,
}, },
@@ -650,8 +702,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "sanitized odm native test binary", name: "sanitized odm native test binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: deviceSpecificModule, kind: deviceSpecificModule,
}, },
@@ -667,8 +721,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "sanitized product native test binary", name: "sanitized product native test binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: productSpecificModule, kind: productSpecificModule,
}, },
@@ -684,8 +740,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "sanitized system_ext native test binary", name: "sanitized system_ext native test binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
earlyModuleContext: earlyModuleContext{ earlyModuleContext: earlyModuleContext{
kind: systemExtSpecificModule, kind: systemExtSpecificModule,
}, },
@@ -700,8 +758,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "device testcases", name: "device testcases",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inTestcases: true, inTestcases: true,
}, },
@@ -712,8 +772,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "host testcases", name: "host testcases",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: hostTarget.Os, archModuleContext: archModuleContext{
target: hostTarget, os: hostTarget.Os,
target: hostTarget,
},
}, },
inTestcases: true, inTestcases: true,
}, },
@@ -724,8 +786,10 @@ func TestPathForModuleInstall(t *testing.T) {
name: "forced host testcases", name: "forced host testcases",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inTestcases: true, inTestcases: true,
forceOS: &Linux, forceOS: &Linux,
@@ -771,8 +835,10 @@ func TestPathForModuleInstallRecoveryAsBoot(t *testing.T) {
name: "ramdisk binary", name: "ramdisk binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inRamdisk: true, inRamdisk: true,
inRoot: true, inRoot: true,
@@ -786,8 +852,10 @@ func TestPathForModuleInstallRecoveryAsBoot(t *testing.T) {
name: "vendor_ramdisk binary", name: "vendor_ramdisk binary",
ctx: &testModuleInstallPathContext{ ctx: &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
inVendorRamdisk: true, inVendorRamdisk: true,
inRoot: true, inRoot: true,
@@ -821,8 +889,10 @@ func TestBaseDirForInstallPath(t *testing.T) {
ctx := &testModuleInstallPathContext{ ctx := &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
} }
ctx.baseModuleContext.config = testConfig ctx.baseModuleContext.config = testConfig
@@ -1491,8 +1561,10 @@ func TestPathRelativeToTop(t *testing.T) {
ctx := &testModuleInstallPathContext{ ctx := &testModuleInstallPathContext{
baseModuleContext: baseModuleContext{ baseModuleContext: baseModuleContext{
os: deviceTarget.Os, archModuleContext: archModuleContext{
target: deviceTarget, os: deviceTarget.Os,
target: deviceTarget,
},
}, },
} }
ctx.baseModuleContext.config = testConfig ctx.baseModuleContext.config = testConfig