Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b88b3c5e authored by Colin Cross's avatar Colin Cross
Browse files

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
parent 2ffb9a8d
Loading
Loading
Loading
Loading
+14 −19
Original line number Diff line number Diff line
@@ -945,17 +945,16 @@ type moduleContext struct {
	variables   map[string]string
}

func (m *moduleContext) ninjaError(desc string, outputs []string, err error) {
	m.ModuleContext.Build(pctx.PackageContext, blueprint.BuildParams{
func (m *moduleContext) ninjaError(params BuildParams, err error) (PackageContext, BuildParams) {
	return pctx, BuildParams{
		Rule:        ErrorRule,
		Description: desc,
		Outputs:     outputs,
		Optional:    true,
		Description: params.Description,
		Output:      params.Output,
		Outputs:     params.Outputs,
		Args: map[string]string{
			"error": err.Error(),
		},
	})
	return
	}
}

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) {
	if m.config.captureBuild {
		m.buildParams = append(m.buildParams, params)
	}

	bparams := convertBuildParams(params)

	if bparams.Description != "" {
		bparams.Description = "${moduleDesc}" + params.Description + "${moduleDescSuffix}"
	if params.Description != "" {
		params.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",
		pctx, params = m.ninjaError(params, fmt.Errorf("module %s missing dependencies: %s\n",
			m.ModuleName(), strings.Join(missingDeps, ", ")))
		return
	}

	m.ModuleContext.Build(pctx.PackageContext, bparams)
	if m.config.captureBuild {
		m.buildParams = append(m.buildParams, params)
	}

	m.ModuleContext.Build(pctx.PackageContext, convertBuildParams(params))
}

func (m *moduleContext) Module() Module {
+1 −1
Original line number Diff line number Diff line
@@ -179,7 +179,7 @@ func buildParamsFromRule(provider testBuildProvider, rule string) TestingBuildPa

func maybeBuildParamsFromDescription(provider testBuildProvider, desc string) TestingBuildParams {
	for _, p := range provider.BuildParamsForTests() {
		if p.Description == desc {
		if strings.Contains(p.Description, desc) {
			return newTestingBuildParams(provider, p)
		}
	}