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

Commit a79afd7e authored by usta's avatar usta
Browse files

Include label in aquery error

When an Action fails to convert to a Ninja build statement,
include the bazel label in the error message.

Test: NA
Bug: 301638491
Change-Id: I592978c5e530043769b0232fdd200ad13b72c39b
parent eba2a2af
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -18,14 +18,16 @@ import (
	"crypto/sha256"
	"encoding/base64"
	"encoding/json"
	"errors"
	"fmt"
	"path/filepath"
	analysis_v2_proto "prebuilts/bazel/common/proto/analysis_v2"
	"reflect"
	"sort"
	"strings"
	"sync"

	analysis_v2_proto "prebuilts/bazel/common/proto/analysis_v2"

	"github.com/google/blueprint/metrics"
	"github.com/google/blueprint/proptools"
	"google.golang.org/protobuf/proto"
@@ -374,9 +376,14 @@ func AqueryBuildStatements(aqueryJsonProto []byte, eventHandler *metrics.EventHa
		for i, actionEntry := range aqueryProto.Actions {
			wg.Add(1)
			go func(i int, actionEntry *analysis_v2_proto.Action) {
				buildStatement, aErr := aqueryHandler.actionToBuildStatement(actionEntry)
				if aErr != nil {
				if buildStatement, aErr := aqueryHandler.actionToBuildStatement(actionEntry); aErr != nil {
					errOnce.Do(func() {
						for _, t := range aqueryProto.Targets {
							if t.GetId() == actionEntry.GetTargetId() {
								aErr = fmt.Errorf("%s: [%s] [%s]", aErr.Error(), actionEntry.GetMnemonic(), t.GetLabel())
								break
							}
						}
						err = aErr
					})
				} else {
@@ -782,7 +789,7 @@ func (a *aqueryArtifactHandler) actionToBuildStatement(actionEntry *analysis_v2_
	}

	if len(actionEntry.Arguments) < 1 {
		return nil, fmt.Errorf("received action with no command: [%s]", actionEntry.Mnemonic)
		return nil, errors.New("received action with no command")
	}
	return a.normalActionBuildStatement(actionEntry)