Capture missing dependency error rules
Allow missing dependency errors to be tested by capturing the missing dependency error rule instead of the originally requested rule. Test: all soong tests Change-Id: Id2b23b9ee354cdafc44fb9adfaf8fe7bab973478
This commit is contained in:
@@ -945,17 +945,16 @@ type moduleContext struct {
|
|||||||
variables map[string]string
|
variables map[string]string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *moduleContext) ninjaError(desc string, outputs []string, err error) {
|
func (m *moduleContext) ninjaError(params BuildParams, err error) (PackageContext, BuildParams) {
|
||||||
m.ModuleContext.Build(pctx.PackageContext, blueprint.BuildParams{
|
return pctx, BuildParams{
|
||||||
Rule: ErrorRule,
|
Rule: ErrorRule,
|
||||||
Description: desc,
|
Description: params.Description,
|
||||||
Outputs: outputs,
|
Output: params.Output,
|
||||||
Optional: true,
|
Outputs: params.Outputs,
|
||||||
Args: map[string]string{
|
Args: map[string]string{
|
||||||
"error": err.Error(),
|
"error": err.Error(),
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *moduleContext) Config() Config {
|
func (m *moduleContext) Config() Config {
|
||||||
@@ -1027,24 +1026,20 @@ func (m *moduleContext) Rule(pctx PackageContext, name string, params blueprint.
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *moduleContext) Build(pctx PackageContext, params BuildParams) {
|
func (m *moduleContext) Build(pctx PackageContext, params BuildParams) {
|
||||||
|
if params.Description != "" {
|
||||||
|
params.Description = "${moduleDesc}" + params.Description + "${moduleDescSuffix}"
|
||||||
|
}
|
||||||
|
|
||||||
|
if missingDeps := m.GetMissingDependencies(); len(missingDeps) > 0 {
|
||||||
|
pctx, params = m.ninjaError(params, fmt.Errorf("module %s missing dependencies: %s\n",
|
||||||
|
m.ModuleName(), strings.Join(missingDeps, ", ")))
|
||||||
|
}
|
||||||
|
|
||||||
if m.config.captureBuild {
|
if m.config.captureBuild {
|
||||||
m.buildParams = append(m.buildParams, params)
|
m.buildParams = append(m.buildParams, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
bparams := convertBuildParams(params)
|
m.ModuleContext.Build(pctx.PackageContext, convertBuildParams(params))
|
||||||
|
|
||||||
if bparams.Description != "" {
|
|
||||||
bparams.Description = "${moduleDesc}" + params.Description + "${moduleDescSuffix}"
|
|
||||||
}
|
|
||||||
|
|
||||||
if missingDeps := m.GetMissingDependencies(); len(missingDeps) > 0 {
|
|
||||||
m.ninjaError(bparams.Description, bparams.Outputs,
|
|
||||||
fmt.Errorf("module %s missing dependencies: %s\n",
|
|
||||||
m.ModuleName(), strings.Join(missingDeps, ", ")))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
m.ModuleContext.Build(pctx.PackageContext, bparams)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *moduleContext) Module() Module {
|
func (m *moduleContext) Module() Module {
|
||||||
|
@@ -179,7 +179,7 @@ func buildParamsFromRule(provider testBuildProvider, rule string) TestingBuildPa
|
|||||||
|
|
||||||
func maybeBuildParamsFromDescription(provider testBuildProvider, desc string) TestingBuildParams {
|
func maybeBuildParamsFromDescription(provider testBuildProvider, desc string) TestingBuildParams {
|
||||||
for _, p := range provider.BuildParamsForTests() {
|
for _, p := range provider.BuildParamsForTests() {
|
||||||
if p.Description == desc {
|
if strings.Contains(p.Description, desc) {
|
||||||
return newTestingBuildParams(provider, p)
|
return newTestingBuildParams(provider, p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user